CUDA CまたはC++をJupyter上で実行する方法(Google Colab)

ページ名:CUDA CまたはC__をJupyter上で実行する方法(Google Colab)

CUDAはNVIDIAの並列コンピューティングアーキテクチャであり、GPUのパワーを活用することでコンピューティング性能の劇的な向上を可能にします。Colabでは、GPU上でCUDA C/C++を無料で使用できます。

  • 1
    新しいノートブックを作成します。をクリックします。
  • 2
    ウィンドウ右下のNew Python 3 Notebookをクリックします。
  • 3
    Runtime > Change runtime typeをクリックします。
  • 4
    ドロップダウンメニューからGPUを選択し、Saveをクリックします。
  • 5
    以前のバージョンのCUDAを完全にアンインストールします。(行の先頭に'!'を付けると、コマンドラインコマンドとして実行できます)。
      apt-get --purge remove cuda nvidia* libnvidia-* !dpkg -l | grep cuda- | awk '{print $2}' | xargs -n1 dpkg --purge !apt-get remove cuda-* !apt autoremove !apt-get update
  • 6
    CUDAバージョン9をインストールする。
      !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-9.2
  • 7
    以下のコードでバージョンを確認する:
        nvcc --version
    • 次のように表示されるはずです:
        nvcc: NVIDIA (R) Cuda コンパイラ・ドライバ Copyright (c) 2005-2018 NVIDIA Corporation Built on Wed_Apr_11_23:16:29_CDT_2018 Cuda コンパイル・ツール、リリース 9.2、V9.2.88
  • 8
    Notebookセルからnvccを実行するための小さな拡張機能をインストールするには、次のコマンドを実行します。
      pip install git+git://github.com/andreinechaev/nvcc4jupyter.git
  • 9
    以下のコードを使って拡張機能をロードする:
      load_ext nvcc_plugin
  • 10
    以下のコードを実行して、CUDAが動作しているかどうかを確認します。ノートブックで CUDA C/C++ コードを実行するには、コードの先頭に %%cu 拡張を追加します。
      %%cu #include #include __global__ void add(int *a, int *b, int *c) { *c = *a + *b; } int main() { int a, b, c; // 変数 a, b & c のホスト・コピー int *d_a, *d_b, *d_c; // 変数 a, b & c のデバイス・コピー int size = sizeof(int *d_a, *d_b, *d_c; // 変数 a, b & c のデバイス・コピー int size = sizeof(int *d_a, *d_b, *d_c)int size = sizeof(int); // a、b、cのデバイスコピーに領域を割り当てる cudaMalloc((void **)&d_a, size); cudaMalloc((void **)&d_b, size); cudaMalloc((void **)&d_c, size); // 入力値の設定 c = 0; a = 3; b = 5; // 入力をデバイスにコピー cudaMemcpy(d_a, &a, size, cudaMemcpyHostToDevice); cudaMemcpy(d_b, &b, size, cudaMemcpyHostToDevice); // GPUでadd()カーネルを起動 add<<1,1>>(d_a, d_b, d_c); // 結果をホストにコピーバック cudaError err = cudaMemcpy(&c, d_c, size, cudaMemcpyDeviceToHost); if(err!=cudaSuccess) { printf("CUDA error copying to Host: %sn", cudaGetErrorString(err)); } printf("result is %dn",c); // クリーンアップ cudaFree(d_a); cudaFree(d_b); cudaFree(d_c); return 0; }.
    • すべてがうまくいった場合、このコードは「result is 8n」と出力するはずです。
  • この記事は、CC BY-NC-SAの下で公開されている " How to Run CUDA C or C++ on Jupyter (Google Colab) " を改変して作成した。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

    シェアボタン: このページをSNSに投稿するのに便利です。

    コメント

    返信元返信をやめる

    ※ 悪質なユーザーの書き込みは制限します。

    最新を表示する

    NG表示方式

    NGID一覧