ウェブサイト検索

Ubuntu 20.04 Focal Fossa LinuxにCUDAをインストールする方法


Nvidia CUDAツールキットは、GPUの並列計算プラットフォームおよびプログラミングモデルの拡張です。Nvidia CUDAのインストールは、公式のNvidia CUDAリポジトリの追加、その後関連するメタパッケージのインストール、および実行可能なCUDAバイナリへのパスの設定で構成されています。このチュートリアルでは、Ubuntu 20.04 Focal Fossa LinuxにCUDAをインストールする方法を紹介します。これにより、最新のドライバーとソフトウェアを使用してビデオグラフィックスを実行できるようになります。

下記の方法では、デフォルトのUbuntuリポジトリまたは(やや更新された)CUDAリポジトリからCUDAをインストールする方法をカバーします。最後に、インストールをテストするためにCUDA Cプログラムの例をコンパイルする方法も紹介します。

このチュートリアルでは、あなたは学びます:

  • UbuntuリポジトリからCUDAツールキットをインストールする方法
  • CUDAリポジトリからCUDAツールキットをインストールする方法
  • CUDA Cコードの例をコンパイルしてプログラムを実行する方法
  • CUDAのバージョンを確認する方法

ソフトウェアの要件と使用される規約

Ubuntu 20.04にCUDAをインストールするための手順

UbuntuリポジトリからCUDAツールキットをインストールする方法

  1. 最新のCUDAツールキットバージョンが手に入らないかもしれませんが、Ubuntu 20.04にCUDAをインストールする最も簡単な方法は、Ubuntuの標準リポジトリからインストールを行うことです。CUDAをインストールするには、次のコマンドを実行してください:

    sudo apt update
    sudo apt install nvidia-cuda-toolkit
    
  2. すべて準備が整ったはずです。CUDAのバージョンを確認してください:

    nvcc --version
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2019 NVIDIA Corporation
    Built on Sun_Jul_28_19:07:16_PDT_2019
    Cuda compilation tools, release 10.1, V10.1.243
    

    注意
    最新の最新のCUDAバージョンをインストールするには、下記のCUDAリポジトリからCUDAツールキットをインストールする方法セクションを参照してください。

  3. サンプルCUDA CコードのコンパイルによってCUDAツールキットのインストールを確認します。以下の サンプルCUDAコードのコンパイル セクションを参照してください。

CUDAリポジトリからCUDAツールキットをインストールする方法

  1. まだ行っていない場合は、VGA用のNvdiaドライバーがインストールされていることを確認してください。そのためには、「Ubuntu 20.04 Focal Fossa LinuxにNVIDIAドライバーをインストールする方法」のガイドに従ってください。
  2. NVIDIA CUDAリポジトリをセットアップします。次のコマンドを実行してCUDAリポジトリを有効にしてください。

    sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubunt4/x86_64/cuda-ubunt4.pin
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubunt4/x86_64/7fa2af80.pub
    sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubunt4/x86_64/ /"
    
  3. この段階では、すべてがCUDAをインストールする準備が整っているはずです。次の2つのaptコマンドを実行してください:

    sudo apt update
    sudo apt install cuda
    
  4. 準備ができたら、CUDAバイナリへのパスを設定してください:

    echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' >> ~/.bashrc
    
  5. インストールを確認するためにCUDAのバージョンを確認します:

    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
    

サンプルCUDAコードをコンパイルする

次のCUDA Cコードの例をコンパイルしてインストールを確認してください。以下のコードをhello.cuという名前のファイルに保存してください:

#include <stdio.h>

__global__
void saxpy(int n, float a, float *x, float *y)
{
  int i = blockIdx.x*blockDim.x + threadIdx.x;
  if (i < n) y[i] = a*x[i] + y[i];
}

int main(void)
{
  int N = 1<<20;
  float *x, *y, *d_x, *d_y;
  x = (float*)malloc(N*sizeof(float));
  y = (float*)malloc(N*sizeof(float));

  cudaMalloc(&d_x, N*sizeof(float)); 
  cudaMalloc(&d_y, N*sizeof(float));

  for (int i = 0; i < N; i++) {
    x[i] = 1.0f;
    y[i] = 2.0f;
  }

  cudaMemcpy(d_x, x, N*sizeof(float), cudaMemcpyHostToDevice);
  cudaMemcpy(d_y, y, N*sizeof(float), cudaMemcpyHostToDevice);

  // Perform SAXPY on 1M elements
  saxpy<<<(N+255)/256, 256>>>(N, 2.0f, d_x, d_y);

  cudaMemcpy(y, d_y, N*sizeof(float), cudaMemcpyDeviceToHost);

  float maxError = 0.0f;
  for (int i = 0; i < N; i++)
    maxError = max(maxError, abs(y[i]-4.0f));
  printf("Max error: %f\n", maxError);

  cudaFree(d_x);
  cudaFree(d_y);
  free(x);
  free(y);
}

次に、nvcc を使って Nvidia CUDA コンパイラでコードをコンパイルし、新しくコンパイルされたバイナリを実行します:

nvcc -o hello hello.cu 
./hello 
Max error: 0.000000

Ubuntu 20.04 フォーカルフォッサLinux上のCUDA

トラブルシューティング

現在、CUDAはCUDA Ubuntu 18.04のソースからインストールした場合、バージョン8よりも高いGCCコンパイラをサポートしていません。そのため、Nvidia CUDAコンパイラでコードをコンパイルすると、次のようなエラーが発生する可能性があります。

In file included from /usr/local/cuda-10.2/bin/../targets/x86_64-linux/include/cuda_runtime.h:83,
                 from :
/usr/local/cuda-10.2/bin/../targets/x86_64-linux/include/crt/host_config.h:138:2: error: #error -- unsupported GNU version! gcc versions later than 8 are not supported!
  138 | #error -- unsupported GNU version! gcc versions later than 8 are not supported!
      |  ^~~~~

CUDAコンパイラーの要件に従うために、デフォルトのGCCコンパイラーをバージョン8以下に切り替えてください。

締めくくりの考え

このチュートリアルでは、Ubuntu 20.04 Focal Fossa LinuxにCUDAをインストールする方法を見ました。CUDAツールキットは、いくつかの異なる方法でインストールすることができ、ここではそれを示しました。最も最新のCUDAソフトウェアはPPAからインストールできますが、最も便利なインストール方法は公式パッケージマネージャーからのダウンロードです。

関連記事: