CPU Planet  






internet.com
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers





October 23, 2002
Multimedia Extensions: Do MMX, 3DNow!, and SSE Still Matter?
By Vince Freeman

Software Superceded As GPUs Go Gaga?

In addition to all this wizardry on the CPU side, SIMD technology also requires software support to achieve its improvements. This works on several different levels, the first of which is the obvious: In order to gain any performance benefit, an application must support SIMD instructions. A second factor is the level of support within the application -- i.e., to what extent a program is optimized for and how much faster it'll perform using SIMD instructions.

This represents the key to determining the true benefit of SIMD instructions, as even programs or games that promise full 3DNow! or SSE support often show a big difference in actual SIMD optimizations. One reason is that standard compilers for C++ and other languages don't really create true SIMD code, so much of the work must be done or redone with specific SIMD tools or more laborious coding.

Another important factor, as we suggested above, is the sort of work an application does -- how well its data layout responds to SIMD opportunities. Processes with highly repetitive or parallel data streams make the most efficient use of SIMD, and the most common examples involve digital imaging and streaming video. For example, changing the brightness or contrast of an image in a 3DNow!- or SSE-enabled graphics program is an excellent scenario for SIMD, as tons of pixel data are being manipulated by the same instruction.

Ditto for many streaming video operations, where SIMD can really help in areas such as motion compensation and MPEG decoding and encoding. Case studies and performance benchmarks have repeatedly found graphics and video as the application areas showing the most performance impact from SIMD support, with some tightly coded programs showing improvements by factors of five to 20 for specific tasks. Other tasks such as DSP emulation, used for Winmodems and software-based audio codecs, also gain nicely, but not to the same level. By contrast, with data streams that are scattered, misaligned, or incongruous with SIMD requirements, performance gains may be nonexistent.

Processor design also plays a role in SIMD performance metrics, with the two main factors being a large, fast cache design and a robust CPU/memory interface to shuttle high volumes of data back and forth. This is one reason why Intel's 533MHz-system-bus Pentium 4 with the company's 850E chipset and synchronous PC1066 RDRAM memory handily outperforms Pentium 4 systems with slower DDR memory, especially given the P4 Northwood's hefty 512K Level 2 cache and the bulky data sets used for applications like DVD-quality MPEG encoding.

Both CPUs and Graphics Cards Were A Lot Slower Then

Perhaps most important, there's been a quantum shift away from promoting SIMD as a way for CPUs to compensate for the limitations of PC video cards, as it was with MMX, and toward promoting multimedia extensions for home-user applications such as streaming video and digital signal processing. Both AMD and Intel nowadays highlight their chips' advantages for DVD and Internet video playback, higher-quality audio, speech recognition, and image editing, just as the greatest penetration of SIMD software optimization can be found in the DVD and MPEG video-editing and -playback category.

Meanwhile, although video-card drivers are optimized for SIMD, the hardwired functionality of current graphics processors has superceded that of even 3DNow! Professional or SSE-2. A few years ago, developers' conferences were full of talk about how modem, audio, networking, and video functions would be taken over by the CPU, with 3D rendering goodies like shaders and antialiasing to be handled through the DirectX application programming interface.

But with high-end 3D accelerators like ATI's Radeon 9700 Pro and Nvidia's GeForce4 Ti series offering hardware support for such DirectX 8 features (and, from ATI today and Nvidia tomorrow, DirectX 9 features that haven't officially even been released yet), the impetus to implement these functions as SIMD tasks for the system CPU becomes a lot weaker.

Meanwhile, both Intel and AMD have in a way ironically undercut the SIMD concept simply by making their CPUs so darn fast: The pioneering Pentium MMX, remember, ran at 200MHz, but painstaking programming for every bit of code optimization is frankly less essential with a processor revving at 2.0GHz or more. As CPU speeds have soared, the need for optimization has decreased; many 3D game developers today will tell you their titles are far more graphics-processor-dependent, eager for ATI's or Nvidia's latest and greatest but perfectly content on AMD's or Intel's midrange chips. This means that, while basic SSE and 3DNow! support is easy to find, taking the extra time to tweak software for SSE-2 or 3DNow! Professional seems to be a job often put on the back burner.

This is not to say that SIMD instructions don't significantly help game or application performance, but that they seem to have settled into both a larger and quieter role than the hype of 1997-2000. The technology has moved past its MMX gaming roots to encompass a wider range of audio, video, and digital experiences for the general user, while deep-pocketed gamers still find that high-end hardware components like the Radeon 9700 Pro or Sound Blaster Audigy still provide the highest performance. SIMD is here to stay, but it's doubtful it'll ever regain the buzz it had in those halcyon days before trillion-triangles-per-second 3D cards and 2.8GHz processors.

Go to page: 1  2  

Features Archives