Now we get back to the realm of computing. A graphics processor uses dozens of SIMD (Single Instruction, Multiple Data) processors. The simplest processors are SISD, or Single Instruction, Single Data. The latter take one thing out of memory, do something to it, and put it back.
SIMD, in contrast, can take a list of things out of memory, do something to them, and put them back. If you think about vectors, that’s perfect. Want to make something bigger as it gets closer to you? Each vector is a list of memory addresses, so you load that list and multiply it by some number bigger than one. An SISD would have to get each part of the vector from its memory address, multiply it, and put it back. Applying a scalar multiple to a 3D vertex would take SISD 9 steps, while SIMD can do it in 3.
On the surface that looks like a nice, three-fold reduction, but it’s more significant than that. As the 3D model works its way towards the final picture onscreen, you eventually get to a point where each pixel has a massive vector tied to it.
The pixel needs to know where it goes (xy co ordinates), what colour it is, how well lit it is, is it behind something transparent, how transparent, what colour is the transparent thing, is it antialiased, if so with what colour, and so on. The benefits of SIMD are obviously bigger if we consider how long these vectors can get.