CPUアーキテクチャについて語れ Part.13at JISAKU
CPUアーキテクチャについて語れ Part.13 - 暇つぶし2ch145:,,・´∀`・,,)っ-○◎●
08/10/05 23:45:58 jHPZNbsT
>>141
それはどうも。

ただ、MACヲタの間違いは俺は認めていない。
APIとして提供されるFiberは関数を順番に呼び出すだけの昔ながらのスケジューラ以外のなんでもない。
Larrabeeがやるのは、JITコンパイル時のソフトウェア・パイプライニング。

Larrabeeの場合1つのスレッドで最大の64 Strandを扱うわけではない
64 strandを扱う場合は同じコアで動く4つのスレッドでレイテンシを埋める。
均等に振れば、たとえばレイテンシ:スループット8:1のSIMD命令ならどのスレッドも8:4となり、
もうひとつくらいのファイバーとインターリーブするだけでレイテンシが埋められる。

図を描くか。

→クロックサイクル
スレッド1 ■■■■■■■■ファイバー1[0-15]
スレッド2   ■■■■■■■■ファイバー1[16-31]
スレッド3    ■■■■■■■■ファイバー1[32-47]
スレッド4      ■■■■■■■■ファイバー1[48-63]
スレッド1       ■■■■■■■■ファイバー2[0-15]
スレッド2         ■■■■■■■■ファイバー2[16-31]
スレッド3          ■■■■■■■■ファイバー2[32-47]
スレッド4            ■■■■■■■■ファイバ-2[48-63]
                   ・・・・・・・・・・・・

これを各スレッドからみると単に2つのフローを交互に実行するだけに見える。
各スレッドが使うレジスタ数も均等に消費するので経済的。
で、FiberあたりのStrand数が少ないと、命令のレイテンシに応じて、
インターリーブするファイバーのほうを増やさないといけない。
x64アーキテクチャは各レジスタが4ビット、つまり16本しかないないのでできるだけ節約したい。
64 Strandがベストということになるね。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch