0Pricing
CUDA Academy · レッスン

threadIdx、blockIdx、blockDim

スレッドの位置を特定する組み込み変数を学びます。

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

自分の位置はどこですか?

すべてのスレッドが同じコードを実行するため、それぞれが「自分のデータはどれか」を確認する必要があります。CUDAは組み込みの変数を使ってこれに答えます。📍

threadIdxの紹介

カーネル内では、threadIdxが各スレッドに、そのスレッド自身のブロック内での位置を知らせます。ブロック内の最初のスレッドでは、threadIdx.xは0です。

int t = threadIdx.x;

blockIdxの紹介

blockIdx変数は、グリッド内でそのスレッドが属しているブロックを知らせます。ブロック番号も0から始まります。

int b = blockIdx.x;

blockDimの紹介

blockDimも利用できます。これはブロックあたりのスレッド数です。256個のスレッドを起動した場合、すべてのスレッドでblockDim.xは256になります。

int width = blockDim.x;

自動的に設定されます

これらの変数を自分で設定する必要はありません。カーネルが起動すると、CUDAが各スレッドに対して自動的に値を設定します。

.x、.y、.zフィールド

これらには、1D、2D、3Dの起動に対応するx、y、zフィールドがあります。単純な配列では、通常xフィールドだけを使います。

組み合わせて使う

threadIdxだけでは、各ブロックで同じ値が繰り返されます。一意な位置を得るには、blockIdxとblockDimをthreadIdxと組み合わせる必要があります。

簡単な例

blockDimが4の場合、ブロック0のスレッド2は要素2ですが、ブロック1のスレッド2は要素6です。ブロックによって開始位置がずれます。

読み取り専用の補助情報

これらの組み込み情報は、カーネル内では読み取り専用です。スレッドが正確にどこに位置しているかを示す、信頼できる座標として扱ってください。

gridDimもあります

もう1つ便利なものがあります。gridDimには、グリッド内のブロック総数が格納されます。スレッド数を超えるデータをループ処理するときに役立ちます。

int blocks = gridDim.x;

重要な理由

この3つの変数は、グローバルインデックスを計算するための基本要素です。グローバルインデックスによって、各スレッドが自分の要素を担当できます。

簡単な確認

示された役割を果たす変数を選んでください。

復習:スレッドの位置を特定する

組み込み変数を学びました。threadIdxはブロック内の位置、blockIdxはブロック、blockDimはブロックサイズを表します。これらを組み合わせると、スレッドを正確に特定できます。✅

よくある質問

「threadIdx、blockIdx、blockDim」レッスンは無料ですか?

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

「threadIdx、blockIdx、blockDim」で何を学びますか?

スレッドの位置を特定する組み込み変数を学びます。 ブラウザで直接実行するハンズオンコードでCUDA Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「threadIdx、blockIdx、blockDim」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. スレッド階層
  2. threadIdx、blockIdx、blockDim
  3. ブロックが存在する理由
  4. ブロックあたりのスレッド数を選ぶ
← CUDA Academyに戻る