【问题标题】:Creating PyOpenCl context causes later access violation创建 PyOpenCl 上下文会导致以后的访问冲突
【发布时间】:2019-02-15 16:21:29
【问题描述】:

我刚开始使用 pyopencl 来试验 OpenCL。我从这里得到它

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl

我编写了一些测试程序并且执行按预期工作。当我想开始大量模拟时,我遇到了 Access Violations (Windows Error Code FFFFFFFFC0000005) 的随机崩溃。事实证明,我在其中导入 pyopencl 并创建上下文的任何脚本都会在一到两分钟后崩溃。我进行了 3 次测试,得到了 [63sec, 86sec, 81sec]。

我通过设置环境变量 PYOPENCL_CTX = 1:0 确保上下文始终在我的“英特尔(R) HD Graphics 620”卡上

import pyopencl as cl
ctx = cl.create_some_context()

import time

i = 0
while True:
    print("Im alive since %i seconds" % i, flush = True)
    i += 1
    time.sleep(1.0)

我有一个来自 python.org 的 Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]

编辑:

在删除环境变量并让 shell 位于选择平台对话框后 - 没有选择平台 - 大约一分钟后因访问冲突而崩溃。

编辑:

我将 Driver Vesion 更新到最新的可用版本 22.20.16.4771(从 2017 年 8 月 13 日起),但问题仍然存在。

【问题讨论】:

    标签: pyopencl


    【解决方案1】:

    这可能是由于驱动程序过时所致。如果计算机供应商不提供最新的驱动程序,英特尔的通用驱动程序可能会起作用,即使不保证兼容性。

    英特尔仅提供驱动程序作为自安装 .exe,当它注意到正在运行的驱动程序的自定义版本时不允许安装驱动程序。

    但是,可以通过让自解压 .exe 解压来绕过此检查。从它创建的临时文件夹中复制数据,然后使用 widnows 设备管理器手动安装这些驱动程序。不用说,这很容易破坏设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多