私は、並列計算のための古典的な研究であるコアの数で実行時間スケールに240コアを持つ私のQuadro FX 5800を使ってスケーラビリティ解析をしようとしています。 コアの定義がこれにどのように適合しているのでしょうか? どうすれば別のコア設定(8,16,32,64,128,240コア)で実行することができますか? 私のテストケースは、単純な行列乗算です。GPUのスケーラビリティ解析
答えて
GPUのスケーラビリティは、CUDAコアで測定するのではなく、SM使用率で測定してください。 IPCはおそらく、SM利用の最良の単一尺度です。アルゴリズムを開発する際には、すべてのサイクルに十分な作業を分散させることができるように作業を分割したいので、ワープスケジューラには少なくとも1つのワープが発行され、命令されます。一般に、これは、命令およびメモリのレイテンシを隠し、実行パイプラインを満たすためにさまざまな命令タイプを提供するために、各SMに十分なワープを持たなければならないことを意味します。
CUDAコア(無意味)でスケーリングをテストする場合は、1ブロックあたり1,2,3、... 32のスレッドを含むスレッドブロックを起動できます。スレッドブロックごとにWARP_SIZE(= 32)スレッドを複数回起動すると、コアのサブセットのみが使用されます。これらは基本的に無駄な実行スロットです。
SMでスケーリングをテストする場合は、1つのスレッドブロックから1000sのスレッドブロックまでアルゴリズムをスケーリングできます。スケーリングを理解するために、起動時にスレッドごとに共有メモリを設定することにより、SMごとのスレッドブロックを人為的に制限することができます。
これらの方向のそれぞれを最適に拡大するために、行列の乗算を書き直すのは難しいでしょう。このプロジェクトを開始する前に、0-100000からの合計や複数のスレッドブロックにわたる階乗尺度の計算など、単純な並列計算をどのように分散するかを理解することをお勧めします。これらのアルゴリズムはほんの数行であり、起動設定(GridDim、BlockDim、SharedMemoryPerBlock)とカーネル1-2のパラメータを変更することで前述のスケーリングを試みることができます。CUDAプロファイラ、Visual Profiler、Parallel Nsight 、またはCUevents。
プログラミングモデルとしてCUDAまたはOpenCLを使用していると仮定します。利用率をM
マルチプロセッサ(SM)の数に制限する簡単な方法の1つは、実行コンフィギュレーションをM
ブロック(スレッド)で起動することです。各SMがNコアで構成されている場合、このようにしてN、2N、4N、...コアのスケーラビリティをテストできます。
たとえば、GPUに4つのSMがある場合、各SMには32のコアがあります。 1、2、4ブロックのカーネルを実行することにより、カーネルは32,64、および128コアのGPUを利用します。
- 1. LiveQuery + Redisスケーラビリティの解析
- 2. GPUアクセラレーションによるXML解析
- 3. スケーラビリティ解析のための資料を読んでいますか?
- 4. GPUシリアライゼーション分解
- 5. GPUのスパースコレスキー分解アルゴリズム
- 6. websocketスケーラビリティ
- 7. Firebaseスケーラビリティ
- 8. リアクティブプログラミングのスケーラビリティ
- 9. ServiceNowインスタンスのスケーラビリティ
- 10. aho corasickのスケーラビリティ
- 11. MSMQのスケーラビリティ
- 12. System.Threading.Timerのスケーラビリティは?
- 13. Djangoテナントスキーマのスケーラビリティ
- 14. 解析:: RecDescentの解析サブ名
- 15. エイリアス解析vs.ポインタ解析とポイントツー解析
- 16. Graphqlとリレーのスケーラビリティ
- 17. Firebaseのスケーラビリティ制限
- 18. 単一のスケーラビリティDjango
- 19. XMLを解析して、XMLを解析する際のXMLの解析
- 20. ブロックチェインとスケーラビリティ
- 21. Openfire MultiUserチャット - スケーラビリティ
- 22. tomcatスケーラビリティejb
- 23. C#の解析の理解
- 24. SaaSスケーラビリティ - Tomcatのスケーラビリティは十分ですか?
- 25. 解析/解析とは何ですか?
- 26. ログ解析ツール(フィルタリング/グループ化/マルチスレッド解析)
- 27. 解析のJSON
- 28. ソープメッセージの解析
- 29. アクセスログの解析
- 30. アンドロイドスクリーンダンプファイルの解析
ブロック数がコアに対応していますか? 私はそれが正しいとは思わない – Mohammed
@ashwin:それは間違っています。問題のカードでは、Mブロックは1 M <= 30の場合は8Mコアで、M> 30の場合は240コアで実行されます。 – talonmies
Talonmies:(A)1つのブロックがSMに制限されている(SMに分割できない)(B)4つのブロックと4つのSMがある場合、グローバルスケジューラはSMごとに1つのブロックを配置しますか? –