安装 cudatoolkit 时缺少 Nvcc?
Posted
技术标签:
【中文标题】安装 cudatoolkit 时缺少 Nvcc?【英文标题】:Nvcc missing when installing cudatoolkit? 【发布时间】:2019-10-21 13:12:50 【问题描述】:我已经用 pytorch 安装了 cuda
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
但是,nvcc 似乎没有随它一起安装。例如,如果我想使用nvcc -V
,我会收到未找到nvcc 的错误,我应该使用sudo apt install nvidia-cuda-toolkit.
安装它
我可以这样做吗(我不想只是尝试然后发现它不起作用/弄乱了整个 cuda 设置)。
这是错误还是预期行为?
我正在使用 Ubuntu 18.04 并拥有 cuda 10.2
【问题讨论】:
使用conda install
安装的cudatoolkit
与NVIDIA打包的CUDA工具包不一样。它是一个子集,为conda
安装的其他软件包提供所需的组件,例如pytorch
。如果您只需要使用 pytorch,这可能就是您所需要的。如果您出于其他原因需要/想要完整的 CUDA 工具包,您可以使用多种方法安装它,包括您指定的方法的一些变体,但它会在 conda 通常使用的另一个位置安装一个单独的副本包。这一切对我来说都是预期的行为。
NVIDIA 发布了一个CUDA linux install guide 可能有用。但是,它没有 conda 包或方法。
你没有提到你是否有 GPU,或者你有什么 GPU,或者你是否安装了 GPU 驱动程序,或者你安装了什么 GPU 驱动程序,但这都很重要。最简单的兼容性说明是为您的 GPU 安装最新的驱动程序,如果您还没有这样做的话。从 NVIDIA 安装 CUDA 工具包可能会为您安装适当/足够的驱动程序,具体取决于您安装的具体内容。一般来说,conda install ...
不会安装 GPU 驱动程序,以我的经验。
我想使用的 Faster-RCNN 实现需要 nvcc。我确实有一个 gpu,否则 Pytorch 运行完美。所以最安全的选择是卸载 conda cudatoolkit 并手动安装 cuda?你知道有什么好的安装脚本可以自动安装吗?
我想您会发现,使用 conda 安装的 CUDA 工具包而不是 conda 安装的工具包更难让您的 conda 安装 pytorch。我不知道最安全的赌注是什么;我经常使用一台装有 conda 安装的 cuda 工具包的机器,并使用我已经提供的说明进行单独安装。这可能适用于您的用例,也可能不适用。版本很重要。据我所见,对教程、脚本、场外资源的请求通常与堆栈溢出无关。
【参考方案1】:
检查nvcc是否在文件夹/usr/local/cuda-10.2/bin
中
如果该文件夹中存在./nvcc --version
,则运行它
输出如下所示
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
如果是这种情况,请将文件夹添加到全局路径变量
echo "export PATH=/usr/local/cuda-10.2/bin$PATH:+:$PATH" >> ~/.profile
并使用刷新配置文件
source ~/.profile
然后重启你的机器。
【讨论】:
【参考方案2】:你可以试试
conda install -c conda-forge nvcc_linux-64
目前这应该让您获得 10.2。 Nvidia 有自己的频道 nvidia,但最新版本是 10.1。
【讨论】:
关注了这个答案,但发现这似乎没有解决问题。nvcc_linux-64
安装的nvcc只是一个调用$(CUDA_HOME)/bin/nvcc
的shell脚本
正如 package 的描述中所说:“启用正确 nvcc 的元包。”不是真正的nvcc
各位,听听我上面的评论:这不会安装 nvcc!这就像一条通往无处的捷径!如果您一开始没有 nvcc,您将浪费时间找出问题所在!【参考方案3】:
在使用 PyTorch 1.4 安装 10.1 的 cudatoolkit
时遇到了这个问题。
有一个conda-forge
包https://anaconda.org/conda-forge/cudatoolkit-dev
。安装后,/home/li/anaconda3/envs/<env_name>/pkgs/cuda-toolkit
和 bin/
和 lib/
将提供 nvcc
以及其他 CUDA 库。
【讨论】:
不幸的是,它目前有 10.1,我需要 10.2 @tejasvi88 尝试通过github.com/conda-forge/cudatoolkit-dev-feedstock请求这个 非常感谢!我快疯了! 奇怪为什么它没有 10.2 版:/ 卡在“执行交易”上,然后最终失败:/【参考方案4】:来自conda-forge
的cudatoolkit-dev
包对我不起作用。我使用来自HCC
的包和最新的pytorch (v1.9.0) https://anaconda.org/HCC/cudatoolkit。
在pytorch
和torchvision
旁边安装cudatoolkit
的命令:
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch -c hcc
安装后可以查看
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
【讨论】:
看起来这也只适用于 Linux @Sterling 我没有在 Windows 机器上测试过这些命令。所以,可能它只适用于 Linux。 刚刚检查了 HCC repo 上的cudatoolkit
包。 HCC 提供cudatoolkit
包仅适用于 Linux。
实际上,为我工作。谢谢!【参考方案5】:
与 pytorch 一起安装的cudatoolkit
只是运行时,不附带开发编译器nvcc
。要获得nvcc
,您需要安装cudatoolkit-dev
,我相信它可以从conda-forge
频道获得。
【讨论】:
从 Nvidia 网站 (link),我看到可以选择性地安装 CUDA 包。只安装nvcc就够了吗? 我没有尝试过选择性安装,但似乎没问题,因为 nvcc 安装会事先检查任何依赖项以上是关于安装 cudatoolkit 时缺少 Nvcc?的主要内容,如果未能解决你的问题,请参考以下文章
PTX 和 CUBIN w.r.t 有啥区别? NVCC 编译器?
为啥 nvcc 失败允许将 T * 类型的指针转换为 void *?