CUDA Academy · レッスン

三重山括弧による起動

>>でカーネルを呼び出します。

レッスン 2/413 ステップ

「三重山括弧による起動」はCoddyKit上の無料CUDA Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCUDA Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CUDA Academyコースには全4レッスンが含まれています。

起動は通常の呼び出しと異なる

カーネルは通常の関数のようには呼び出しません。GPUに同時に起動するスレッド数を指定して起動します。🚀

<<< >>>構文

起動にはCUDA独自の三重山括弧を使います。その内部で、通常の引数リストの前に起動構成を指定します。

myKernel<<<blocks, threads>>>(args);

1つ目の数:ブロック数

1つ目の値で起動するブロック数を指定します。ブロックは一緒に実行され、高速なチップ上メモリを共有するスレッドのグループです。

myKernel<<<4, threads>>>(args); // 4 blocks

2つ目の数:ブロックあたりのスレッド数

2つ目の値でブロックあたりのスレッド数を指定します。起動される総スレッド数は、ブロック数とブロックあたりのスレッド数の積です。

myKernel<<<4, 256>>>(args); // 1024 threads

その後に引数を指定する

括弧の後には、通常のC++の呼び出しと同じように、カーネルの引数を丸括弧内に渡します。

doubleIt<<<1, 256>>>(devicePtr);

起動は非同期

起動は非同期です。CPUは処理をキューに入れるとすぐに次へ進み、GPUはバックグラウンドでカーネルを実行します。

構成には変数も使える

起動時の数値はリテラルである必要はありません。実行時にデータサイズからブロック数を計算することがよくあります。

int blocks = (n + 255) / 256;
add<<<blocks, 256>>>(c, a, b, n);

2Dにはdim3を使う

2Dまたは3Dのグリッドやブロックには、dim3型の値を使います。x、y、zのサイズをまとめて起動時に指定できます。

dim3 threads(16, 16);
blur<<<grid, threads>>>(img);

ブロックあたりのスレッド数を選ぶ

ブロックあたりのスレッド数には、128または256が無難な既定値です。値は32の倍数で、1024以下でなければなりません。

kernel<<<blocks, 128>>>(data);

不適切な構成は失敗する

ブロックあたりのスレッド数が多すぎると、起動は何も知らせずに失敗します。起動直後にエラーを確認する必要があります。

kernel<<<1, 2048>>>(p); // too big, fails

左から右へ読む

起動は、「このカーネルを、これだけのスレッドからなるこれだけのブロックで、これらの引数を使って実行する」と読みます。一度理解すれば簡単です。

vectorAdd<<<grid, block>>>(c, a, b, n);

クイックチェック

起動構成を確認しましょう。

まとめ:起動

kernel<<>>(args)で起動します。ブロック数とスレッド数の積が総スレッド数で、起動は非同期に実行されます。もうプロのように起動できますね!🎉

無料で開始

AI チューターと学ぶ C++ — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「三重山括弧による起動」レッスンは無料ですか?

はい。「三重山括弧による起動」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CUDA Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CUDA Academyコースには全4レッスンが含まれています。

「三重山括弧による起動」で何を学びますか?

>>でカーネルを呼び出します。 ブラウザで直接実行するハンズオンコードでCUDA Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CUDA Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCUDA Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「三重山括弧による起動」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCUDA Academyレッスンでコードを書いて実行できますか?

はい。すべてのCUDA Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. カーネルの構造
  2. 三重山括弧による起動
  3. カーネル内のprintf
  4. cudaDeviceSynchronizeの仕組み
← CUDA Academyに戻る