巨蟒是如何挑选cudatoolkit的
我在anaconda的多个环境中安装了不同的cuda工具包 env1具有巨蟒是如何挑选cudatoolkit的,cuda,anaconda,cupy,Cuda,Anaconda,Cupy,我在anaconda的多个环境中安装了不同的cuda工具包 env1具有cudatoolkit 10.0.130 env2有cudatoolkit 10.1.168 env3具有cudatoolkit 10.2.89 我通过在每个环境上运行conda list找到了这些 当我执行nvidia smi时,无论我处于哪个环境,我都会得到以下输出 +-----------------------------------------------------------------------------
cudatoolkit 10.0.130
env2有cudatoolkit 10.1.168
env3具有cudatoolkit 10.2.89
我通过在每个环境上运行conda list
找到了这些
当我执行nvidia smi
时,无论我处于哪个环境,我都会得到以下输出
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 208... Off | 00000000:01:00.0 On | N/A |
| 0% 42C P8 7W / 260W | 640MiB / 11016MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
上面显示的cuda版本是否与cuda工具包版本相同?
如果是这样,为什么在所有环境中都是一样的
在拥有cudatoolkit版本10.2.89
的env3中,我尝试使用命令pip install cupy-cuda102
安装库。
当我尝试这样做时,会出现以下错误
ERROR: Could not find a version that satisfies the requirement cupy-cuda102 (from versions: none)
ERROR: No matching distribution found for cupy-cuda102
我能够使用CUDA10.1的pip安装cupy-cuda101
进行安装。
为什么找不到cudatoolkit 10.2
我问这个问题的原因是,当我运行深度学习模型时,我得到一个错误cupy.cuda.cublas.CUBLASError:cublas_STATUS_NOT_INITIALIZED
。我只是想知道cudatoolkit版本是否与此错误有关。即使此错误与cudatoolkit版本无关,我也想知道anaconda如何使用cudatoolkit
上面显示的cuda版本是否与cuda工具包版本相同
它与CUDA工具包版本无关
如果是这样的话,为什么在所有的环境中都是一样的呢
因为它是驱动程序的属性。它是系统中活动驱动程序支持的最大CUDA版本。当你尝试使用CUDA 10.2时,这就是为什么什么都不起作用。您的驱动程序需要更新以支持CUDA 10.2。这并不是真正回答最初的问题,而是后续问题: tensorflow和pytorch可通过anaconda直接安装,无需从nvidia明确下载cudatoolkit。它只需要安装gpu驱动程序。在这种情况下,nvcc未安装,但仍能正常工作。在这种情况下它是如何工作的 通常,Anaconda/Conda Forge上的GPU包是使用Anaconda新的CUDA编译器工具链构建的。它的制作方法是将
nvcc
和friends从CUDA工具包中的其他运行库(cuft、cuSPARSE等)中分离出来。后者打包在cudatoolkit
包中,作为run
-依赖项(用康达的术语来说),并在安装诸如PyTorch之类的GPU包时安装
然后,GPU包被编译、链接到cudatoolkit
,并打包,这就是您只需要安装CUDA驱动程序而不需要安装其他驱动程序的原因。由于此链接,系统的CUDA工具包(如果有)在默认情况下被忽略,除非包(如Numba)有自己的方式在运行时查找CUDA库
值得一提的是,安装的cudatoolkit
并不总是与您的驱动程序匹配。在这种情况下,可以显式约束其版本(例如10.0):
conda安装一些\u gpu\u包cudatoolkit=10.0
当安装tensorflow的环境被激活时会发生什么?conda是否在激活环境时创建用于访问cuda库的环境变量
激活环境时,Conda始终设置一些环境变量。我不完全确定tensorflow,但最有可能的是,在构建时,它链接到CUDA运行库(
cudatoolkit
)。因此,在启动tensorflow或其他GPU应用程序时,他们将使用安装在同一conda env中的cudatoolkit
。让我补充两件事:1CuPy.show_config()
无法正确打印安装在您的conda env中的cudatoolkit
的路径(尽管链接正确,但实际上使用的是cudatoolkit
,而不是您的本地CUDA安装),请参阅。因此,你的问题的答案是,就目前而言,是的。