Debian 12、11、10 に CUDA ツールキットをインストールする方法

NVIDIA の CUDA (Compute Unified Device Architecture) は、並列コンピューティングのための強力なツールです。NVIDIA のグラフィックス プロセッシング ユニット (GPU) を使用して、コンピューティング タスクの速度を向上させます。このガイドでは、Debian 12 Bookworm、Debian 11 Bullseye、および Debian 10 Buster に CUDA をインストールする方法を説明します。すべてがスムーズに実行されるように、各 Debian バージョンで NVIDIA の APT リポジトリを使用します。

CUDA ツールキットの優れた点:

  • 並列処理: CUDA を使用すると、ソフトウェアは NVIDIA GPU 上で同時に多くのタスクを実行できます。これは、大量の計算能力を必要とするジョブに最適です。
  • 多くの言語をサポート: CUDA は、C、C++、Fortran などのプログラミング言語で使用できます。また、OpenCL や DirectCompute などの他のコンピューティング ツールでも動作します。
  • 完全な開発ツール: NVIDIA は、Nsight Eclipse Edition で開発者に完全なツールセットを提供します。これは、CUDA アプリケーションの構築、デバッグ、および改善に役立ちます。
  • すぐに使えるライブラリ: CUDA には GPU タスク用のライブラリがあります。例としては、数学演算用の cuBLAS やデータ分析用の cuFFT などがあります。
  • 将来を見据えたデザイン: CUDA は、新しい NVIDIA GPU や今後登場する GPU で動作するように作られています。つまり、コードをほとんど変更せずにソフトウェアを改良できるということです。

Debian に CUDA をインストールする前に:

  • システムを確認してください: コンピュータのハードウェアとソフトウェアが CUDA に対応していることを確認してください。NVIDIA には、確認できる GPU とシステム要件のリストがあります。
  • 適切なソースを使用する: このガイドは、Debian 用の NVIDIA の APT リポジトリに焦点を当てています。これは、Debian システムで安定して正常に動作する CUDA バージョンを入手する最良の方法です。
  • 最新情報を入手: 時々アップデートを確認することをお勧めします。NVIDIA は、CUDA を改善するために、頻繁に新しい機能や修正をリリースしています。

この紹介を締めくくるにあたり、Debian で CUDA を理解して使用することで、アプリケーションを大幅に強化することができます。今後は、Debian システムで NVIDIA の CUDA ツールキットを最大限に活用するためのインストール プロセスとベスト プラクティスについてさらに詳しく説明します。

既存の CUDA および NVIDIA インストールのクリア (状況依存)

NVIDIA ドライバーをインストールしたり、Debian でバージョン アップグレードを検討する前に、クリーンな状態から始めることが重要です。つまり、Debian システムから既存の NVIDIA インストールをすべて削除する必要があります。この手順により、重複インストールから発生する可能性のある問題を回避できます。NVIDIA ドライバーのインストールを初めて行う場合は、このセクションをスキップして次のセクションに進んでください。

方法 1: APT 経由でインストールされた NVIDIA パッケージをアンインストールする

以前に APT パッケージ マネージャーを使用して NVIDIA ドライバーをインストールしたことがある場合は、1 つのコマンドを使用してすべての NVIDIA 関連パッケージを削除できます。このアクションにより、システムから NVIDIA が効果的に削除されます。ターミナルで次のコマンドを入力します。

sudo apt autoremove cuda* nvidia* --purge

このコマンドは、 autoremove の特徴 apt コマンド。他のパッケージの依存関係を満たすために自動的にインストールされたが、不要になったパッケージを削除します。 nvidia* パターンは「nvidia」で始まるすべてのパッケージを識別します。 --purge オプションは伝える apt パッケージだけでなく、関連する設定ファイルも削除します。

方法 2: Runfile 経由でインストールされた NVIDIA ドライバーをアンインストールする

NVIDIAドライバを .run ファイル (NVIDIA CUDA リポジトリなどのより優れた代替手段があるため、通常は推奨されません) を削除するには、別の方法が必要です。

実行ファイルタイプのインストールを削除するには、次のコマンドを実行します。

sudo /usr/bin/nvidia-uninstall

このコマンドは、 nvidia-uninstall 実行ファイルのインストールに付属するスクリプト。このスクリプトは、実行ファイルを使用してインストールされた NVIDIA ドライバーを系統的に削除します。

方法3: Runfile経由でインストールされたCUDAツールキットをアンインストールする

CUDA ツールキットを runfile を使用してインストールした場合は、これも削除する必要があります。削除プロセスは、NVIDIA ドライバーの場合と同様です。CUDA ツールキットを削除するには、次のコマンドを実行します。

sudo /usr/local/cuda-X.Y/bin/cuda-uninstall

上記のコマンドで、 X.Y インストールされているCUDAツールキットのバージョン番号を入力します。このコマンドは、 cuda-uninstall スクリプトは、CUDA ツールキットの実行ファイルのインストールに含まれています。このスクリプトは、Debian システムから CUDA ツールキットを系統的に削除するように設計されています。

Contrib および非フリーリポジトリを有効にする

最初のステップでは、Debian リポジトリのリストに「contrib」および「non-free」リポジトリを追加します。Debian 12 Bookworm 以降では手順が異なるため、Debian ディストリビューションの特定のバージョンに対応するコマンドを使用することが重要です。

まず最初に、Debian システムに以下がインストールされていることを確認してください。

sudo apt install software-properties-common -y

本の虫以降:

sudo add-apt-repository contrib non-free-firmware

ブルズアイとバスターを下向きに:

sudo add-apt-repository contrib non-free

続行する前に、パッケージ インデックスを更新するために、必ず簡単な APT 更新を実行してください。

sudo apt update

Debian に NVIDIA APT リポジトリを追加する

CUDA をインストールする最も効率的な方法は、NVIDIA CUDA リポジトリから直接インストールすることです。この方法により、ユーザーは新機能、バグ修正、セキュリティ パッチ、拡張機能などの更新をタイムリーに受け取ることができます。

CUDA インストール前の Debian システムの準備

インストール プロセスを開始する前に、Debian システムを適切に準備することが重要です。つまり、いくつかの前提条件となるパッケージをインストールする必要があります。これらのパッケージの一部がすでにシステム上にある場合でも、念のため確認してください。ターミナルで次のコマンドを実行します。

sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y

このコマンドは、後続のステップで重要となる必須パッケージをインストールします。その中には、 dirmngr キーを管理し、 ca-certificates SSL証明書を扱います。 software-properties-common ソフトウェアリポジトリを管理し、 apt-transport-https 安全なパッケージのダウンロードを保証します。 dkms カーネルモジュールを管理し、 curl インターネットからのファイルのダウンロードを容易にします。

NVIDIA リポジトリ GPG キーによるインストールの認証

ソフトウェア パッケージの信頼性と整合性を保証することは非常に重要です。特定の Debian バージョンの GPG キーをインポートするときに、リポジトリ パッケージの信頼性を検証します。キーはパッケージに署名し、パッケージをインポートすることで、システムにこれらの署名済みパッケージを信頼するように指示します。

本の虫よ、走れ:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

ブルズアイ、走る:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

バスター、使用:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

NVIDIA リポジトリを Debian システムに統合する

GPG キーを使用すると、NVIDIA リポジトリを Debian システムに追加できます。このリポジトリには、CUDA のインストールに必要なパッケージが含まれています。

本の虫、使用:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

ブルズアイ、使用法:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

バスター、使用:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

ステップ4: パッケージリストを更新する

NVIDIA リポジトリを追加した後は、システムのパッケージ リストを更新することが重要です。これにより、システムが NVIDIA リポジトリからの新しいパッケージを認識するようになります。更新するには、次のコマンドを実行します。

sudo apt update

NVIDIA ドライバーを使用して CUDA をインストールする

CUDA ドライバーを検索

前提条件を満たしたら、CUDA と最新の NVIDIA ドライバーをインストールできます。ただし、続行する前に、APT show コマンドを使用して利用可能なドライバー バージョンを確認することをお勧めします。

apt show cuda-drivers -a

これにより、さまざまな NVIDIA ドライバー バージョンで利用可能なパッケージのリストが出力されます。

あるいは、APT ポリシー コマンドを使用して、利用可能な CUDA バージョンを確認することもできます。

sudo apt policy cuda

Cudaドライバのインストールに進む

このコマンドは、利用可能な CUDA バージョンを表示します。ニーズに最適なバージョンを選択してください。このガイドでは、利用可能な最新バージョンをインストールする方法を説明します。

交換を忘れないでください 545535,530, 525, 520, 515など、選択に応じて異なります。

sudo apt install nvidia-driver cuda-drivers-545 cuda

インストールを完了して再起動します

インストールが完了したら、システムを再起動してすべての変更が有効になっていることを確認します。

sudo reboot

このステップにより、Debian システムでの CUDA セットアップが完了し、その機能を効果的に活用できるようになります。

CUDA 入門

GPU 機能の評価

CUDAプログラミングを始める前に、GPUの機能を理解することが重要です。GPUによってサポートされるCUDAのバージョンは異なり、コア数やメモリサイズなどの属性もそれぞれ異なります。GPUの詳細情報を取得するには、 nvidia-smi 指示:

nvidia-smi

このコマンドは、名前、合計メモリ、サポートされている CUDA バージョンなど、さまざまな GPU 属性に関する情報を提供します。

最初の CUDA プログラムを作成する

まず、基本的なCUDAプログラムを開発し、コンパイルして実行し、すべてが正しく機能することを確認します。まず、 .cu CUDA プログラムの標準である拡張子です。任意のテキスト エディターを使用できます。

nano helloworld.cu

次のコードをファイルに挿入します。この単純なプログラムは、GPU から「Hello, World!」メッセージを表示します。

#include <stdio.h>

__global__ void helloFromGPU (void) {
    printf("Hello World from GPU!\n");
}

int main(void) {
    printf("Hello World from CPU!\n");
    helloFromGPU <<<1, 10>>>();
    cudaDeviceReset();
    return 0;
}

このプログラムをコンパイルするには、 nvcc このコマンドは、NVIDIA CUDA コンパイラの略です。

nvcc helloworld.cu -o helloworld

次に、コンパイルされたプログラムを実行します。

./helloworld

出力には次のように表示されます。

CPU から Hello World! GPU から Hello World!

高度な CUDA プログラミング: 行列乗算

CUDA の機能をさらに実証するために、CUDA を使用して行列乗算を実行するプログラムを開発してみましょう。これにより、CUDA が高度に並列化されたタスクを効率的に処理する方法が示されます。

まず新しいファイルを作成します:

nano matrixmul.cu

次のコードを matrixmul.cu ファイル。このプログラムは GPU 上で行列乗算を実行します。

__global__ void gpu_matrix_mult(int *a,int *b, int *c, int m, int n, int k)
{ 
    // Calculate the row & column index of the element
    int row = blockIdx.y * blockDim.y + threadIdx.y; 
    int col = blockIdx.x * blockDim.x + threadIdx.x;

    int sum = 0;
    if( row < m && col < k ) 
    {
        for(int j = 0; j < n; j++) 
        {
            sum += a[row * n + j] * b[j * k + col];
        }
        // Each thread computes one element of the block sub-matrix
        c[row * k + col] = sum;
    }
} 

プログラムをコンパイルするには、 nvcc 指示:

nvcc matrixmul.cu -o matrixmul

次に、コンパイルされたプログラムを実行します。

./matrixmul

出力には、行列乗算演算の結果が表示されます。この例は、CUDA が行列乗算などの並列タスクを効率的に処理し、従来の CPU 実行に比べてパフォーマンスを大幅に向上させる方法を示しています。

結論

この包括的なガイドでは、CUDA ツールキットを Debian 12 Bookworm、Debian 11 Bullseye、および Debian 10 Buster に細心の注意を払ってインストールしました。概要の手順に従うことで、ユーザーは NVIDIA GPU の計算能力を活用し、ハイパフォーマンス コンピューティング タスクの可能性を広げることができます。インストールが特定の Debian バージョンと一致していることを確認することは、安定性と最適なパフォーマンスを保証するために不可欠です。テクノロジが進化するにつれて、最新のリリースと公式ドキュメントを常に最新の状態に保つことが重要です。公式の NVIDIA リソースとフォーラムは、CUDA の機能についてさらに詳しく調べたり、特定の問題をトラブルシューティングしたりしたい人にとって非常に役立ちます。

Joshua James

コメントを残す