On GPUs and CPUs
I assume many of us played a while with raytracing programs at a point of our contact with computers. But i think almost all of us stopped to play with it out of the same two reason like me: At first ray tracing was really really slow on a i486 and because of a lack in artistic capabilties.
Okay, the second reason can´t be solved by technology, but i found this older blog entry really interesting: At the Research@Intel blog you will find Real Time Ray-Tracing: The End of Rasterization? written by Jeffrey Howard. The key point of the computing power of ordinary systems reaches fastly the level of being sufficient to do raytracing in real time. I think this leads to an interesting question: There are two groups of components in the industry. Components with and without a steady rise in performance. When you look at hard disks , cdroms and to an certain part memory, these components got faster over time, but at a modest rate and sometimes these technologies reached there maximum capacity without breaking physics or their adequateness for home use . (You simply don´t want a 15k harddisk in your deskside pc. I´ve worked in hearing distance of a RAID array with 12 15k disks and learned that my noise cancelation earphones are not just good for flying). The other group of components, GPUs and CPUs made giant steps in the last let´s say 10 years. I get ware this fact everytime when i talk about Kilofractals per seconds as a metric to measure processor speed, remembering that my first fractal code written in C64 assembler needed virtually days to complete a single fractal. Some years ago there was a gap to fill. Processors weren´t powerful enough to render graphics for computer games. Some companies stepped in and developed coprocessor for this task (anybody remember the Voodoo cards?) and over time this coprocs got really huge beasts (look at the transistor counts, clock frequencies and power usage of modern highend graphic card). But at the end these procs are specialized coprocs. Now an old technology got new clothes: Modern general purpose processors are fast enough to calculate the mathematics behind ray tracing at high speed and even better, ray tracing is a task scaling exceptionally well over many cores, as the caluclations for the pixels are independent from each other. Okay, when you are able to do photorealisic (do you need more than photorealistic?) ray tracing at 50fps (good enough) with a eight core proc at 1080p (more than enough), where is the need of using specialized coprocs with a specialized programming model. At the end: Where is the need for companies producing this specialized coprocs? Integrating FPUs into the CPU obliterated the market for external FPU (anybody remembering IIT coprocs? Cyrix FasMath? Weitek Abacus? C&T SuperMath ?) besides a highly specialized market for FPGA based coprocs. The hunt for more cores in a single socket of a general purpose CPU may do the same for GPUs. Think only about the 12 core proc announced by AMD. Interesting times are lying in front of us.