python 找不到libNVVM

zaq34kh6  于 2023-06-20  发布在  Python
关注(0)|答案(5)|浏览(196)

我正在尝试通过CUDA@vectorize一些Python。我在atom中用Cuda9.1和Anaconda3运行Python3,遇到了类似的问题:
Cuda: library nvvm not found
但这个解决方案是针对Linux的,而我是在Windows上。
我从上面的解决方案中收集到,我需要添加一个环境变量。我试图通过从我在下面找到的nvvm文件中搜索来做到这一点:
C:\Users\ME\AppData\Local\Programs\Python\Python36\Lib\site-packages\numba\cuda\tests\cudadrv__pycache__
但再多说也无济于事我尝试了'conda install cudatoolkit'以及更新它。
我的问题是操作系统不知道这个库在哪里吗?如何将python指向它需要的库?

rslzwgfq

rslzwgfq1#

我在2019年底在没有Anaconda的CUDA 10.1上遇到了这个问题(所有内容都通过pip安装)。numba文档说它首先查找由名为 cudatoolkit 的conda包配置的CUDA,但这不适用,因为我没有使用conda安装任何东西。它查找CUDA的第二个地方是在环境变量CUDA_HOME中,将其设置为“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1”对我来说很有用:

此后,错误消失,numba代码运行。

t2a7ltrp

t2a7ltrp2#

这些是我设置的环境变量,以获取在Windows上运行的一些pyCUDA示例代码:
NUMBAPRO_NVVM = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\nvvm\bin\nvvm64_32_0.dll
NUMBAPRO_LIBDEVICE = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\nvvm\libdevice\

8yoxcaq7

8yoxcaq73#

必须从末端拆下横杆。

NUMBAPRO_LIBDEVICE = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\nvvm\libdevice
eimct9ow

eimct9ow4#

Windows 10(x64)上的Python 3.7.0(AMD上的x64)。CUDA 10

pip install --upgrade pip  
pip install numba
pip install numpy
pip install six

还需要设置系统变量path为:

NUMBAPRO_NVVM=c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\nvvm\bin\nvvm64_33_0.dll
NUMBAPRO_LIBDEVICE=c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\nvvm\libdevice

重启电脑!(因为某些原因,这一点很重要)。这对我很有效。

zzzyeukh

zzzyeukh5#

使用Windows 10 x64 + Python 3.10 + CUDA 11.8 + Tensorflow 2.10 + Anaconda(或Miniconda)进行测试
这将根据当前Anaconda环境自动检测正确的目录,在本例中为py310tf

# [Bugfix]. Anaconda (or Miniconda) + Tensorflow: Prevent CUDA from warning that it cannot find nvvm when JIT compiling.
import subprocess
from pathlib import Path
anaconda_path_to_python = Path(subprocess.check_output("where python").decode("utf-8").split("\n")[0]).parent # Find Anaconda home directory.
os.environ["XLA_FLAGS"] = f"--xla_gpu_cuda_data_dir={anaconda_path_to_python}" # e.g. if Miniconda environment was py310tf this would be C:/Users/%USERNAME%/miniconda3/envs/py310tf
print(f"CUDA: Add path to find NVVM for JIT compiling: XLA_FLAGS={os.environ['XLA_FLAGS']}")

输出:

CUDA: Add path to find NVVM for JIT compiling: XLA_FLAGS=--xla_gpu_cuda_data_dir=C:\Users\Gravitas\miniconda3\envs\py310tf

相关问题