1990年代のSIMD:Intel Pentium MMXプログラミング入門
SIMD in the 90s: Programming Intel's Pentium MMX
1997年に登場したIntel Pentium MMXは、x86 PCにSIMD(Single Instruction, Multiple Data)命令をもたらした最初の製品です。本記事では、MMXの歴史的背景、レジスタ構造、パックド整数演算、飽和演算、比較・シフト・乗算命令、そしてEMMS命令の重要性を解説します。さらに、画像処理やゲームでの実践的な使用例を通じて、MMXがどのようにしてマルチメディア処理を高速化したかを紹介します。SIMDの起源はILLIAC IVやCray-1などのベクトルプロセッサに遡りますが、MMXはその技術を一般のPCユーザーに開放した点で画期的でした。
MMXはSIMDを発明したわけではありませんが、SIMDが専門的なハイパフォーマンスコンピューティングから一般のデスクトップソフトウェア開発へと移行した瞬間の一つでした。
HNでの議論
66- Const-me
SSE1とSSE2はAMD64命令セットの必須部分になっていることを付け加えたい。64ビットPCプロセッサはすべて、両方のサポートが必須だ。そのため、現代のコンパイラは64ビットバイナリをビルドする際にx87 FPUを無視している。代わりに、すべてのfloat演算とdouble演算をそれぞれSSE1命令とSSE2命令にコンパイルしている。
- theandrewbailey
> 各MMXレジスタは64ビット幅です。内部的には、MMXレジスタはx87浮動小数点レジスタのエイリアスでした。
最初のPentium 3 CPU(Katmai)の構造上、同様にx87(つまりMMX)レジスタをXMM SSEレジスタにエイリアスしていましたが、これはプログラムからは隠されていました。Coppermineリビジョンになって初めて、再び別々のレジスタになりました。
- pseudohadamard
ページに行く。何もない。JavaScriptを有効にする。まだ何もない。さらにJavaScriptを有効にする。まだ何もない。3回目のJavaScriptでようやくレンダリングされる。
いくつかの画像があるだけの静的テキストなのに…NoScriptでサードパーティサイトのJavaScriptを有効にしないと表示されない。
- kstenerud
90年代に彼らが流したMMXのテレビCMを今でも覚えている。
https://www.youtube.com/watch?v=5zyjSBSvqPc
https://www.youtube.com/watch?v=cnEuWfFTuxg
これを観ながら「誰がこんなの理解できるんだ?」「なんでこれがゴールデンタイムに流れてるんだ?」と思っていた。当時、家庭の消費者レベルでコンピュータで動画を再生するなんてことはなく、ゲームもまだオタクのニッチな趣味だった。
- gustavopezzi
著者です。共有ありがとうございます。