【发布时间】:2019-06-15 03:01:24
【问题描述】:
希望这不是重复的,我确实环顾了一下,但如果我错了,请纠正我。
我最近通过 Anaconda 安装了 pyopencl,它在我的 Intel CPU 上运行没有问题。但是,当我打电话时:
for platform in get_platforms():
print(platform.name)
ctx = create_some_context()
for dev in ctx.devices:
print(dev.name)
我得到的只是:
Portable Computing Language
Choose platform:
[0] <pyopencl.Platform 'Portable Computing Language' at 0x7f0ff2205020>
>> 0
Choice [0]:0
Set the environment variable PYOPENCL_CTX='0' to avoid being asked again.
pthread-Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
我有 Nvidia GeForce GTX 1050 Ti,驱动程序版本是 390.87 和 CUDA 9.1,根据 Nvidia 发行说明应该兼容。我也在运行 Linux Mint 19.1(如果相关的话),而且在涉及到这些东西时我也有点菜鸟,因为我的背景是物理学,而不是计算机科学。
我在某处(我不记得在哪里)读到我应该有一个 nvidia.icd 文件,但现在只有 /home//anaconda3/etc/OpenCL/vendors 中的 pocl.icd 文件,而我没有确定如何/从何处获取 nvidia.icd 文件。
提前感谢您的帮助,如果您需要更多信息,请告诉我!
编辑:添加get_platforms()的结果
编辑 2:我能够在我的 /etc/OpenCL/vendors 目录中找到一个 nvidia.icd 文件。我将它复制到 Anaconda 目录中,/home/<user>/anaconda3/etc/OpenCL/vendors 和 pyopencl 现在将 Nvidia CUDA 识别为平台,并将我的 GPU 识别为设备。
不幸的是,它仍在将任务加载到 CPU,但很有可能是因为我的代码,而我还没有正确弄清楚如何在 GPU 上创建上下文。
【问题讨论】:
标签: linux anaconda opencl nvidia pyopencl