ubuntu 18.04 存储库 python numba 和 nvidia-cuda-toolkit 之间有冲突吗?

ubuntu 18.04 存储库 python numba 和 nvidia-cuda-toolkit 之间有冲突吗?

当我安装 ubuntu(mate 版本,但我认为这并不重要)18.04 时,我很高兴地看到现在对 nvidia cuda 和 python numba 有了完整的存储库支持,这在以前的版本中安装起来很麻烦。

我有 nividia-driver-390(专有),有存储库 cuda 安装、存储库 python-3 numba 安装和存储库 nvidia-cuda-toolkit 安装。

Cuda 可以工作,因为 nvcc 可以编译和执行 C 代码中的示例。Numba 可以工作,因为我可以使用 @jit 并获得 CPU 加速。Pycuda 可以工作。我可以在 python3 中使用 pycuda 并让它使用 cuda。

但是,numba 也应该允许通过 cuda 进行 GPU 加速,但失败了。当我执行一个简单的示例时,在经过一长串错误跟踪后,我发现:

RuntimeError: Missing libdevice file for compute_35.
Please ensure you have package cudatoolkit 7.5.   
Install package by:

conda install cudatoolkit=7.5

但是,我没有使用 conda 安装 numba,而是使用了存储库。而且存储库中的 cudatoolkit 似乎是 9.1 版本,而不是 7.5 版本。

经过一番浏览,我发现问题在于使用 numba 安装的可执行代码是针对 cudatoolkit 库 7.5 编译的,而不是针对存储库安装的库 9.1。

解决这个问题最干净的方法是什么?我优先选择尽可能接近官方存储库。

答案1

我遇到了完全相同的问题。我通过安装 miniconda 和 conda 安装两个软件包解决了这个问题:

conda install cudatoolkit
conda install numba

这样就可以工作了,但是并不是很漂亮。

相关内容