コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
SSE
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2020年5月27日 (水) 03:22時点における
Administrator
(
トーク
|
投稿記録
)
による版
(
→プログラミング
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''ストリーミングSIMD拡張命令'''(英語:Streaming SIMD Extensions、通称:SSE)とは、[[インテル]]が開発した[[CPU]]の[[SIMD拡張命令セット]]、およびその拡張版の総称である。 == 概要 == [[Pentium II]]と激闘を繰り広げた[[AMD]]の[[K6-2]]に実装された[[3DNow!]]に対抗すべく[[Pentium III]]に実装された[[SIMD]]命令群である。 大雑把にいえばSSEは[[MMX]]を拡張したものであり、MMXでは[[整数演算]]だけだったものが、SSEでは[[浮動小数点演算]]にも対応した。あとSSEでは新たに8本の128ビット[[レジスタ]]も追加されている。 == プログラミング == [[MMX,]][[3DNow!]],SSEまでの世代はまともな[[コンパイラ]]がなく[[アセンブラ]]を用いて[[プログラム]]を組んでいた。[[C言語]]や[[C++]]で大枠を書いて、[[インラインアセンブラ]]で部分的に高速化を試みるという書き方が主流であった。 後に機能強化された[[SSE2]]や[[SSE3]]、[[SSSE3]](Supplemental/補足的なSSE3)、[[SSE4]]などが登場している。この世代になると[[C言語]]などの[[コンパイラ]]も優秀になり[[アセンブラ]]で書くことはほとんどなくなった。 == 実情 == [[Windows]]で[[Visual C++]]が主流だった時代の[[ソフトウェア]]は99.9999%が「SSE非対応」どころか「[[i386]]」をターゲットに[[コンパイル]]されていた。SSEどころか[[i486]]や[[Pentium]]の機能も使われていない。これはほとんどの[[ソフトウェア]]は「[[最低動作環境]]」となる[[PC]]のスペックを下げることで「多くの人に使ってもらおう」という[[最小公倍数]]的な考え方であったためである。 [[MMX]]が登場した当初はその話題性から「MMX対応版」「MMX非対応版」といった二種類の実行ファイルを用意した[[ゲーム]]などもあったが、[[3DNow!]]やSSEの時代になると話題性も薄れベンチマークソフトくらいしか対応ソフトがなくなった。 また、ベンチマークソフトみたいに何秒間も負荷100%で砂時計カーソルを表示するような処理でもない限り大して速くはならないという事実が[[プログラマー]]たちに知れ渡り「開発コストに見合わない」という認識が広まったことで対応ソフトはどんどん減っていた。 === JITコンパイル === SSEがまともに使われだしたのは[[Java]]などの[[JITコンパイラ]]の技術が発達し「SSEの有無」を実行環境で判別してコンパイルするようになってからである。 ただ[[Java]]でSSEを使うような[[プログラム]]を書くかと言われると、まず書かない。やっぱりベンチマークソフトくらいしか使っていない。 === オープンソース界隈 === [[ソースコード]]を落としてきて実行環境でコンパイルするスタイルの[[オープンソース]]界隈ではなんぼか使われていた。一昔前は「[[apache]]や[[mysql]]の性能を向上させる方法!」などとして[[ググる]]とよく出てきていた。 ただ[[オープンソース]]界隈も[[CentOS]]や[[Ubuntu]]が主流になり、「[[configure; make; make install]]」が廃れ、パッケージからソフトウェアを入れるのが主流になったことでやっぱりベンチマークソフトくらいしか使われていない。 == ベンチマーク == === 2019年時点 === SIMD関連のベンチマークでは、 [[インテル]]の[[Core i]]シリーズでは非常に高性能な結果が得られる。 一方、[[AMD]]の[[Ryzen]]では微妙な結果になる。 [[Ryzen]]はSIMDではなく[[GPGPU]]を使う前提で、SIMD周りをバッサリ切り捨て、その余力を通常の演算性能を上げることに使っているためである。 どちらも[[プログラム]]の書き方が全く異なるため一概に「どちらが速い」とは言いにくい。プログラムがSSEに対応しているならIntel、GPGPUに対応しているならAMDの方が高速ということになる。ちなみに[[SSE]]と[[GPGPU]]に両対応している場合は一般的に[[GPU]]の方が速い。 == 歴史 == *1999年 2月: インテルがSSE搭載の[[Pentium III]]プロセッサを発表。 **2000年 3月: インテルがSSE搭載の[[Celeron]]プロセッサを発表。 *2000年 11月: インテルが[[SSE2]]搭載の[[Pentium 4]]プロセッサを発表。 **2002年 5月: インテルが[[SSE2]]搭載のCeleronプロセッサを発表。 **2003年 3月: インテルが[[SSE2]]搭載の[[Pentium M]]プロセッサを発表。 **2004年 1月: インテルが[[SSE2]]搭載の[[Celeron M]]プロセッサを発表。 *2004年 2月: インテルが[[SSE3]]搭載の[[Pentium 4]]プロセッサを発表。 **2004年 6月: インテルが[[SSE3]]搭載の[[Celeron D]]プロセッサを発表。 **2006年 1月: インテルが[[SSE3]]搭載の[[Intel Core]] プロセッサを発表。 *2006年 6月: インテルが[[SSSE3]]搭載の[[Xeon 5100]]プロセッサを発表。 **2006年 7月: インテルが[[SSSE3]]搭載の[[Intel Core 2]]プロセッサを発表。 *2007年 8月: AMDが[[SSE5]]を発表。 *2007年 11月: インテルが[[SSE4.1]]搭載の[[Intel Core 2]]プロセッサを発表。 *2007年 11月: AMDがSSEa搭載の[[Phenom]]を発表。 *2008年 11月: インテルが[[SSE4.2]]搭載の第一世代[[Intel Core i]]プロセッサを発表。 *2011年 1月: インテルが[[AVX]]搭載の第二世代[[Intel Core i]]プロセッサを発表。 *2011年 10月: AMDが[[FM|FMA]]搭載の[[AMD FX]]プロセッサを発表。 *2013年 6月: インテルが[[AVX2]]搭載の第四世代[[Intel Core i]]プロセッサを発表。 *2016年 6月: インテルが[[AVX-512]]搭載の[[Intel Xeon Phi]]コプロセッサを発表。 == 関連項目 == * [[MMX]] * [[3DNow!]] * [[AltiVec]] ([[Velocity Engine]]) * [[ベクトルプロセッサー]] * [[Intel Image Processing Library]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化