如何在Google Colab GPU上安装CUDA

55

看起来Google Colab GPU没有CUDA Toolkit,我该如何在Google Colab GPU上安装CUDA。我在Google Colab中安装mxnet时遇到了这个错误。

Installing collected packages: mxnet
Successfully installed mxnet-1.2.0

错误:未完整安装用于计算的GPU。 请确保您已安装CUDA并在终端中运行以下命令,并重试:

pip uninstall -y mxnet && pip install mxnet-cu90==1.1.0
根据您的CUDA版本调整'cu90'(还提供'cu75'和'cu80')。 您也可以通过调用turicreate.config.set_num_gpus(0)来完全禁用GPU使用。 一个异常已经发生,请使用%tb查看完整的回溯。
SystemExit: 1

这个问题的整个前提都是错误的。Colab实例已经配备了完整的CUDA工具包。版本可能会因为你使用的硬件而有所不同。在任何标准实例上,你都可以运行nvcc来查看你被分配的工具包版本。 - talonmies
8个回答

85

因为您在Colab中没有启用GPU,所以Cuda未显示在您的笔记本电脑上。

Google Colab有GPU或不带GPU两个选项。您可以在运行时设置中启用或禁用GPU。

Go to Menu > Runtime > Change runtime.

将硬件加速更改为GPU。

GPU Settings Screenshot

要检查GPU是否正在运行,请运行以下命令

!nvidia-smi

如果输出结果与下面的图片相似,则表示您的GPU和cuda正在工作。您还可以看到CUDA版本。cuda confirmation screenshot

之后,为了检查PyTorch是否能够使用GPU,请运行以下代码。

import torch
torch.cuda.is_available()
# Output would be True if Pytorch is using GPU otherwise it would be False.

要检查 TensorFlow 是否能够使用 GPU,请运行以下代码。

import tensorflow as tf
tf.test.gpu_device_name()
# Standard output is '/device:GPU:0'

29

我非常相信Google Colab已经预先安装了Cuda...您可以通过打开一个新的笔记本并输入!nvcc --version来确保,这将返回已安装的Cuda版本。

以下是我的版本: enter image description here


3
不是充分条件。在使用PyTorch时,运行代码torch.cuda.is_available()会返回False。需要更改运行时以包含GPU。 - coder.in.me
也许这会对你有所帮助。 https://dev59.com/F1UL5IYBdhLWcg3wSmco#60338745 - Ahwar
1
@coder.in.me:如果你想要访问CUDA工具包,构建和安装软件包是一个足够的条件,这也是实际问题。 - talonmies

17
  1. 点击这里:https://developer.nvidia.com/cuda-downloads
  2. 选择Linux -> x86_64 -> Ubuntu -> 16.04 -> deb (local)
  3. 复制下载按钮的链接。
  4. 现在,您需要编写一系列命令。第一个将是调用wget以从步骤3中保存的链接下载CUDA安装程序的命令
  5. "Base installer"部分下将有安装说明。也将它们复制,但从所有行中删除sudo
  6. 使用!给每个命令前缀,插入到一个单元格并运行
  7. 对于我来说,命令序列如下:
    !wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64 -O cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb !dpkg-i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb !apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub !apt-get update !apt-get install cuda
  8. 现在最后安装mxnet。由于我上面安装的cuda版本是9.2,所以必须稍微更改您的命令:!pip install mxnet-cu92
  9. 成功安装 graphviz-0.8.3 mxnet-cu92-1.2.0

2
我今天尝试安装它,发现操作系统已经更新为Ubuntu 18.04。您可以使用"!lsb_release -a"命令进行检查。而且CUDA 10.0也可用。 - Aakash Choubey
1
@Dienow: 在按照第七步后,我尝试运行 !nvcc --version 命令,但版本似乎仍是10.1。我尝试安装 mxnet-cu92 ,但在导入时出现错误:OSError: libcudart.so.9.2: 无法打开共享对象文件:没有那个文件或目录。此外,在 mxnet 网站上,它要求安装 cudnn 7.4.1,我尝试安装它,但我的 .tgz 文件在尝试使用 tar xvzf cudnn-9.2-linux-x64-v7.1.tgz 命令解压缩时显示错误。它会退出并显示一个错误 tar: Exiting with failure status due to previous errors。另外,我同意 Aakash 的评论,即 Ubuntu 18.04 也是可行的。 - aspiring1

