python - Anaconda 安装 pycuda
问题描述
我正在尝试在具有 Windows 10 64 位的计算机上安装 pycuda,我使用 python 3.5 64 位安装了 GPU Toolkit 9.1 和 Anaconda 4.2。我使用预编译包安装了 pycuda:
pycuda‑2017.1.1+cuda9185‑cp35‑cp35m‑win_amd64.whl
我的 Anaconda 安装中的安装没有标记任何错误,但是当我尝试运行一个简单的示例时,我遇到了导入问题:
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pycuda.driver as cuda
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
ImportError: numpy.core.multiarray failed to import
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Anaconda3\lib\site-packages\pycuda\driver.py", line 5, in <module>
from pycuda._driver import * # noqa
SystemError: <class 'ImportError'> returned a result with an error set
任何想法??
更新:
我解决了将 cuda 库的 lib 目录添加到我的路径的第一个问题:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib
但现在我有这个错误:
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pycuda.driver as cuda
>>> import pycuda.autoinit
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Anaconda3\lib\site-packages\pycuda\autoinit.py", line 5, in <module>
cuda.init()
pycuda._driver.Error: cuInit failed: unknown error
解决了
我尝试安装 Cudatoolkit 9.2,并添加
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib
路径,更新我的 nvidia 驱动程序,并安装 pycuda pycuda‑2018.1+cuda92148‑cp35‑cp35m‑win_amd64.whl
现在我的 cuda 代码可以正常工作。
解决方案
推荐阅读
- python - selenium 中缺少 iframe 元素
- c++ - 使用 std::array<> 的构造函数委托
- javascript - 在 javascript 中设置与浏览器时区和时间无关的特定日期和时间
- laravel - Laravel 数据表行重新排序问题
- azure - 如何将 Azure 数据工厂的组件与 informatica power center 映射?
- flutter - 如何在飞镖/颤振中解码 URL?
- character-encoding - 如何解决 RStudio 面板上替换字符“�”的问题?
- node.js - 如何优化 postgresql 查询?
- node.js - 为什么 Axios GET 请求在 Node Express 中发送两次?
- php - 在 Laravel 中以数组形式获取数据