<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wikippe.e-do-match.com/index.php?action=history&amp;feed=atom&amp;title=SIMD</id>
	<title>SIMD - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wikippe.e-do-match.com/index.php?action=history&amp;feed=atom&amp;title=SIMD"/>
	<link rel="alternate" type="text/html" href="https://wikippe.e-do-match.com/index.php?title=SIMD&amp;action=history"/>
	<updated>2026-11-07T06:34:09Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wikippe.e-do-match.com/index.php?title=SIMD&amp;diff=157345&amp;oldid=prev</id>
		<title>118.104.74.46: /* 解説 */</title>
		<link rel="alternate" type="text/html" href="https://wikippe.e-do-match.com/index.php?title=SIMD&amp;diff=157345&amp;oldid=prev"/>
		<updated>2013-09-01T17:19:11Z</updated>

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