3

这个解决方案在2022年11月对我有效。查询Colab正在运行的Ubuntu版本(在笔记本中使用或在终端中不使用):

!lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.6 LTS
Release:    18.04
Codename:   bionic

在 Colab 中查询当前的 CUDA 版本(仅用于比较):

!nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Feb_14_21:12:58_PST_2021
Cuda compilation tools, release 11.2, V11.2.152
Build cuda_11.2.r11.2/compiler.29618528_0 

接下来,访问 cuda toolkit archive 或者 latest builds 并进行配置选择所需的 CUDA 版本操作系统版本。当前所使用的是 Ubuntu 系统。 enter image description here 复制安装说明:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-ubuntu1804-11-7-local_11.7.0-515.43.04-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-7-local_11.7.0-515.43.04-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu1804-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

将最后一行更改为包含您的cuda版本,例如apt-get -y install cuda-11-7。否则可能会安装更新的版本。
!wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
!mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
!wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-!repo-ubuntu1804-11-7-local_11.7.0-515.43.04-1_amd64.deb
!dpkg -i cuda-repo-ubuntu1804-11-7-local_11.7.0-515.43.04-1_amd64.deb
!cp /var/cuda-repo-ubuntu1804-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
!apt-get update
!apt-get -y install cuda-11-7

你的CUDA版本现在将被更新:

nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Jun__8_16:49:14_PDT_2022
Cuda compilation tools, release 11.7, V11.7.99
Build cuda_11.7.r11.7/compiler.31442593_0

2
如果您切换到使用GPU,则VM上将可用CUDA。基本上,您需要做的是将MXNet的版本与已安装的CUDA版本匹配。
以下是我在Colab上安装MXNet所使用的步骤:
首先检查CUDA版本。
!cat /usr/local/lib/python3.6/dist-packages/external/local_config_cuda/cuda/cuda/cuda_config.h |\
grep TF_CUDA_VERSION

对于我来说,它输出了#define TF_CUDA_VERSION "8.0"

然后我使用MXNet安装了它。

!pip install mxnet-cu80

1
我认为这里最简单的方法是安装mxnet-cu80。只需使用以下代码:
!pip install mxnet-cu80
import mxnet as mx

您可以通过以下方式检查其是否可行:

a = mx.nd.ones((2, 3), mx.gpu())
b = a * 2 + 1
b.asnumpy()

我认为目前Colab只支持cu80及以上版本,低于此版本将无法使用。
如需更多信息,请查看以下两个网站: Google Colab 免费GPU教程 安装mxnet

1
那么 mxnet-cuXX 处理了完整的 CUDA 依赖安装? - Skyler

1
Google Colab提供了一个预装有GPU驱动程序和CUDA支持的运行环境,因此您无需手动安装CUDA。但是,为了确保您使用的是GPU加速的运行时,您需要从“Runtime”菜单中选择一个GPU运行时:
  1. 打开一个新的或现有的Colab笔记本。
  2. 点击顶部的“Runtime”菜单。
  3. 选择“更改运行时类型”。
  4. 在弹出窗口中的“硬件加速器”下拉菜单中选择“GPU”。
  5. 点击“保存”。
一旦将运行时类型设置为GPU,您的Colab笔记本将在支持CUDA的GPU环境中运行。
您可以通过在代码单元格中运行以下代码来验证GPU和CUDA的安装情况:
import torch

print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))

这段代码将检查CUDA是否可用,并打印GPU设备的名称。

-1
在Colab中运行,需要CUDA 8(mxnet 1.1.0对于cuda 9+是无法使用的)。但是Google Colab现在运行的是9.2。然而,有一种方法可以卸载9.2,安装8.0,然后安装mxnet 1.1.0 cu80。
完整的jupyter代码在这里:Medium

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接