Thursday, June 7th 2012

AMD Continues OpenCL Leadership With First Fully-Conformant OpenCL 1.2 Solution

AMD today announced continued leadership in driving OpenCL adoption with availability of the AMD APP SDK 2.7, featuring the first conformant implementation of OpenCL 1.2 and comprehensive support for C++. The new SDK expands the OpenCL application ecosystem by providing developers a powerful, cross-platform solution to unlock the performance of AMD GPUs, APUs, and multi-core CPUs with the added C++ wrapper API and AMD's C++ kernel language for greater efficiency, improved productivity and application robustness.

"AMD continues leading the OpenCL movement, as demonstrated with the release of our latest SDK featuring the industry's first fully-conformant OpenCL 1.2 implementation," said Manju Hegde, corporate vice president, Heterogeneous Applications and Developer Solutions, AMD. "Our latest development tools empower developers to more easily harness the power of heterogeneous computing to help improve the user experience by making it easy to write applications that can take greater advantage of the compute capabilities of AMD's leading CPUs, GPUs and APUs."

Support for the second generation AMD A-Series APUs and AMD Radeon HD 7000 Series GPUs is now available with the AMD APP SDK 2.7. The new SDK also includes updated versions of gDEBugger, APP ML, APP profiler and kernel analyzer updates. For complete details on the AMD APP SDK 2.7 features, capabilities and support, visit the AMD Developer blog or download the AMD APP SDK 2.7 from AMD Developer Central.

AMD APP SDK 2.7 Key Features
OpenCL 1.2
  • Host access flags for memory objects
  • Pattern-based GPU buffer and image initialization
  • New generalized image creation API
  • Enhanced image/buffer map operations
C++ Wrapper API
  • Defaults for platform, queue, device, etc. significantly reduce the amount of boilerplate code required
  • Improved simplified constructors for cl::Buffer and addition of cl::copy functions
  • Additional support of events when using functors
C++ Kernel language
  • Kernel and function overloading
  • Inheritance
  • Templates
The developer ecosystem continues to optimize applications by implementing OpenCL to leverage the unmatched level of compute processing capabilities of GPU acceleration, as more than 100 applications and games are currently accelerated by AMD APUs. Developers who want to engage in the industry's move toward heterogeneous computing should attend the upcoming AMD Fusion Developer Summit (AFDS). AFDS provides a unique opportunity to hear first-hand from, and network with, developers as part of approximately 30 sessions related to implementing OpenCL, including sessions on math libraries, open source libraries, applications and tools. More information on OpenCL 1.2 will be provided in session PT4290 and on OpenCL Static C++ in session PL3660. To learn more about AFDS, visit this page.
Add your own comment

16 Comments on AMD Continues OpenCL Leadership With First Fully-Conformant OpenCL 1.2 Solution

