Quote:
Originally Posted by zbutsam
I must be doing something wrong because the OpenCL build is about 2-3% slower with OpenCL activated than with the --no-opencl switch.
|
GPUGPU, may it be implemented via OpenCL or via CUDA or via something else, is
not the "magic" speed booster that many people seems to think. Just throwing your CPU code on the GPU won't work. Even if you manage to port your CPU code and make it run on the GPU, it will be slow like hell. Getting calculations done one the GPU
fast usually requires completely new ideas/algorithms - and that's exactly where all those so-called "GPU Encoders" sacrifice quality for speed to get some nice FPS numbers for the marketing department! And even if you mange to get your calculations done on the GPU fast - and with "fast" I mean significant faster than on a state-of-the-art the CPU - then it's still
not guaranteed that you'll see an overall speed-up! Uploading and downloading the data to/from the "device" (graphics card memory) causes a lot of overhead. Only if you still save time
including that overhead then you might be able to see some overall speed-up...
In other words: It's very easy to port your CPU-based software to the GPU and get something that runs a lot
slower than the original. At the same time getting something that actually runs
faster is very difficult and sometimes impossible!
(There are some calculations that are "sequential" by nature and therefore will never run fast on a massively parallel processor, such as a GPU)