How to use GPGPU (OpenCL, CUDA etc) For common Man?

bhvm

Journeyman
Hello everyone!
All modern computers are coming with GPGPU of some Sort. I have a limited understanding of GPGPU, that it allows you to use Graphics cores (which are more in number than CPU cores) to accelerate software performance, But thats all I know.

I just got and AMD APU laptop (*www.thinkdigit.com/forum/reviews/1...ming-amd-apu-a6-amd-6520g-4gb-ddr3-500gb.html) and it comes with OpenCL support and a graphics card of 320 shaders.

Its dissapointing that there's no clear cut guide about how to use this technology. I checked my task manager and MSI afterburner and I feel that OpenCL or any form on GPGPU is not being used when working with photos,videos or any other tasks

I bet many of us are having these questions in Mind about GPGPU-
1) Is there are setting that we need to enable?
2) Do you need a special driver or software to leverage this performance?
3) Does it work with only a very limited and specialized software?
4) If above is true, what are some common freewares that general user can enjoy GPGPU performance boost?

I would like to leverage this opportunity and With the help of you all experts, i would like to turn this thread into a guide for all, and also learn in the process!

Mods-Please move it to appropriate section if needed.
Thanks everyone.
 
Last edited:
> GPGPU is the technique of utilizing the GPU (Graphic Processing Unit) to perform computation other than accelerating computer graphic. Not all applications are suited to GPU computation.

>GPGPU implementation is performed if following conditions hold true:

a) Data parallelism: this means that the input data on which processing is to be performed must be available in parallel without interdependency of any sort.
b) Throughput insensitivity: this means that is and only if the application's processing requirements are high enough to cause significant delays in output, GPGPU is utilized.

In basic apps lik image viewer, implementing GPGPU wouldn't be of any practical use. You wouldn't notice any difference between a CPU running code and GPU running code. In application like video converter or rendered, where there are trillions of bytes to apply the same and same processing on, GPU excel by a huge margin. Note that CPUs are better when it comes to latency but GPUs are better when it comes to throughput. Understand it like this:

If there was a data-set of 100 million numbers and both GPU and CPU started processing a the exact same instance of time, it would be CPU which would produce the first completely processed byte, but , it would be GPU which would finish the whole processing first.
 

ico

Super Moderator
Staff member
well, you need to find software which utilize GPGPU. So, you can say that people need to come out with special features in their software to utilize GPGPU. Not everyone has a GPU anyway.

The latest version of WinZip is one - AMD: The New WinZip® 18 with Accelerated Pe... | AMD Blogs

These days many filter effects on Photoshop are handled on the GPU via OpenCL. This makes them quicker.

There are a few video encoding software which utilize OpenCL, herebey using your GPU to encode videos.

Next, there are password cracking tools like ocl-hashcat. They really show you how much faster brute-forcing is on the GPUs than on CPUs.
 

Cilus

laborare est orare
Another application is HD video decoding and quality improvements of it using GPU processing. Videos encoded in H264, DIVX etc codec can be decoded using GPU which is faster than any software based decoder used in CPU. You can also apply multiple Filters like Upscaling, Noise reduction, sharpening over the running video to enhance the quality at run time using GPGPU processing. Media Player Classic Home Cinema, KMPlayer, Splayer etc are the Video players capable of leveraging GPU processing power to perform the above mentioned tasks.

Regarding Video ENcoding applications, actually most of the major software, both Free and commercial, are supporting GPU acceleration now a days. TMPGENC Express 4.XX, Cyberlink Mediashow Espresso, IMTOO Studio, Mainconcept Reference Encoder; all support GPU acceleration. MediaCoder and Handbrake are two free and extremely popular encoder supporting GPU Acceleration.
 
Last edited:
OP
B

bhvm

Journeyman
good information everyone.
so we need specific softwares eh? unfortunately many of them are not freeware.
let's make a list of paid and free software that can use gpgpu. it'll Help the novice customer enjoy better performance. there's a list on amd website, I'll post it here soon.
 
Top Bottom