#1
Cheeseball
It's good that AMD got C++ kernel language support directly with their drivers (unlike NVIDIA where you have to use CUDA because OpenCL is technically a C99 language), but their implementation is still quite hardware-specific. This means that using their implementation will work at 100% performance on a AMD GPU, but not so much when when run on NVIDIA or Intel GPUs.
Posted on Reply
#2
RejZoR
Cool. I hope more apps will utilize thism because right now i can't really remember a single useful OpenCL app.
Posted on Reply
#3
repman244
by: RejZoR
Cool. I hope more apps will utilize thism because right now i can't really remember a single useful OpenCL app.
WinZip 16.5, Handbrake (it's in beta AFAIK), real time renderers, Adobe will also support it in new software...
Posted on Reply
#4
RejZoR
Well i'm using Freemake Video Converter but it's using just CUDA or DXVA. No OpenCL.
Posted on Reply
#5
pantherx12
by: repman244
WinZip 16.5, Handbrake (it's in beta AFAIK), real time renderers, Adobe will also support it in new software...
Wolfram Mathmatica.
Posted on Reply
#6
RejZoR
I'd definitely like to see support for OpenCL in FormatFactory, Freemake Video Converter and 7-zip, apps that i use the most. My Core i7 crunches through them fast but i'd like to see it go even faster.
17MB/s compression is fast but my HDD can take it more so 50MB/s would be nice if CPU and GPU can crunch together...
Posted on Reply
#7
Andy77
by: Cheeseball
This means that using their implementation will work at 100% performance on a AMD GPU, but not so much when when run on NVIDIA or Intel GPUs.
Is this joke day?... as opposed to what? PhysX working great on CPU? I find this bickering like the Socket issue, Intel makes small efforts for socket compatibility, no one moans, AMD changes one socket every one is up in arms.

In truth, AMD has no obligation to make their software work great (i.e 100%) on non-AMD hardware, nor does Nvidia in PhysX nor Intel in their compilers, but then again Intel as well as others have each their own OpenCL "fork" and if need be the devs can adjust. Safe to say that AMD's OpenCL won't cripple support as Nv's PhysX does on CPU. And even if the software works lets say at 50% in OpenCL... you have a 50% increase in performance if you have some sort of video card supporting OpenCL 1.2 on top of the performance you get from your CPU natively. All that from AMD and the devs in question without you even deserving it.
Posted on Reply
#8
Thefumigator
by: Andy77
Is this joke day?... as opposed to what? PhysX working great on CPU? I find this bickering like the Socket issue, Intel makes small efforts for socket compatibility, no one moans, AMD changes one socket every one is up in arms.

In truth, AMD has no obligation to make their software work great (i.e 100%) on non-AMD hardware, nor does Nvidia in PhysX nor Intel in their compilers, but then again Intel as well as others have each their own OpenCL "fork" and if need be the devs can adjust. Safe to say that AMD's OpenCL won't cripple support as Nv's PhysX does on CPU. And even if the software works lets say at 50% in OpenCL... you have a 50% increase in performance if you have some sort of video card supporting OpenCL 1.2 on top of the performance you get from your CPU natively. All that from AMD and the devs in question without you even deserving it.
He's not upset about it, he's just telling a fact. Its not a matter of pissing anyone off.

If you use an intel compiler x86, most likely it will work fast on intel cpus and not so fast on non-intel cpus, but its not intentionally, its by nature. The same goes for this c++ AMD OpenCL compiler. It might not generate code optimized for nvidia or intel GPUs. They could even have a hard time making it work fast on their own AMD gpus...

So the fact is, ok, AMD released this c++ thingy, and its fine. Now nvidia should sum up his efforts and make something similar unless the AMD compiler is good enough on nvidia gpus too.
Posted on Reply
#9
LifeOnMars
Excellent, now can we have some fully operational Open GL please. Cheers :)
Posted on Reply
#10
repman244
by: LifeOnMars
Excellent, now can we have some fully operational Open GL please. Cheers :)
You need to splash the cash for a FirePro to get good OpenGL :D:laugh:
Posted on Reply
#11
trickson
OH, I have such a headache
Meh. Nothing here I really care about. Other than AMD/ATI taking there stuff to a new level who cars? As long as it all works for the enduser and works well.
Posted on Reply
#13
Andy77
by: Thefumigator
He's not upset about it, he's just telling a fact. Its not a matter of pissing anyone off.

If you use an intel compiler x86, most likely it will work fast on intel cpus and not so fast on non-intel cpus, but its not intentionally, its by nature. The same goes for this c++ AMD OpenCL compiler. It might not generate code optimized for nvidia or intel GPUs. They could even have a hard time making it work fast on their own AMD gpus...

So the fact is, ok, AMD released this c++ thingy, and its fine. Now nvidia should sum up his efforts and make something similar unless the AMD compiler is good enough on nvidia gpus too.
Never said he was... just seemed funny to me in a sort of sad way, day to day complaining about how some company does something but its not enough even if it adds no cost to the consumer.

Compile optimizations are intentionally... and you've argued my point, just as intel is not responsible for how intel compiled code works on AMD in the same way AMD is not responsible for how their OpenCL compiled coded works on Nvidia GPUs. As for how hard it's for them, it could be but they are doing it.
Golubev: Things got better since last time I’ve took a look at OpenCL, after an year (of very “hard” work I guess) AMD made possible to use BFI_INT, BIT_ALIGN_INT directly from OpenCL kernels (via bitselect() and amd_bitalign()). I was amazed how easy to write GPU kernels for AMD cards now while their performance is nearly the same as hand-written IL kernels
It's still not perfect, but hey, small steps.

Nvidia, yeah... they're more likely to steal the code, adapt and rebrand it.
Posted on Reply
#14
Cheeseball
This may not cost anything to the consumer, but this does change a lot for developers, especially ones who are aiming for the highest compatibility.

Currently, OpenCL code compiled on an Intel or NVIDIA platform run faster (up to 30%) than on AMD's implementation. This could be due to the backporting of features from CUDA to the OpenCL standard, but since it's already part of the standard, AMD needs to keep up.

NVIDIA more likely to steal code? Nope. It's AMD who's more likely to adapt to the standard, because you can't exactly "steal" an open framework.
Posted on Reply
#15
Cheeseball
Double-post, I can't seem to delete or edit my last one. :P
So the fact is, ok, AMD released this c++ thingy, and its fine. Now nvidia should sum up his efforts and make something similar unless the AMD compiler is good enough on nvidia gpus too.
NVIDIA already has an implementation, but it has to go through CUDA due to the language's nature. So if you're going utilize the kernel language on an NVIDIA card, it's best to go the CUDA route. If you're going to utilize it on an Intel CPU or AMD GPU, it's best to follow the standard static C++ route. At the end of the day, the compiled data (executable or whatnot) will run normally on ANY brand of stream processors.
Posted on Reply
#16
Wile E
Power User
Has OpenCL itself reached the same level of abilities as CUDA? Haven't kept up for a while.
Posted on Reply
Add your own comment