|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Idea #16362: Implement support for OpenCL API
|
Written by AndrewLuecke the 9 Dec 08 at 12:11.
Category: Programming.
Related project:
Nothing/Others.
Status: New
|
|
|
Rationale
Now that OpenCL 1.0 is final, prioritising support would not only inspire developers to use linux, but also prove that we have the development toolkits, guts and motivation to compete against OSX Snow Leopard and Windows 7. If we don't support it rapidly, we will only fall further behind OSX, especially since it will give their developers extra time to utilise it properly (we shouldn't be waiting until its already popular). The faster we get this implemented, the quicker developers can use it, and the faster Ubuntu will be!
For those who don't know, OpenCL is a royalty-free standard for developers to program general purpose highly parallelised applications over GPU and CPU (combining their power even). Its more advanced then CUDA in that it combines CPU and GPU power and is accessible outside of Nvidia's video cards.
In summary, OpenCL is expected to become very popular with developers and users, and will make everything damned fast (especially considering we are already seeing video cards with 1600 processing threads, and Intel CPU's with 16 virtual CPU's will be out Q3 2009). If every program used OpenCL, processing power will seem almost infinite to end users.
Activision, Blizzard, AMD, Apple, ARM, Broadcom, Electronic Arts, IBM, Intel, Nokia, NVIDIA, Apple and Samsung are all on board. All major gaming companies, CPU and GPU manufacturers are on board. So yes, it will be a slaughter without support... ATI is dropping "close to metal", and as Nvidia will support OpenCL, CUDA will probably be depreciated slowly too (at the moment they are recommending CUDA only as a higher-level development platform).
|
|
Propose your solution
Attachments
No attachments.
Duplicates
Comments
|
|
Maybe to put this into perspective of why this is so critical..
For less then $5000 total (including 3x ATI Radeon 4870 X2's), you will have 4800 processing threads. Whilst the threads on the GPU aren't as fast, some scientific algorithms and programs (especially ones that don't need perfect accuracy and do a lot of computation per result), will probably easily use them quite efficiently.
This is less then $1 per processor thread. For only $10000, you have 10000 threads. Super computer on a desk, or a cluster of super computers, pick your choice. But people are already starting to realise this, and are starting to set up such clusters already (as they are very efficient energy-wise, MUCH cheaper, more maintainable, and good enough for many situations).
And believe me.. If we don't make OpenCL available, Apple would be happy to sell video rendering studio's $30000 worth of gear to replace their old skool clusters, and they will be forced to use OSX for the time being.
|
|
|
Also, btw, medical people, design studio's and researchers love such setups. Some used to have to wait days to get a result, that with OpenCL, they could get in a few minutes with the right setup.
Finally, we could even possibly work together with companies like Cray Supercomputer. And that would REALLY push up our profile (especially if our libraries were well integrated with OpenCL).
|
|
urandom
wrote on the 9 Dec 08 at 13:08
|
|
|
|
This idea should be promoted with full strength.
|
|
|
|
I agree urandom.. In fact, it will be a slaughter when Leopard comes out if we don't. I've seen design studio's with hundreds of Mac Pro's they use for rendering and such. This will get OSX computers into every workplace that does any computing.
|
|
|
|
I mean Apple will corner the design market AT LEAST with this. Scientific market likely too...
|
|
urandom
wrote on the 9 Dec 08 at 14:10
|
|
|
|
It would be a good idea to put OpenCL integration for the release immediately after Jaunty, since Jaunty is most likely too far into the development stage at this time.
|
|
|
|
wow CUDA in linux would be AWESOME! No doubt it has to be 9.04. On some tasks it gives 1000% increase of speed! no overstatement.
|
|
|
"If every program used OpenCL, processing power will seem almost infinite to end users."
Every program can not use OpenGL, it is not suited for all kinds of things. It is mostly suited for stuff like algorithms. Video encoding/decoding, encryption/decryption, etc.
|
|
Craig73
wrote on the 9 Dec 08 at 18:31
|
|
|
Where I can see the advantage of this processing power is supporting more natural interactions... a computer that can look at the webcam and know if you are around (change your IM status, sound profiles, power profiles), better voice recognition/voice generation, better compression/encryption algorithms for video/voice communications.
|
|
|
I like all these GPGPU things. +1
Would this work for every GPU, or only those OpenCL-enabled? (my Nvidia isn't CUDA enabled, for example)
|
|
|
@ilya@eeepc
CUDA kind of sucks because its Nvidia only, and runs only on Windows and Linux. Furthermore, I don't think it uses the CPU too. This means if you program a CUDA program, if the computer doesn't have an Nvidia card, it possibly wont run at all! Whereas, with OpenCL, everyone has a CPU, so developers can rely on OpenCL exclusively (without needing multiple code-paths).
@Eldmannen. Thats true, HOWEVER, many intensive operations are repetitive algorithms that can be. Stuff like Folding@home is already being accelerated on GPU's, and there are many other projects being done so as well. Also, for imprecise algorithms, many can be modified slightly to run on GPU too. The GPU would probably be a good place to accelerate 3D audio playback too (same principles)
When it comes down to it, when speaking to the OSX development community, they are REALLY excited about OpenCL, and so you know when the developers are excited, its going to be massive!
@Cousteau: Not sure at this point. You'd need the CPU to have its own code, but I'd imagine that there would be a way to also have a wrapper, to change OpenCL -> OpenGL shaders when the driver doesn't support OpenCL directly (however, obviously drivers must support OpenGL shading). A wrapper probably would have a small slowdown though (so wouldn't be nearly as efficient).
Also, it must be noted that OpenCL can't work on every card (which is what I think you are getting at). Unfortunately, I don't know enough about the expected implementation to know what cards it would work on. But the video cards it would work on would probably need to be mostly newish, and possibly only the stream processing cards will work with the GPU aspect of OpenCL.
|
|
rouge568
wrote on the 10 Dec 08 at 00:09
|
|
|
@urandom
In no way is it too late to get this into jaunty if we work quickly - the developer's summit is on the 11th of December.
I fully support integrating this into Ubuntu ASAP.
+1
|
|
|
Activision, Blizzard, AMD, Apple, ARM, Broadcom, Electronic Arts, IBM, Intel, Nokia, NVIDIA, and Samsung are all on board.
Gaming, all the major graphics cards, and the major CPU manufacturers.. All links of the puzzle...
|
|
tadasv
wrote on the 10 Dec 08 at 03:01
|
|
|
|
I've been working with CUDA for a while, but OpenCL will totally revolutionize world of computing. Are there some specific people working on OpenCL toolkit for linux?
|
|
neon
wrote on the 10 Dec 08 at 04:28
|
|
|
|
YES. huge +1.
|
|
|
AndrewLuecke none of your words argue that CUDA not awesome)
if nV associates for you with windoze, proprietarity and imperialistic invaders, for me it's only a piece of hardware, probably best in its own kind. and OpenCL is _Open_ CL, and this is good. And as i know CUDA implementation doesnt deny ability to run process on main CPU only.
|
|
|
|
sorry i realized that i mistaken CUDA as part of OpenCL, BUT its still open, right? when is where something wrong with it?
|
|
ubby
wrote on the 10 Dec 08 at 10:34
|
|
|
It was conceived by Apple Inc. (which holds trade mark rights), and established as standard by Khronos Group in cooperation with others, and is based on C99.
OpenCL is scheduled to be introduced in Mac OS 10.6 ('Snow Leopard').
http://en.wikipedia.org/wiki/OpenCL
|
|
|
@ilya@eeepc. Cuda isn't part of OpenCL actually, its a proprietary standard Nvidia cooked up before OpenCL existed. However, as Nvidia controls it entirely, of course ATI don't want to touch it. As CUDA is Nvidia only though, it was difficult for developers to use.. However..
OpenCL is as free as OpenGL. The same group handles both standards.
Khronos are the guys who handle Opengl, and now they handle OpenCL. We know they can be trusted.. And so do other manufacturers.
Even better, its CPU/GPU. And game developers will most likely start integrating it into their game engines ASAP!
|
|
enubuntu
wrote on the 10 Dec 08 at 11:50
|
|
|
|
+1
|
|
vs8
wrote on the 10 Dec 08 at 11:52
|
|
|
|
I like this!!!!! Please do it Ubuntu!!!!!
|
|
ubby
wrote on the 10 Dec 08 at 12:01
|
|
|
|
+1
|
|
|
|
And wtf.. I just noticed that the tags have a purpose now :D they are somewhat useful. Congratulations..
|
|
|
|
AndrewLuecke, yeah i got it CUDA is sucks))
|
|
|
Well.. CUDA isn't bad.. Apparently its higher level then OpenCL still (which coders like).. But yeah..
Since we cant rely on it (especially as there is no CPU fallback or ATI support) though, and its less efficient then OpenCL (no CPU support) I guess the sux is the only way of describing it.
Nvidia should be congratulated though for CUDA, as it REALLY helped kick off programming general computations on a GPU.
|
|
MiKom
wrote on the 12 Dec 08 at 15:53
|
|
|
|
It's not entirely up to Ubuntu to support OpenCL. Nividia stated that their implemetation of OpenCL will be done on top of CUDA i.e. OpenCL will be translated to CUDA code or directly to internal nvidia gpgpu language (ptx). Canonical/Ubuntu should however help in development of the tools for open video drivers (xf86-video-ati/radeonhd/nouveau/intel) like OpenCL compiler (gcc wrapper probably) and video driver APIs and internals.
|
|
|
I see that there will be a fee for conformance tests so that the OpenCL trademark can be used, for a particular implementation. Read this on khronos's site (page 4 of the slides)
Will this be a problem?
|
|
Craig73
wrote on the 12 Dec 08 at 18:01
|
|
|
|
Is it a licensing fee or royalties... the former is less bad for FOSS.
|
|
|
Sort of conformance test licensing.
Quotation from site:
"OpenCL implementations must pass conformance tests to use trademark. -Khronos will license tests for nominal fee to any interested company."
Don't think its a big issue, not buying the tests means one can't officially use the OpenCL trademark.
|
|
|
@MiKom
Even so though with Nvidia, we don't know if Nvidia's implementation will add support for CPU too. And people can have different GPU's running with OpenCL (a hybrid of ATI/Nvidia).
We need to ensure we have a OpenCL framework in place so that Nvidia and such just drop their kernels into place. We must support it properly this time. And yes, Canonical don't need to support this, but either does anyone else in linux either. Someone should take charge though and get it going.
@braaivleis. Its probably the same situation as OpenGL I'd imagine (they just call it Mesa), but we all know its really OpenGL.
|
|
acidicX
wrote on the 13 Dec 08 at 17:53
|
|
|
Nvidia already stated that they will support OpenCL. This makes sense because they only sell GPUs, so its one target user group more for them.
Any support of CPUs will be up to a sort of 'dispatcher' program. There is no kind of automatic CPU support in OpenCL. But neither can NV prevent it..
I would love to see OpenCL support in jaunty, but it's no priority for me...
@ AndrewLuecke: man, are you scared by apple or what ;-)
They only got 10% market share and it didn't change over the years..
|
|
|
AcidicX, I used to work for an Applecentre. But times have changed.. The Apple of today is 10x aggressive and they changed to intel 3 years ago (well, realistically, the change is maybe 2 years, because thats when they started making decent intel equipment). You're no longer dealing with the same company really. It used to be that the computers were an afterthought (they only sold because people were interested in the ipods), however, now-days, people are coming in just for the computers.
And no, not scared. For me its about competition. I don't mind prodding all sides (Microsoft, Apple and linux), to increase competition and make things as good as possible. If you picture a tree, this is essentially part of its trunk, and openCL seriously opens up a whole new set of technologies, programs, and branches (its a base technology which makes it MUCH more important that small tweaks of nautilus and suck)
And the CPU support I believe is done via kernels (you have different kernels for GPU's, and CPU's). I might be wrong, but provided you have a OpenCL CPU kernel in place, it is automatic when using OpenCL.
Either way, if you want to be able to mix as many GPU's as you want in your computer, we can't rely on nvidia or ATI for the libraries. We need to do it independently and just get them to code their individual OpenCL processing kernel's for it.
|
|
|
Big +1 for this.
Now NVidia and ATI have committed to OpenCL, there's no real concerns holding back Ubuntu devs from implementing it.
Obviously it has uses in scientific applications (e.g. PyMOL - especially in raytracing), but I wonder what OpenCL can do to speed up everyday applications - say, web browsing, office work, multimedia, email. Any ideas?
|
|
|
|
CodeSourcery would certainly be interested in working on an OpenCL implementation in GCC.
|
|
dbx
wrote on the 24 Dec 08 at 15:20
|
|
|
As an old fart, who bought the Amiga 500 for its game
potential and 3D rendering, I have to agree - OpenCL
sounds like a wedge in the marketing world for more
acceptance of Linux.
|
|
|
@CrazyIvan. For Multimedia, codecs and such could be reimplemented using OpenCL to accellerate them (instead of using stuff like Purevideo), for web browsing I'm sure changes to jpg decoders and such could possibly benefit and accellerate rendering. Not sure about email though.
Multimedia is where it really matters though, and that would benefit.
|
|
|
|
Do we have any official word on this??
|
|
|
This should be priority. AndrewLuecke (first comment) say all about this...
Ubuntu developers: help us :)
|
|
|
@AndrewLuecke
Multimedia would indeed be where most users see the most gain. The smooth playback of h.264 1080p content, which right now is just a pipe dream unless you lay down serious cash for high-end GPUs that support xvmc/xvba properly, or pay for the proprietary codecs like Purevideo HD and CoreAVC, could with OpenCL become a reality for everyone. A Free, Open Source reality ;)
As regards email, users often send photos and videos to each other which a modified jpg / png / etc decoder could accelerate. Not sure how much of a benefit there would be though.
For PyMOL, which is a molecular visualisation program, it would be cool if you could run all the time in raytrace mode. Right now you have to arrange the molecule exactly how you want in the low-quality preview mode, then raytrace that scene. But with OpenCL I can envisage a situation where you're manipulating a raytraced molecule all the time, in real time, which would look so much nicer and more precisely rendered. Perhaps not on today's hardware, but in the near future there should be GPUs capable of it. Especially when running on our favourite, highly efficient penguin.
|
|
|
|
If possible Ubuntu should expand Gallium3d to support the OpenCL interface. And then graphics driver using gallium3d should be made make use of it. That the way to go imo. Thanks.
|
|
|
|
Just an update. Apparently Nvidia and ATI will support this on windows..
|
Post your comment
|
|
|