安装 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-forgehttps://anaconda.org/conda-forge/cudatoolkit-dev。安装后,/home/li/anaconda3/envs/<env_name>/pkgs/cuda-toolkitbin/lib/ 将提供 nvcc 以及其他 CUDA 库。

【讨论】:

不幸的是,它目前有 10.1,我需要 10.2 @tejasvi88 尝试通过github.com/conda-forge/cudatoolkit-dev-feedstock请求这个 非常感谢!我快疯了! 奇怪为什么它没有 10.2 版:/ 卡在“执行交易”上,然后最终失败:/【参考方案4】:

来自conda-forgecudatoolkit-dev 包对我不起作用。我使用来自HCC 的包和最新的pytorch (v1.9.0) https://anaconda.org/HCC/cudatoolkit。

pytorchtorchvision 旁边安装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 *?

Theano安装,nvcc不在路径中

Nvidia Cudatoolkit 与 Conda Cudatoolkit

CUDA 编译是不是依赖于显卡的存在? [复制]

是否可以在未安装 CUDA 驱动程序的情况下运行 CUDA 程序或库?