Single Instruction, Multiple Threadsとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Single Instruction, Multiple Threadsの意味・解説 

Single Instruction, Multiple Threads

(SIMT から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/25 18:23 UTC 版)

単一命令・複数スレッド: single instruction, multiple threadsSIMT)は、並列計算で用いられる実行モデルであり、単一命令・複数データ(SIMD)とマルチスレッドを組み合わせたものである。すべての「スレッド」においてすべての命令がロックステップ方式によって同期して実行される点で、単一プログラム・複数データ(SPMD)とは異なる。SIMT実行モデルは、多くのGPUに実装されており、GPU上での汎用計算(GPGPU)において特に重要である。例えば、いくつかのスーパーコンピュータではCPUとGPUを組み合わせて使用している。

プロセッサの数をpとすると、実際にはp以上の多くのタスクを実行しているように見える。これは各プロセッサが複数の「スレッド」(「ワークアイテム」や「SIMDレーン操作のシーケンス」)を持つことによって達成されているが、このスレッド群は同期してタスクを実行し、SIMDレーンに類似している[1]

SIMTを最も簡単に理解する方法は、各コアが個別のレジスタファイル、個別のALU(SIMDおよびスカラー両方)、および個別のデータキャッシュを持つような、マルチコアシステムを想像することである。ただし、標準的なマルチコアシステムが複数の独立した命令キャッシュとデコーダ、そして複数の独立したプログラムカウンタレジスタを持つのと違って、単一の命令キャッシュと単一の命令デコーダを持ち、単一のプログラムカウンタを用いて命令を読み取る単一の演算装置から、命令が全SIMTコアに対して同期的にブロードキャストされる。

SIMTとSIMDレーンの主要な違いは、各SIMTコアが完全に異なるスタックポインタを持ち得る(それによって全く異なるデータセット上で計算を行うことができる)点であり、一方SIMDレーンは単にメモリに関する知識を持たないALUの一部である。

歴史

SIMTはNVIDIAのG80チップに採用されたTeslaマイクロアーキテクチャにおいて導入された[2][3][4]2006年11月8日にG80を搭載したGeForce 8800シリーズおよびCUDAが発表された[5][6][7][8]ATI Technologies(現在のAMD)は競合製品として、やや遅れて2007年5月14日にTeraScale 1ベースの「R600」GPUチップをリリースした。

解説

すべての一般的なRAM(例えば、DDR SDRAM、GDDR SDRAM、XDR DRAMなど)のアクセス時間が依然として比較的大きいため、技術者たちはメモリアクセスのたびに必ず発生してしまうレイテンシを隠蔽するというアイデアを考案した。厳密に言えば、レイテンシ隠蔽はモダンなGPUによって実装されたゼロオーバーヘッドスケジューリングの機能である。これはSIMT自体の特性とみなすことができるかもしれないし、そうでないかもしれない。

SIMTは命令フェッチのオーバーヘッド、すなわちメモリアクセスに伴うレイテンシを制限することを目的としており[9]、モダンなGPU(NVIDIAやAMDのものなど)では、メモリアクセス操作におけるかなりのレイテンシがあるにもかかわらず高性能な実行を可能にするために、レイテンシ隠蔽と組み合わせて使用されている。このメモリアクセス操作は、プロセッサが計算タスクで過負荷状態になっていて、メモリの読み書き完了を待たなければならない状況で素早くタスクを切り替えることができるポイントである。この戦略はCPUのマルチスレッディングマルチコアと混同しないように)に類似している[10]。SIMDと同様に、もう一つの大きな利点は、多くのデータレーンによる制御ロジックの共有であり、これにより計算密度が増加する。一つの制御ロジックのブロックがN個のデータレーンを管理できるため、制御ロジックをN回複製する必要がない。

SIMT実行の欠点は、スレッド固有の制御フローが「マスキング」を用いて行われることであり、プロセッサのスレッドが異なる制御フローパスをたどるときに効率が悪くなることである。例えば、プロセッサの様々なスレッドが異なるパスを実行するようなIF-ELSEブロックを処理するためには、実際にはすべてのスレッドが両方のパスを処理しなければならないが(プロセッサのすべてのスレッドは常に同期して実行されるため)、様々なスレッドを必要に応じて無効化および有効化するためにマスキングが使用される。制御フローがプロセッサのスレッドにとって一貫している場合、すなわちすべてが同じ実行パスをたどる場合、マスキングは避けられる。このマスキング戦略がSIMTを普通のSIMDと区別するものであり、プロセッサ内のスレッド間の同期が低コストになるという利点がある[11]

SIMT 用語
NVIDIA CUDA OpenCL Hennessy & Patterson[12]
スレッド ワークアイテム SIMDレーン操作のシーケンス
Warp サブグループ SIMD命令のスレッド
ブロック ワークグループ ベクトル化ループの本体
グリッド NDRange ベクトル化ループ

NVIDIA GPUは32個のハードウェアスレッドを同期して並列実行する「Warp」と呼ばれるスレッドグループの概念を持っている[13]。AMD GPUでこれに相当するものは「Wavefront」と呼ばれており、64個のハードウェアスレッドからなる。OpenCLでは「サブグループ」と呼ばれ、CUDAのWarpシャッフル命令(スレッドグループ内での高速な並列データ交換を可能にする命令[14])に相当する機能サポートは拡張cl_khr_subgroupsとして標準化されている。

脚注

出典

  1. ^ Michael McCool; James Reinders; Arch Robison (2013). Structured Parallel Programming: Patterns for Efficient Computation. Elsevier. p. 52 
  2. ^ NVIDIA Fermi Compute Architecture Whitepaper”. www.nvidia.com. NVIDIA Corporation (2009年). 2014年7月17日閲覧。
  3. ^ Lindholm, Erik; Nickolls, John; Oberman, Stuart; Montrym, John (2008). “NVIDIA Tesla: A Unified Graphics and Computing Architecture”. IEEE Micro 28 (2): 6 (要購読契約). doi:10.1109/MM.2008.31. 
  4. ^ コンピュータアーキテクチャの話(314) Teslaアーキテクチャが採用した「SIMT方式」 | TECH+(テックプラス)
  5. ^ NVIDIA Unveils CUDA™-The GPU Computing Revolution Begins | Press Release | NVIDIA, Internet Archive
  6. ^ これがGPUのターニングポイント NVIDIAの次世代GPU「GeForce 8800」 - 後藤弘茂のWeekly海外ニュース”. pc.watch.impress.co.jp. 2025年1月25日閲覧。
  7. ^ G80とG7xの最大の違いはマルチスレッディング - 後藤弘茂のWeekly海外ニュース”. pc.watch.impress.co.jp. 2025年1月25日閲覧。
  8. ^ シェーダプログラムの進化と連動するGPUのマルチスレッディング化 - 後藤弘茂のWeekly海外ニュース”. pc.watch.impress.co.jp. 2025年1月25日閲覧。
  9. ^ Rul, Sean; Vandierendonck, Hans; D’Haene, Joris; De Bosschere, Koen (2010). An experimental study on performance portability of OpenCL kernels. Symp. Application Accelerators in High Performance Computing (SAAHPC). hdl:1854/LU-1016024
  10. ^ Advanced Topics in CUDA”. cc.gatech.edu (2011年). 2014年8月28日閲覧。
  11. ^ Michael McCool; James Reinders; Arch Robison (2013). Structured Parallel Programming: Patterns for Efficient Computation. Elsevier. pp. 209 ff 
  12. ^ John L. Hennessy; David A. Patterson (1990). Computer Architecture: A Quantitative Approach (6 ed.). Morgan Kaufmann. pp. 314 ff. ISBN 9781558600690. https://archive.org/details/computerarchitec00patt_045 
  13. ^ 【後藤弘茂のWeekly海外ニュース】基本アーキテクチャの柔軟さが産んだGeForce GTX 460 - PC Watch
  14. ^ Faster Parallel Reductions on Kepler | NVIDIA Technical Blog

関連項目




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  Single Instruction, Multiple Threadsのページへのリンク

辞書ショートカット

すべての辞書の索引

「Single Instruction, Multiple Threads」の関連用語

1
SIMT 百科事典
8% |||||


Single Instruction, Multiple Threadsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Single Instruction, Multiple Threadsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのSingle Instruction, Multiple Threads (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS