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 バージョンを表示します。ニーズに最適なバージョンを選択してください。このガイドでは、利用可能な最新バージョンをインストールする方法を説明します。
交換を忘れないでください 545
と 535,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 の機能についてさらに詳しく調べたり、特定の問題をトラブルシューティングしたりしたい人にとって非常に役立ちます。