コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
SIMDのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
SIMD
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
[[ファイル:SIMD.svg|thumb|SIMDの概念図<br>PU = 処理単位]] '''single instruction multiple data'''('''SIMD'''<ref>[[英語]]では「シムディー」のように読まれる。日本では「シムド」と呼ぶことがある。</ref>)とは[[フリンの分類]]のひとつで、命令列は1つだが、それを複数のデータ列に適用する、[[コンピュータ]]の[[並列計算|並列化]]の形態を指す。この手法にもとづく演算をパック演算(パックド演算)やベクトル演算という。 ==解説== 例えば[[FORTRAN#Fortran 90|Fortran]]におけるdoループのような、同一の演算を繰り返すような操作を[[スカラー計算機]]のように逐次的に行うのではなく、一度に行うものである。 例えば、通常32ビットのデータを受け付ける[[CPU|プロセッサ]]なら128ビットのデータを4回の[[クロック]]で計算するが、128ビットのデータを受け付けるプロセッサは、1回のクロックで処理が済む。ただ多くの場合、128ビットを使い切るデータはあまりなく、一般に128ビットを2分割し64ビットとして使うか、4分割して32ビットとして使うが、結局それぞれ1回のクロックで2倍、4倍の[[データ処理]]が可能になり、結果として相対的に低いクロックでも高い性能を引き出しやすい。 例えば音声データの音量を倍にしたいとする。[[デジタル]]データではある瞬間の音量が数値とされて記録されているので、全ての値を倍にすればよい。このように大量のデータに同じ処理を施すときに性能を発揮するため、一般には[[マルチメディア]]の処理に向いているとされる。 SIMD型で、複数の[[演算装置]]を並列に使用する計算を初期に試みたコンピュータとしては、[[ILLIAC IV]]がある。これに対し、[[Cray-1]]のような典型的な[[ベクトル計算機|ベクトル型]][[スーパーコンピュータ]]では並列に計算するのではなく、[[パイプライン処理]]により1個の演算装置を休ませることなく計算させ続ける(ベクトル演算という用語は、広義には1命令で複数の要素を計算させるものについて、同時(並列)に計算するものも、パイプラインで計算するものも指すが、ベクトル計算機と言った場合は主として、20世紀のスーパーコンピュータに多く採用されていたパイプライン型を指すことが多い)。 他の技術と同じく[[1990年代]]後半から[[パーソナルコンピュータ]]、[[ゲーム機]]等にも応用された。 全ての処理をこれで行えないこともないが、例えば画像にぼかし処理を100回かける等の場合、単純に0から99まで数え上げる手法を用いることがある。このような場合では、単純に変数を1つ用意して0に1を99になるまで足し続けるが、これがはみ出さないように格納するためには1バイト(8ビット:0~255の数値を表現可能)で十分なので、128ビットの処理幅を持つプロセッサでは無駄が大量に発生するため、通常はSIMDユニットは使わず、通常の[[演算装置#ALU|ALU]]を使うことが多い(こういったプロセッサに合わせた最適化は[[コンパイラ]]が行ってくれることも多い)。 ==例== ===マイクロプロセッサ=== ====命令拡張==== * [[x86]] の [[MMX]]・[[3DNow!]]・[[Streaming SIMD Extensions|SSE]](AVX) * [[PowerPC]] の [[AltiVec]](VMX) * [[ARMアーキテクチャ|ARM]] の NEONなど([[ARMアーキテクチャ#SIMD]]) * [[SPARC]] の VIS([[w:Visual Instruction Set]]) * [[MIPSアーキテクチャ|MIPS]] の MIPS-3D([[w:MIPS-3D]])・MDMX([[w:MDMX]]) * [[PA-RISC]] の MAX([[w:Multimedia Acceleration eXtensions]]) * [[Emotion Engine]] のCPUコアもSIMD拡張命令を持っている * など ====演算装置==== 演算装置自体がSIMD型のもの * [[Cell Broadband Engine#Synergistic Processor Element]] ===GPU=== [[Graphics Processing Unit|GPU]]はSIMD型がほとんどである。 *[[GeForce]]系列 *[[RADEON]]系列 ===物理演算プロセッサ=== 3Dゲームに必要な物理演算を高速化する為、SIMDを利用。 *[[PhysX]](用のチップ) ===汎用アクセラレータ=== [[PCI Express]]接続の汎用SIMDアクセラレータ。[[倍精度]]の[[行列]]演算を高速に行う目的で、[[ワークステーション]]、[[HPC]]などに搭載される。 *CSX600 - クリアスピード社によるメニーコアSIMD演算ユニット ==脚注== <references/> ==関連項目== *[[マルチプロセッシング]] *[[ベクトル計算機]] *[[フリンの分類]] {{Computer-stub}} {{CPU technologies}} {{並列コンピューティング}} [[Category:CPU]] [[Category:並列コンピューティング]]
このページで使用されているテンプレート:
テンプレート:CPU technologies
(
ソースを閲覧
)
テンプレート:Computer-stub
(
ソースを閲覧
)
テンプレート:並列コンピューティング
(
ソースを閲覧
)
SIMD
に戻る。
検索
検索
SIMDのソースを表示
話題を追加