CUDA Academy · レッスン

動的並列処理が効果を発揮する場面

不規則で適応的なワークロード

レッスン 2/413 ステップ

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

常に適したツールとは限らない

動的並列性は強力ですが、無料ではありません。使い方だけでなく、いつ使うべきかを知ることも重要です。

不規則なワークロード

カーネルが実行されるまで領域ごとの作業量がわからない不規則なワークロードで、特に効果を発揮します。

適応的な細分化

適応的メッシュ細分化を考えてみましょう。詳細が必要な領域で、データの要求に応じてより多くのスレッドを起動できます。

if (needsDetail(cell)) refine<<<1, 64>>>(cell);

木構造とグラフの走査

階層構造を持つ問題にも適しています。子を多数持つノードは、サブツリーを並列処理するカーネルを起動できます。

ホストへの往復を避ける

各フェーズのサイズが直前の結果に依存する場合、フェーズ間でコストの高いホストへの往復を省略できることが利点です。

起動には毎回オーバーヘッドがある

ただし、ネストした起動には必ず実際のオーバーヘッドが発生します。小さな子カーネルを大量に起動すると、節約できる時間よりコストの方が大きくなる場合があります。

大きな起動を優先する

起動するなら、効果を最大化しましょう。同じ総量の処理を行う場合、何百回もの小さな起動より、1回の大きな起動の方が優れています。

process<<<256, 256>>>(big);  // not 256 tiny launches

深さに注意する

深いネストはオーバーヘッドを増大させ、起動深度の上限に達する可能性があります。可能な限りツリーを浅く保ってください。

グリッドストライドループという選択肢

多くの場合、グリッドストライドループを使うフラットなカーネルのほうが、ネストした起動よりも低コストで可変サイズに対応できます。

for (int i = id; i < n; i += stride) work(i);

推測せず測定する

必ず両方のバージョンをプロファイルしてください。動的並列性は、工夫した単一起動の設計に負けることがあります。

簡単な目安

処理がデータ依存で、各子タスクの処理量が大きい場合に使用してください。それ以外の場合は、カーネルをフラット化します。

クイックチェック

動的並列性は、どのような場合に効果を発揮しやすいでしょうか。

まとめ:使用するタイミング

処理が不規則でデータ依存しており、子タスクの処理量が大きい場合は、動的並列性を検討してください。起動オーバーヘッドに注意し、ネストを浅く保ち、プロファイルを実行しましょう。🎯

無料で開始

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. ワークをグラフにキャプチャする
  4. グラフの再生でオーバーヘッドを削減
← CUDA Academyに戻る