まず、以下の手順に従ってCondaをインストールします。
- Condaの公式ウェブサイト (https://conda.io) から最新のCondaパッケージをダウンロードします。
- ダウンロードしたパッケージを実行し、インストーラーの指示に従ってCondaをシステムにインストールします。
Condaが正常にインストールされたら、次の手順でnvcc 11.3をインストールします。
-
ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行します:
conda install cudatoolkit=11.3 -c conda-forge
このコマンドは、Condaを使用してcudatoolkit 11.3をインストールします。
-c conda-forge
は、conda-forgeというユーザーがメンテナンスするリポジトリからパッケージを取得するためのオプションです。 -
インストールが完了したら、
nvcc --version
を実行して、nvccのバージョンが11.3になっていることを確認します。
これで、nvcc 11.3が正常にインストールされ、利用できるようになりました。次に、いくつかの簡単なコード例を示します。
例1: CUDAを使用したベクトル加算のコード
import numpy as np
from numba import cuda
@cuda.jit
def add_vectors(a, b, result):
i = cuda.grid(1)
if i < len(a):
result[i] = a[i] + b[i]
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.zeros_like(a)
threads_per_block = 32
blocks_per_grid = (len(a) + (threads_per_block - 1)) // threads_per_block
add_vectors[blocks_per_grid, threads_per_block](a, b, result)
print(result)
このコードは、CUDAを使用して2つのベクトルを要素ごとに加算します。
例2: CUDAを使用した行列乗算のコード
import numpy as np
from numba import cuda
@cuda.jit
def matrix_multiply(a, b, result):
i, j = cuda.grid(2)
if i < result.shape[0] and j < result.shape[1]:
for k in range(a.shape[1]):
result[i, j] += a[i, k] * b[k, j]
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.zeros((2, 2))
threads_per_block = (16, 16)
blocks_per_grid = (
(result.shape[0] + threads_per_block[0] - 1) // threads_per_block[0],
(result.shape[1] + threads_per_block[1] - 1) // threads_per_block[1]
)
matrix_multiply[blocks_per_grid, threads_per_block](a, b, result)
print(result)
このコードは、CUDAを使用して2つの行列の積を計算します。
以上が、Condaを使用してnvcc 11.3をインストールし、利用する方法の簡単な解説とコード例です。GPUプログラミングにおいて、正しいバージョンのnvccを利用することは非常に重要です。