Originally Posted by PP Mguire
Nvidia GPUs when propery used makes even the baddest of CPUs scream for mercy...i fail to see you or your professors logic. By properly used i mean GPGPU, benchmarking, or gaming which includes proper coding for each.
Simple case, a single westmere Xeon has 6 cores + HT which = 12 threads. A single standard PS3 Core Cell has 7 cores with 1 disabled by default so thats 6 vs 6+6. The Wesmere is going to outdo a PS3 without a doubt. When coupling the power of Nvidia GPUs and Xeons under a 2 million dollar budget.....yea. In another forum thats discussing this same thing a guy from the military says that Sony cut them a deal on the PS3s. I think given the circumstances Nvidia and Intel would probably cut them a deal on GPUs and CPUs so you could squeeze more into that 2 mil budget.
There are two different types of performance: throughput performance, and latency performance.
Throughput performance is the number of instructions processed in a given amount of time
Latency performance is the time it takes between an instruction being issued and completed
Latency and throughput performance are quite often at odds with each other - which even Jen Hsen Huang admitted.
High throughput performance on GPU's is achieved by having a lot of parallel processors.
CPU's tend to be much better at latency-based performance, however.
A lot of work done by CPU's is very difficult to effectively split into parallel tasks. Whereas the workloads typically done by GPU's is easily parallelized.
The difficulty of parallelizing CPU workloads is that the execution of many instructions depend on there being results from previous instructions.
When it comes to HyperThreading, essentially what it is, is a method of reducing the time the CPU spends idle whenever there's a stalled thread.
The core doesn't process two threads at a time. It is just issued two threads, such that if the prefetching algorithms are wrong and the CPU has to fetch the right data from RAM before continuing, instead of just sitting and waiting for that data before continuing, it processes the other thread.
It can increase throughput performance, but not latency performance - it can even cause a latency performance decrease.
When the CPU fetches the right data from RAM so that it can continue the stalled thread, with HyperThreading, quite often it would have to either wait for the second thread to finish, or take time to stop the second thread and save its state and then
continue processing the first thread.