Slashdot Mirror


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."

22 of 109 comments (clear)

  1. Re:If only... by Desler · · Score: 3, Funny

    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.

  2. Not quite by KerrickStaley · · Score: 5, Informative

    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.

    1. Re:Not quite by Formorian · · Score: 2

      From the article: 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.

      Why is it so wrong to use the proprietary drivers? I mean don't we want companies to write drivers for linux for their hardware. NVIDIA does this and has for many many years. Why are you so eager to drop the proprietary drivers when they work so well in linux? It's one reason I always buy NVIDIA, even in my Windows machines. Because they support linux with drivers. I mean even my old NVIDIA cards running my servers still work. Sure newer drivers don't work, but old drivers do and work very well. I just don't understand the hate towards the proprietary drivers from NVIDIA. I can't tell you how many times in previous years trying to get wireless nic cards, modem cards, or other kinds of expansion cards to work in Linux properly. But with NVIDIA GPU's they just work. Why is that so wrong?

    2. Re:Not quite by miknix · · Score: 5, Informative

      Why is it so wrong to use the proprietary drivers?

      I'm going to give you an example. My parents computer which is actually a laptop with a GeForce FX Go 5300 has GNU/Linux on it. The last official driver from nvidia supporting that card is nvidia-drivers-96.xx. Then if you read https://wiki.archlinux.org/index.php/NVIDIA :

      Note: Currently nvidia-173xx, nvidia-96xx and nvidia-71xx drivers do not support Xorg release 1.11, and therefore are not available in the Official Repositories. You can use the open source drivers (nouveau or nv) instead.

      I belive the drivers still worked under Xorg 1.10 under a compatibility layer. But my point is, if the vendor decides to stop supporting your hardware, you are left in cold waters if there isn't any opensource driver..

      Another example is the XRandR case. Nvidia bundles the nvidia-settings application which works fine if you use it. However if you want to use the KDE or gnome or whatever other software to change the screen resolution and multiple-screens, then you will notice how bad they work BECAUSE nvidia fails to properly implement the XRandR specification (instead they make some kind of wrapper to their own twinview). With nouveau, XRandR works beautifully.
      Because nvidia also emulates Xinerama, sometimes window managers fail to properly detect your multi-screen setup geometry and you will get strange window management results. This happened to me and that's why I perfectly happy with nouveau. Of course I still hit bugs when playing opengl games and sometimes the GPU even hardlocks but I honestly prefer having those localized bugs than the general inconsistencies I described above.

      BTW: cudos to everyone involved in nouveau. OpenCL support is indeed a very good thing :)

    3. Re:Not quite by diego.viola · · Score: 2

      Not to mention that a free driver (as in free speech) also gives developers and users more freedom in the sense that if we want to create new display servers (e.g. Wayland) we can do so without having to worry that a corporation like NVIDIA will support us. Which they already said they won't.

      With proprietary drivers we lose a lot of control of our system.

      With FOSS drivers we have the control, and this is the way it should be.

    4. Re:Not quite by diego.viola · · Score: 3, Interesting

      I was saying that there are many reasons to use Nouveau, one of them is that nouveau supports KMS and Wayland while the nvidia blob DOES NOT.

      How about improving your reading comprehension? And what is exactly not working for you with nouveau? How about doing some bug reporting?

    5. Re:Not quite by diego.viola · · Score: 2

      BTW, if you get any GPU hardlocks or you hit bugs, please report them.

      I've reported a few and the nouveau developers were really kind and assisted me on fixing them, at the end we fixed them all. :-)

      Here is the issue I had, the nouveau developers rock (thank you so much guys):

      https://bugs.freedesktop.org/show_bug.cgi?id=40630

  3. Re:VDPAU? by Desler · · Score: 3, Informative

    No it doesn't.

  4. Re:If only... by X0563511 · · Score: 5, Funny

    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...
  5. Re:What about OpenGL ? by gr8_phk · · Score: 3, Insightful

    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.

  6. Re:If only... by Skapare · · Score: 3, Insightful

    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
  7. Re:What about OpenGL ? by Anonymous Coward · · Score: 2, Informative

    AMD/ATI isn't really any better. The open source drivers suck just like Nouveau. So you have to use the binary AMD drivers if you want full support and performance. But then you're in a worse position than nVidia because the AMD drivers are terrible.

    The whole situation just sucks to be honest. The best choice is nVidia hardware with the closed-source nVidia drivers but they're far from perfect. I believe the AMD hardware may be better but their drivers suck so bad that you can't take advantage of it.

    And don't get me started on how crappy X.org itself is (the multiple monitor support is absolute shit compared to Windows or OSX).

  8. Re:What about OpenGL ? by MikeBabcock · · Score: 2

    I've had no significant binary blob driver issues with the desktop in Gnome 3, but I can't say I've timed it against using nouveau much since it just works.

    At any rate, I'm most happy with NV+Binary drivers on Linux these days, have been for a while. When ATI or someone else or Nouveau catches up, then great.

    --
    - Michael T. Babcock (Yes, I blog)
  9. Of course.... by DrYak · · Score: 5, Informative

    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 ]
  10. Gallium3D video by DrYak · · Score: 2

    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 ]
  11. Re:Burn it! by IronHalik · · Score: 2
    Because they say Ubuntu is better then Windows. Actually, its the best thing since sliced bread. And if something is wrong with the best OS ever, its always Bill Gates with his evil Steve Ballmer henchman, actively sabotaging open source efforts.

    How could I, with clear conscience, use OS that was produced by such vile characters.

    For the record, I'm perfectly fine with Arch Linux on my laptop.

  12. Re:What about OpenGL ? by X0563511 · · Score: 2

    Not sure how you obtain blender - but if you nab the pre-build binaries (they run from wherever you extract them and store stuff in ~/.blender) they come with a mesaGL binary that does not require hardware OpenGL support. Debian has a seperate package for this as well, but I think Fedora only ships the "normal" binary.

    It can be a bit slow in complex scenes, but that's only at the UI level. The render output is the same, and now that nouveau supports OpenCL you will probably be able to continue to use the graphics card for render acceleration (example, Lux built with OpenCL support)

    --
    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...
  13. Re:What about OpenGL ? by chrb · · Score: 3, Insightful

    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.

  14. Re:What about OpenGL ? by geminidomino · · Score: 3, Informative

    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.

  15. Re:What about OpenGL ? by diego.viola · · Score: 2

    Have you tried reporting bugs to the nouveau developers about the 3D issues you have?

    The developers are very helpful and they helped me to resolve a few issues with nouveau in the past, they fixed the source of the problems I had.

    Please always file issues for any issues you have.

    Thanks.

  16. Re:What about OpenGL ? by diego.viola · · Score: 2

    Bad advice.

    File bug reports instead and use the blob until the problem in nouveau is fixed. If that issue is blocking you.

    The best way to support Nouveau is by using it and reporting issues.

  17. Re:What about OpenGL ? by blackpaw · · Score: 2

    I don't like the binary blobs for because they 1) break when I get automatic updates that include a kerne

    You must have a pretty off beat distro. dkms has been handling that problem for years.