The Evolution of x86 SIMD: From SSE to AVX-512

BGs Labs Skip to content The story of x86 SIMD is simply not about technology. It’s about marketing, corporate politics , engineering compromises, competitive pressure. This is the behind-the-scenes history of how Intel and AMD battled for vector supremacy, the controversial decisions that defined an architecture, and the personalities who made it happen. Part I: The Not-So Humble Beginnings (1993-1999) The MMX Gamble: Intel’s Israel Team Takes a Huge Risk The story of MMX begins not in Santa Clara, but in Haifa, Israel . In 1993, Intel made an unprecedented decision: they would let their Israel Development Center design and build a mainstream microprocessor, the Pentium MMX, the first time Intel developed a flagship processor outside the United States . 1 This was a massive gamble. According to Intel’s own technology journal, the development of MMX technology spanned five years and involved over 300 engineers across four Intel sites. At the center of this effort was Uri Weiser , director of the Architecture group at the IDC in Haifa. 1 2 Uri Weiser later recalled the struggle with characteristic understatement: “Some people were ready to quit,” He was named an Intel Fellow for his work on MMX architecture, a rare honor that speaks to the significance of what the Israel team accomplished. 1 Meanwhile, in Haifa, 300 engineers were about to make a decision that would haunt x86 for the next three decades. The Technical Reason for the Controversial Register Decision Here is where things get spicy. The most consequential and controversial decision in MMX design was register aliasing . Intel aliased the 8 new MMX registers (MM0-MM7) directly onto the existing x87 floating-point register stack (ST(0)-ST(7)). 3 Why they did this : To avoid adding new processor state. At the time, operating systems only knew how to save/restore the x87 FPU registers during context switches. Adding 8 entirely new registers would have required OS modifications across Windows, Linux, and every other x86 OS. This was the 1990s, remember, convincing Microsoft to change Windows was roughly as easy as convincing your cat to enjoy water sports. The cost : You cannot mix floating-point and MMX instructions in the same routine without risking register corruption. Programmers must use the EMMS (Empty MMX State) instruction to switch between modes, and even then, there’s overhead. 4 Think of it like sharing a closet with your neighbor: sure, it saves space, but good luck finding your socks when they’ve mysteriously migrated to the other person’s side. The register state mapping can be expressed as: $$ \forall i \in {0,\dots,7}: \text{MM}_i \equiv \text{ST}(i) $$ where $\equiv$ denotes hardware-level aliasing (same physical storage). Intel’s engineers knew this was a compromise. But they made a calculated bet: most multimedia applications separate data generation (FP) from display (SIMD), so the restriction would rarely matter in practice. They were mostly right. Mostly… The “MMX” Nam

Source: Hacker News | Original Link