这里写目录标题
问题描述
我用anaconda装了Pytorch,其能够正常在gpu上运行。
但是我是用nvcc -V
命令时,却报错:-bash: nvcc: command not found
然而,我是可以使用nvidia-smi
查看到CUDA的版本号的
nvidia-smi命令没问题,证明系统能够正确检测到nvidia的显卡驱动,但nvcc -V报错,证明我们的环境里面没有相关的代码。
问题原理
为什么anaconda安装的Pytorch,其能够直接在gpu上运行
经过查阅,发现是conda
方式安装的Pytorch
自带了cuda
,因此不需要我们再独立安装cuda
和cudnn
1:
CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.2和10.0等)。
1.用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。
2. 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。
(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。
综上,如果driver API和runtime> API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。
NVCC是什么,怎么查看装没装
nvcc 是The main wrapper for the NVIDIA CUDA Compiler suite. Used to compile and link both host and gpu code.(NVIDIA CUDA 编译器套件的主要包装器,用于编译和链接主机和 gpu 代码)。一般使用nvcc -V查看CUDA版本
下面是如果安装了NVCC,将其添加到环境中的步骤2
- 查看cuda的bin目录下是否有nvcc: