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."
They can't. They license lots of code from companies who wouldn't want the source released. Also, they gain nothing by doing so. The neckbeard market isn't their primary customers.
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.
No it doesn't.
The neckbeard market
Thanks for that bigoted remark. Most of us are otherwise normal people, you know.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
I don't like the binary blobs for because they 1) break when I get automatic updates that include a kernel 2) don't support the new 3d architecture and hence will 3) not work with Wayland when it matures. OTOH nouveau is completely painless to use for 2D ( I run Fedora ) but sucks for 3D. I can't run blender. Gnome 3 is very laggy when it works. I can't run Neverball for very long. Yet they think this driver needs OpenCL? WTF? Between Gnome3 and nouveau I need to buy new hardware, and it won't be nVidia this time. I just want my desktop and some OGL apps to work out of the box.
They license lots of code from companies who wouldn't want the source released.
Then release it without those parts and the community can fill in the gaps. Also, document the interface of the hardware.
Also, they gain nothing by doing so.
They get a more solid and reliable code base through the community eyes.
now we need to go OSS in diesel cars
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 ]
AMD/ATI isn't really any better. The open source drivers suck just like Nouveau.
Not my experience. I've been using ATI with open source drivers for years now and have had very few issues. I did have problems with Nouveau though and ended up swapping out the card out for an ATI one.
(the multiple monitor support is absolute shit compared to Windows or OSX).
I have a dualhead DVI setup with an AMD DMS-59 card and it works fine. What exactly do you think is missing in Linux? Last time I installed, Ubuntu auto-detected the dualhead setup, and it was a single mouse click to swap from mirror image to left/right screen. I know that using multiple cards for a multiple monitor setup doesn't work very well in Xorg - but I've also heard the same about Windows.
If you're concerned with performance, use the blobs.
If you're concerned with FOSS purity, use nouveau.
It's one of those 'decision' things that we adults have to deal with every day.