3 ms·
For me article is missing the point. The GPU are best at accelerating small data & computation intensive portions of your program. Most of the code will be exec
by jakozaur 16y ago
For me article is missing the point. The GPU are best at accelerating small data & computation intensive portions of your program. Most of the code will be executed on CPU, usually only a few functions are bottleneck and needs to be ported.
The CPU are task parallelism while GPU are data parallelism. On CPU there is usually small number of thread and programmer explicitly control them. On GPU threads and switching them is almost free, so you can use as much as you want (make the number data dependent).
So GPU will excel in applications which require e.g.:
-float computations (speed up 10x+)
-using graphic specific functions (e.g. texture interpolation 40x+)
-memory bound (continuous access 2x+)
On the other hand there are behind CPU in:
-branching
-small irregular computations
The x86 is currently spending quite a lot of silicon for features like cache, prediction, superscalar execution which provide speed up to existing application. GPU does not have most of that features, but they spend more silicon on core logic instead.
To sum up, a good candidate for GPGPU would be image recognition. The bad one would be compilator.
- foobarbazoo 16y agonVidia's Fermi chip has coherent L1 and L2 caches, and that is what is used in Amazon's GPU Compute cluster nodes. Branch-prediction and superscalar execution are still missing, but IMO aren't needed due to other architectural decisions on the chip.