D and multicore

Peter Alexander peter.alexander.au at gmail.com
Sat Nov 13 14:05:54 PST 2010


On 13/11/10 7:04 PM, parallel noob wrote:
> The situation is different with GPUs. My Radeon 5970 has 3200 cores. When the core count doubles, the FPS rating in games almost doubles. They definitely are not running Erlang style processes (one for GUI, one for sounds, one for physics, one for network). That would leave 3150 cores unused.

This is all to do with "what" you are actually parallelizing. The task 
of the GPU (typically transforming vertices and doing lighting 
calculations per pixel) is trivially parallelized.

If you did that task on CPU it would still be trivially parallelized 
(just spawn as many threads as you have cores and split up the screen's 
pixels between the threads).

Besides being optimized for this particular task, GPU's have no silver 
bullet for handling concurrency. Trying to get a GPU to parallelize a 
task that is not easily parallelizable (e.g. depth-first search on a 
graph) is just as hard as getting the CPU to do it. In this case, 
doubling the cores will not help.

GPU batching of tasks concurrency handles rendering well, but Erlang 
style message passing is a better model in the general case.


More information about the Digitalmars-d mailing list