Pardon my n00bish question, but what exactly is CUDA or stream processing? Doesn't it sound a bit similar to Intel's Hyper-threading, where the CPU can use virtual cores? A GPU with CUDA/stream processors has hundreds or thousands of "cores" or processing units? Is each CUDA on a GPU like a "lane" on an HT processor, which is supposed to make more use of the processor? The difference I see is the GPU stream processors use a proprietary API, like CUDA, but what's stopping Intel or AMD from making an x86 CPU that has hundreds of those "cores" and running several times the clock speed?