Nouveau Open-Source NVIDIA Driver Achieves OpenCL Support
An anonymous reader writes "The Nouveau driver project that's been writing an open-source NVIDIA graphics driver via reverse-engineering has moved forward in their support. The Nouveau driver now has OpenCL acceleration support to do GPGPU computing on the open-source community driver for several generations of GeForce GPUs."
NVIDIA needs to open-source its drivers. Sure it might benefit the Linux community, but there are a whole host of problems in their current driver version for Windows that they refuse to acknowledge.
Great, but does it do 3D graphics yet? I've had an NV44A since 2006 and it's still not working very well. 3D support is there, but buggy and not "Done". At the time, this was a "new" nVidia card. And the Gallium came along (which is good BTW) and then NV50 and now nvC0. Only these latest 2 generation seem to be very active, and they don't even have full functionality, so it seems silly to be putting time into OpenCL. It seems AMD is better supported by open source these days, when it used to be nVidia was the obvious choice.
But does it run Flash?
Does this mean VDPAU support? That's all I really care about in a GPU beyond basic display at normal resolutions.
I am literally 3000 tokens away from the chaotic crossbow --Stephen
And to be fair, proprietary nvidia drivers are far from flawless too - Most of the things work except one, kinda big thing - X server using one whole core, just to render the desktop. It's a "feature regression".
From the article:
Unfortunately this current Nouveau OpenCL work done by Francisco Jerez isn't in the upstream Nouveau code-base but rather a separate branched Git repository. This is still out-of-tree work and it's not clear when it will be merged, but is already out of the question for the soon-to-be-out Mesa 8.0. The next hope would be seeing Mesa 8.1 be more OpenCL compute friend when that arrives in the middle of 2012.
Also, it only supports the older NV50 cards, not the newer NVC0 cards. I'm still keeping my fingers crossed, though: if OpenCV gets OpenCL support, then computer vision people could do GPGPU without needing the proprietary drivers.
It seems AMD is better supported by open source these days, when it used to be nVidia was the obvious choice.
Well, of course. AMD does publish documentation and put ressources behind the opensource development. NVidia doesn't.
Only these latest 2 generation seem to be very active, and they don't even have full functionality
For Nvidia cards, reverse-engineering is needed. So support will depend mostly on what the developper community has under their hand and can experiment the most with.
Too old cards aren't used so much any more, and thus there isn't as much experimentaiton going on them.
Too new cards haven't been around enough for enough reverse engineering to happen, so you won't see much support for them before a couple of year.
so it seems silly to be putting time into OpenCL.
Putting OpenCL in there doesn't divert that much ressources from Nouveau. Gallium3D is very modular (that's the main reason it's popular in the open source).
You just have back-end exporting hardware functionnality on one hand, and front-end supporting various API on the other hand.
You could in theory just freely slap any front-end on any back-end (and it's mostly that way in reality, hence the popularity of Gallium3D).
So bringing OpenCL to Nouveau boils down to :
- efforts in impoving the OpenCL state tracker until it can support enough of the OpenCL API. These are efforts done be people external to the Nouveau project. (Mostly the initial Clover project, then Google Summer of Code, etc.) And these are efforts done (mostly) independently of the back-end used (a lot is done on the CPU backends like LLVMpipe, but could also be used on Nouveau, AMD's R600g or the Gallium drivers for Intel developped by Google).
- efforts to bring enough of the hardware functionnality into the Nouveau back-end. These are efforts done by the Nouveau team. But some of these effort benefit also the 3D API or any other front-end running on Gallium3D (in theory, even the Gallium3D powered DirectX 10/11 front-end could partly benefit of these efforts).
That's also why OpenCL has been so quickly added to Nouveau: because it's cheap. OpenCL is mostly done (unlike OpenGL which is only currently achieving OpenGL 3.0 support in Mesa 8.0, whereas the current OpenGL implementation is 4.2 - so several versions behind). And GPGPU is mostly only uploading code to run on the chip (lots of functionnality which is used for 3D is not used for GPGPU), so as long as the the few OpenCL specific hardwaare functionnality is supported, OpenCL is ready to go.
For an up-to-date 3D support, there's still a lot of work to go into the Gallium OpenGL state tracker so it supports all the API and functionnality necessary for OpenGL 4.2. And there's still lot of hardware functionnality that needs to be done in Nouveau. Which is, again done entirely by reverse engineering and without an help from NVidia.
So, still a lot to go before having good 3D support.
At least, AMD is giving out documentation and paying a few developpers, and overall trying to guarantee some opensource support in parallel to their closed source catalyst.
And Intel and Google are actively developping opensource drivers as their main hardware support for Intel chipsets (with Intel developping classic Mesa and Google making Gallium3D drivers).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
There's a completely separate project which tries to bring support for video acceleration and video APIs on the Gallium3D.
Now, these efforts are using the Gallium3D stack. That means that the video is getting decoded by the 3D hardware (by code running on the shader/kernel processors) and not by the separate video hardware that some chip feature.
(In AMD's case that means that the decoding is done by the same units which does OpenGL/OpenCL and not by the UVD).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Have ubuntu running on an old ppc mac. Still no working unity 3d or 3d graphics at all due to my nvidia gpu. Of course, the blame goes squrely on nvidia for not open sourcing their drivers (though i can see why its unreasonable to assume they would make a ppc binary driver, at least they could give us a crack at compiling it). This kind of lessens the enjoyment of exploring ubuntu (i'm new to it but very interested).
I applaud any progress made and will wait patiently for the breakthroughs to come.
Hats off to the developers.
...we can take advantage of the hardware in some way. Because it sure as fuck isn't being taken advantage of in 3D gaming on Linux. The state of graphics driver support in Linux is sad. We end up with abominations like nVidia Optimus, which they won't even support, forcing the open source community to bullshit their way through with hacked up work-arounds like Bumblebee. They just won't put the development dollars into Linux, and there doesn't seem to be any recourse.
But has it stopped creating constant kernel panics?
from 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
to 45 2F 6E 40 3C DF 10 71 4E 41 DF AA 25 7D 31 3F
So, the driver is free software but what about the firmware? I would love to mine bitcoin on a free software rig.
Apparently some NV2A stuff has gone into Nouveau but not the stuff for the TV Decoders. Haven't found any significant blog posts or mailing list updates newer than 2008...
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Until it passes the OpenCL conformance tests (which are a major PITA) it's not really useful. One of the major reasons OpenCL is valuable is that it provides a guaranteed level of accuracy for math operations. This has a lot to do with the libraries that vendors ship, and that is a decidedly non-trivial amount of engineering and testing to implement. (I've been involved in getting OpenCL to pass conformance for three platforms.) I'd say they are about 10% of the way there.
support for VDPAU ?