SIMT

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

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

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

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

  1. ^ Michael McCool; James Reinders; Arch Robison (2013). Structured Parallel Programming: Patterns for Efficient Computation. Elsevier. p. 52 

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne