我对运行which nvcc和显示的不同CUDA版本感到非常困惑nvidia-smi.
我的ubuntu 16.04上安装了cuda9.2和cuda10.现在我将PATH设置为指向cuda9.2.所以当我跑:
$ which nvcc
/usr/local/cuda-9.2/bin/nvcc
Run Code Online (Sandbox Code Playgroud)
但是,当我跑
$ nvidia-smi
Wed Nov 21 19:41:32 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.72 Driver Version: 410.72 CUDA Version: 10.0 |
|-------------------------------+----------------------+----------------------+
| 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 GTX 106... Off | 00000000:01:00.0 Off | N/A |
| N/A 53C P0 26W / N/A | 379MiB / 6078MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1324 G /usr/lib/xorg/Xorg 225MiB |
| 0 2844 G compiz 146MiB |
| 0 15550 G /usr/lib/firefox/firefox 1MiB |
| 0 19992 G /usr/lib/firefox/firefox 1MiB |
| 0 23605 G /usr/lib/firefox/firefox 1MiB |
Run Code Online (Sandbox Code Playgroud)
我是按照which nvcc建议使用cuda9.2 ,还是按照nvidia-smi建议使用cuda10 ?
我看到了这个答案,但它没有提供直接的答案,它只是要求我们重新安装我已经做过的cudatoolkit.
Rob*_*lla 62
CUDA有2个主要的API,运行时和驱动程序API.两者都有相应的版本(例如8.0,9.0等)
GPU驱动程序安装程序安装了对驱动程序API的必要支持(例如linux上的libcuda.so).
对运行时API的必要支持(例如,linux上的libcudart.so,以及它nvcc)也由CUDA工具包安装程序安装(其中也可能捆绑了GPU驱动程序安装程序).
在任何情况下,(已安装的)驱动程序API版本可能并不总是与(已安装的)运行时API版本匹配,尤其是如果您独立于安装CUDA(即CUDA工具包)安装GPU驱动程序.
该nvidia-smi工具由GPU驱动程序安装程序安装,通常具有GPU驱动程序,而不是CUDA工具包安装程序安装的任何内容.
最近(Linux上的驱动程序版本介于410.48和410.73之间)NVIDIA的功能决定在驱动程序的输出中添加由驱动程序安装的CUDA驱动程序API版本的报告nvidia-smi.
这与已安装的CUDA运行时版本无关.
nvcc,随CUDA工具包一起安装的CUDA编译器驱动程序工具将始终报告构建它以识别的CUDA运行时版本.它不知道安装什么驱动程序版本,或者即使安装了GPU驱动程序.
因此,通过设计,这两个数字不一定匹配,因为它们反映了两个不同的事物.
Nie*_*els 10
给大家做了这个图,希望大家看得更清楚。我现在终于明白为什么nvidia-smi的版本可以比nvcc的版本高了,因为nvidia-smi显示的是Driver的版本(最低级别)。nvcc 级别更高,因此较低版本不是问题。
基于@Robert Crovella 投票最高的答案。
nvcc位于 CUDA bin 文件夹中 - 因此请检查 CUDA bin 文件夹是否已添加到您的$PATH.
具体来说,请确保您已执行 CUDA 安装后操作(例如从此处):
$PATH(即将以下行添加到您的~/.bashrc)export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}
Run Code Online (Sandbox Code Playgroud)
附注。确保上面有以下两条路径,首先存在:
/usr/local/cuda-10.1/bin和/usr/local/cuda-10.1/NsightCompute-2019.1(根据安装的 Nsight 计算版本,NsightCompute 路径的结尾可能略有不同......
$LD_LIBRARY_PATH(即将以下行添加到您的~/bashrc)。export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Run Code Online (Sandbox Code Playgroud)
在此之后,nvcc和nvidia-smi(或nvtop)报告相同版本的 CUDA...
nvidia-smi可以显示 \xe2\x80\x9c 与 报告的版本不同的 CUDA 版本\xe2\x80\x9d nvcc。因为他们报告了两件不同的事情:
nvidia-smi显示给定 GPU 驱动程序的最大可用 CUDA 版本支持。\n报告的第二件事nvcc -V是系统当前正在使用的 CUDA 版本。
简而言之
\nnvidia-smi显示您的驱动程序支持的 CUDA 最高版本。nvcc -V显示当前 CUDA 安装的版本。只要你的驱动支持的版本比你安装的版本高就可以了。您甚至可以同时安装多个版本的 CUDA。
| 归档时间: |
|
| 查看次数: |
18097 次 |
| 最近记录: |