Slashdot Mirror


Ask Slashdot: GPU of Choice For OpenCL On Linux?

Bram Stolk writes So, I am running GNU/Linux on a modern Haswell CPU, with an old Radeon HD5xxx from 2009. I'm pretty happy with the open source Gallium driver for 3D acceleration. But now I want to do some GPGPU development using OpenCL on this box, and the old GPU will no longer cut it. What do my fellow technophiles from Slashdot recommend as a replacement GPU? Go NVIDIA, go AMD, or just use the integrated Intel GPU instead? Bonus points for open sourced solutions. Performance not really important, but OpenCL driver maturity is.

110 comments

  1. fglrx sucks, but it sucks less in this case by Anonymous Coward · · Score: 1

    AMD with the proprietary drivers is the OpenCL of choice for buttcoin miners.

    1. Re:fglrx sucks, but it sucks less in this case by Anonymous Coward · · Score: 0

      Indeed. I would recommend anything but the AMD proprietary drivers.

    2. Re:fglrx sucks, but it sucks less in this case by Tough+Love · · Score: 1

      troll

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    3. Re:fglrx sucks, but it sucks less in this case by hairyfeet · · Score: 1

      Very much a troll as AMD has been paying for open source developers to speed the turn around of the FOSS drivers in the hope to get them to parity with the proprietary release and eventually replace it, and when it comes to GPGPU its not a secret Nvidia pushes CUDA while AMD pushes OpenCL (which this ask Slashdot is specifically asking for) so the choice seems to be pretty cut and dried.

      --
      ACs don't waste your time replying, your posts are never seen by me.
  2. nVidia w/ binary driver works by DeHackEd · · Score: 1

    Using the binary driver has been fine for me.

    Not much more to say on the matter. ffmpeg + x264 make use of it nicely.

    1. Re:nVidia w/ binary driver works by Anonymous Coward · · Score: 0

      ...but nvidia gimps gpgpu on their consumer parts while ATI does not.

      Although with the more complete introduction of the maxwell parts, it would appear than nvidia is gimping their consumer parts to a lesser degree now.

      All of the above said merely addresses the hardware part though. As far as software goes nvidia pushes CUDA, while ATI supports opencl which is up to v1.2 IIRC support. How well ATI supports it is something that someone who isn't a fanboi AND uses it to answer for you though.

      Personally I avoid ATI(or AMD if you like) like the pague as their drivers and software are asstacular, and I'm being kind to them with that characterization. I lived w/a notebook for ~4y that had an ATI 4850 mobility, the linux crapalyst drivers were utter shit, and the windows drivers marginally better. Last winter(almost a year ago to be precise) I built a completely AMD system, FX9590, R9 280X(didn't need another spaceheater at the time, but a few weeks later and that feature of the 290s would have been welcome although the thermal throttling would have not) and their drivers have gotten WORSE if you can believe it. Well more accurately the WHQL drivers actually did work a little better, as in under windows it managed to restore the display driver after doing the uninstall/upgrade whereas in the past with the notebook, that NEVER EVER worked, just a black screen and guessing if the driver install had finished yet or not so that I could reboot blindly. Then I made the horrendoud mistake of deciding that since they're releasing the WHQL drivers so infrequently now(used to be monthly) that I wanted to try the beta drivers for some added feature or other, turned out to be a GINORMOUS mistake. The driver would install/phail to install the display driver and/or install/phail to install the control center, etc. So after wasting about an hour of attempting installs, clean wiping, trying again, I gave up and went back to the 4m old WHQL driver.

      I was finally able to get a current beta driver to install some months later, but while there were no show stopping bugs, it still contains all of the usual non-readily apparent ATI bugs, e.g. borked opengl, etc. which gives me pause as to recommending them for opencl, but as mentioned above I'd wait for an actualy non-fanboi user to show up and comment or head on over to reddit.

      In closing while I'm not really a fanboi of either, it's just that hardwarewise nvidia is usually close or ahead AND their drivers just install and work. I cannot remember the last time that I ever had major problems with the nvidia drivers or even if I ever did while with crapalyst something ALWAYS did no quite work all that well, and in my 4850 case MANY of those not quite working got reported as "fixed" several times when they clearly were not, and to add insult to injury every time that ATI did that, they added a pile of NEW bugs, most of which lasted until they dropped support, i.e. gave up on fixing things, and this was back when nvidia was still releasing drivers for GF2, compatibility updates mostly, but still updates nonetheless.

    2. Re:nVidia w/ binary driver works by pecosdave · · Score: 1

      I'm with this guy, I've had nothing but nightmares from ATI historically, can't say I've given modern AMD a chance, but nVidia works so well I have little motivation to.

      --
      The preceding post was not a Slashvertisement.
    3. Re:nVidia w/ binary driver works by Anonymous Coward · · Score: 0

      > Using the binary driver has been fine for me. Not much more to say on the matter. ffmpeg + x264 make use of it nicely.

      I was exactly where you are yesterday.

      But now I have something to say on the matter: my Nvidia card is no longer supported (that 96.xx line of drivers). So, no proprietary driver for me. And either the Nouveau guys didn't get thinks quite right or Debian stable still didn't upgrade Nouveau to a fully working more recent version. And no, I can't go for a more recent distribution, like Ubuntu), because they decided my CPU is too old for them.

      I don't play games and my machine is ok to even play video. I don't need to sacrifice anything except the things I already don't use (like desktop indexing).

      So, bottom-line, it seemed a great idea to use Nvidia then... but on a second thought I should have gone with another option. For me, having GPL drivers now became a main requirement Just my 2 $/100.

    4. Re:nVidia w/ binary driver works by drinkypoo · · Score: 2

      But now I have something to say on the matter: my Nvidia card is no longer supported (that 96.xx line of drivers). So, no proprietary driver for me.

      You mean no new proprietary driver for you. The old one still exists. It didn't magically stop working because a new driver came out.

      I don't play games and my machine is ok to even play video. I don't need to sacrifice anything except the things I already don't use (like desktop indexing).

      You can install an indexed search tool on older Ubuntu versions. But regardless, if newer Ubuntu doesn't support older nVidia drivers, how is that nVidia's fault?

      Wait, I just saw this:

      And no, I can't go for a more recent distribution, like Ubuntu), because they decided my CPU is too old for them.

      CPU without PAE? How quaint. Maybe you should join this millenium. But there are some non-PAE kernels for Ubuntu floating around out there, sometimes.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:nVidia w/ binary driver works by Tough+Love · · Score: 1

      if newer Ubuntu doesn't support older nVidia drivers, how is that nVidia's fault?

      Because the driver is binary and the card specs are closed?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    6. Re:nVidia w/ binary driver works by drinkypoo · · Score: 1

      Because the driver is binary and the card specs are closed?

      So what, the drivers don't work with the new kernel or something?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re: nVidia w/ binary driver works by Anonymous Coward · · Score: 0

      Exactly.

    8. Re: nVidia w/ binary driver works by drinkypoo · · Score: 1

      Well, nothing lasts forever. I, too, hope that someday we will have nVidia cards with open drivers. My understanding is that their geforce line is too patent-encumbered for that to ever happen to them (they pretty much went full-Microsoft during the original Xbox era) but that they more or less own their mobile (as in handheld) GPUs outright, and if they ever become the basis for a desktop product, we might see an open version of those drivers. Nouveau is pretty much unusable for a lot of users, and useless for even more.

      Problem is, only a subset of ATI cards are well-supported by the FOSS driver, and the official drivers are poop. When more of the cards are supported and it takes less time for the cards to be supported, maybe I will consider ATI cards again. But every time I do, I regret it deeply...

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    9. Re:nVidia w/ binary driver works by Anonymous Coward · · Score: 0

      > You mean no new proprietary driver for you. The old one still exists. It didn't magically stop working because a new driver came out.

      It did stop working, as a matter of fact. It was being updated to work with recent kernels. Since they stopped support, no more updates; now I must use an old distro if I want to use it. No, thanks, that's insecure. Thus, no new driver for me and, as the old it's not fit for use anymore, no old driver, too.

      New distro versions won't offer the old driver; the old versions need repositories which will close down, if not already.

      > But regardless, if newer Ubuntu doesn't support older nVidia drivers, how is that nVidia's fault?

      Ubuntu is cannot be at judgment here, IMHO. They provide a house to receive guests. Nvidia chose not to bring their old driver, it's not like Ubuntu prevented them from updating their work.

      Former clients need some kind of support... if someone isn't able to cater for previous customers, at least open source the drivers. It's even a good move, because when the customer is forced to buy a new product because the old is no longer supported, the temptation to try a competitor is considerable.

      Me> And no, I can't go for a more recent distribution, like Ubuntu), because they decided my CPU is too old for them.

      > CPU without PAE? How quaint. Maybe you should join this millenium. But there are some non-PAE kernels for Ubuntu floating around out there, sometimes.

      My CPU has PAE -- though that would also make a good point, too, since you can go up to 4GB without PAE... and which applications do require 5 or 6GB? I see Windows notebooks sold with 2GB and 4GB. What good is PAE in that case? Anyway, I'm not discussing Ubuntu, I don't blame them for any video card not working (or keyboard, or mouse etc.) My comment was somewhat offtopic, I was just venting my frustration, which is actually not that hard to solve: I just have to use Arch, Gentoo or other source-based Linux distro. If it's wortwhile, that is: I'd like to know for sure that some glitches were solved in recent Nouveau versions. Otherwise I'll be having a lot of trouble and still have a badly working card. Of course, it's easier to try a binary-based distribution first...

      BTW, just as a hint for someone with the same problems, try the old NVidia card with the fbdev driver (which actually uses Nouveau, too, but at 16-bit color depth). Things worked quite well and video was even better than expected (maybe normal flash compression also removes colors, I don't know).

      And I was just remembering how I got Nvidia forgetting one day support would stop with proprietary software. I'm not radical, I use flashplayer and other proprietary things. But that was an occasion I saw having open source drivers would save me from a lot of trouble. As you point out, old versions would still work.

      Just don't use them on the internet...

    10. Re:nVidia w/ binary driver works by Tough+Love · · Score: 1

      Not only that, but even when it does work it tends to break on dist-upgrade (or yum equivalent). Needs fiddling. Life is too short for that, that's the kind of crap I binned Windows for. Plus, the binary block tends to do things its own way whether or not that plays nicely with other components, not being subject to peer review and all.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    11. Re:nVidia w/ binary driver works by CronoCloud · · Score: 1

      It did stop working, as a matter of fact. It was being updated to work with recent kernels. Since they stopped support, no more updates; now I must use an old distro if I want to use it.

      How old is that GPU, considering that the rpmfusion builds for fedora 21 support everything back to the Geforce 6xxx series. Perhaps it's time to upgrade the video card?

    12. Re:nVidia w/ binary driver works by Anonymous Coward · · Score: 0

      I don't use Fedora (which seems to be a nice distro nonetheless). The card is an old but perfectly working Geforce 4 MX ( http://en.wikipedia.org/wiki/GeForce_4_series ), fast enough fast for any desktop environment, for video (vlc, mplayer) and even for flashplayer (if I use version 10.3, which I won't, out of security concerns).

      I concede it's rather old (last updated 10 years ago), but it was very fast when new and now it still is a match for some onboard video. Probably won't be enough for Direct 12, but then if it can run Quake 1/2/3 on it, it will be enough -- I'm old, too ;-P.

      Frankly, whenever someone says "ditch the thing, it's too old", if it's about a car, I guess it's ok... after an old car could be dangerous. But what's wrong in using such an old card with a top-notch 16:9 Full HD monitor? Are the pixels going to appear yellowed? I thought not.

      I also can buy a new one for my use, but I think the many cards with that GPU all over the world could be put to good use; it would be a shame to lose them due to software rot...

    13. Re:nVidia w/ binary driver works by CronoCloud · · Score: 1

      The card is an old but perfectly working Geforce 4 MX ( http://en.wikipedia.org/wiki/G... ), fast enough fast for any desktop environment, for video (vlc, mplayer) and even for flashplayer (if I use version 10.3, which I won't, out of security concerns).

      While the Geforce 4 MX's do accelerate MPEG2 video, most video these days is MPEG4/H264, you want at least a 7xxx series card to hardware accelerate that. If you've got AGP, then a 7950 GT is the best you can get.

      I concede it's rather old (last updated 10 years ago), but it was very fast when new and now it still is a match for some onboard video.

      No, it's not equal to some onboard video, unless that video is old. Even the motherboard graphics on this machine, a Nvidia 6150SE, is better. That 4MX is running around 500MFLOPS. A 6150SE runs around 850MFLOPS. An intel HD 4600 runs around 432GFLOPS. I can understand not wanting to just throw the thing away, but there comes a time when an old card can't keep up.

    14. Re:nVidia w/ binary driver works by Anonymous Coward · · Score: 0

      Well, first of all, thanks for going thru the trouble to enlighten me; I'm a mere user while you obvious understand GPU cards quite well.

      I also must say I agree about new video formats making the need for faster hardware. We got public TV over here which uses MPEG4 and AFAIK there's no way to downgrade the streaming.

      Youtube OTOH offers a choice of formats, which would explain why my card has worked so well until now.

      > I can understand not wanting to just throw the thing away, but there comes a time when an old card can't keep up.

      If I had 1 single computer it would have a modern card; but I got 2 (maybe 3) old PCs on which a new card would be hampered by the other components. But I understand your point. It's frustrating not to be able to run a recent game because the video card sucks. The decision then must be:
      - buy another video card or
      - buy another computer and keep the old gig for lesser tasks.

  3. You're not going very far with nVidia by Anonymous Coward · · Score: 4, Interesting

    They're too busy with CUDA to give two shits about decent OpenCL performance.

    That's why the HD Radeon series was the mining GPU of choice for Bitcoin.

    1. Re: You're not going very far with nVidia by Anonymous Coward · · Score: 1

      http://www.phoronix.com/scan.php?page=article&item=nvidia_gtx980_opencl&num=1

    2. Re: You're not going very far with nVidia by Anonymous Coward · · Score: 2, Interesting

      The opencl performance on nvidia 900 series gpus is actually pretty good. They have finally come around.

    3. Re: You're not going very far with nVidia by Anonymous Coward · · Score: 0

      http://www.phoronix.com/scan.php?page=article&item=nvidia_gtx980_opencl&num=1

      Gaaa! Don't go to that link. Site riddled with pop up ads!

    4. Re: You're not going very far with nVidia by OrangeTide · · Score: 2

      I don't see any pop-ups?

      Oh that's right, it's 2015 and the rest of us have blockers installed.

      --
      “Common sense is not so common.” — Voltaire
    5. Re: You're not going very far with nVidia by cheesybagel · · Score: 3, Informative

      If you're fine with being stuck with OpenCL 1.1 while AMD has OpenCL 2.0 support sure. NVIDIA treats OpenCL like a bastard stepchild.

    6. Re: You're not going very far with nVidia by Anonymous Coward · · Score: 0

      Sadly that's a stellar example of the *ahem* limited utility of phoronix benchmarks. Look at all those pretty barplots and tell me, how does the GTX 980 fare in double precision OpenCL? (hint: poorly, the SP:DP ratio seems to be about 32:1, anandtech's benchmark shows even a Radeon HD 7970 destroying it on FP64). So if I wanted to know whether the GTX 980 is a good investment for integer, single or double precision OpenCL number crunching, phoronix is the wrong place to look for relevant information. The problem is, different problems require different types of operations, so if you're heavy on linear algebra chances are FP64 is a must and the GTX 980 is a poor choice, whereas if you're crunching integers for crypto, or doing accelerated image processing it's probably great (but check your memory bandwith constraints just in case).

    7. Re: You're not going very far with nVidia by cheesybagel · · Score: 3, Informative

      Troll uh? Slashdot keeps getting dumber every month. C++ apologists, Apple apologists, NVIDIA apologists. Are you all dumbasses or has this turned into a cesspool of astroturfers and sycophants?

      NVIDIA has removed OpenCL support from the debugger, has not updated their OpenCL from version 1.1 for years unlike either AMD or Intel which have had 1.2 and 2.0 releases since then. They removed OpenCL support from their standard Linux dev kit and it has to be installed separately. They want to push everyone into CUDA. They have someone from NVIDIA chairing the OpenCL Khronos committee but then again Microsoft also used to have a big presence in the HTML committee while delivering the worst standard compliant browser in the market.

    8. Re: You're not going very far with nVidia by Anonymous Coward · · Score: 0

      An IE user, perhaps?

    9. Re: You're not going very far with nVidia by Anonymous Coward · · Score: 0

      No such thing. You would have to revive dinosaurs out of amber before such a thing became plausible.

  4. Intel by Anonymous Coward · · Score: 2

    Intel is your best bet for a mature open sourced opencl compatible GPU, if performance doesn't matter that is..

    1. Re:Intel by Anonymous Coward · · Score: 0

      +1

    2. Re:Intel by unixisc · · Score: 1

      Actually, how inferior is Intel performance to either NVIDIA or AMD/ATI?

    3. Re:Intel by Anonymous Coward · · Score: 0

      Speaking as an OpenCL developer and an avid AMD fan, Intel's GPU compute performance isn't actually bad, and good on them for supporting OpenCL 2.0 at all.

      None of Intel's GPU parts break 1.0 teraflop/s, though. A high-end i7 has about 0.5 to 0.8 teraflop/s of GPU compute power, which is comparable to AMD APUs like the A10-7850K - except that AMD's APUs are meant for notebooks and HTPCs.

      For serious OpenCL computing, you really need something like an AMD R9 285, which pushes around 3.2 teraflop/s. There are faster cards, but the R9 285 is pretty cheap, can be pretty compact, and it's the most modern & future-proof architecture.

      So there's no reason not to use a recent Intel CPU/GPU for OpenCL development. The performance gains from porting your code to OpenCL will be huge, whichever way you go. You can start with Intel's fairly complete OpenCL 2.0 support and step up to a discrete GPU later.

      I'd recommend doing just that, actually. Start with either an Intel or AMD CPU with integrated graphics, get familiar with OpenCL 2.0, and add an R9 3xx (Pirate Islands) when they become available.

      We can safely ignore NVidia for the foreseeable future. They appear to have no interest in OpenCL.

    4. Re:Intel by Anonymous Coward · · Score: 0

      Intel doesn't make GPUs; they make CPUs. AMD/ATI is likely the best bet.

    5. Re:Intel by Anonymous Coward · · Score: 0

      Very inferior, go look at the benchmarks available all over the google search web.

  5. Future of GPU is Open Standards by Anonymous Coward · · Score: 5, Informative

    The future of GPU's is open standards. GPU's won't take off until all major vendors support the latest (OpenCL 2.0) standards
    Here is the list of conformant products
    https://www.khronos.org/conformance/adopters/conformant-products#opencl

    1. Re:Future of GPU is Open Standards by Arakageeta · · Score: 2

      I greatly prefer open standards as well. However, CUDA is considerably less painful to work in than OpenCL. NVIDIA has also demonstrated more commitment to capturing GPGPU business than AMD. For example, the first supercomputer on top500.org with AMD GPUs ranks in at 94th. In contrast, NVIDIA GPUs are used in the 2nd ranked supercomputer. Xeon Phi is gaining in popularity, but Intel wants you to work in CilkPlus not OpenCL.

      That said, I believe the future is tight integration (i.e., cache coherence) between the GPU/accelerator and main memory. AMD's HSA is a step in the right direction. CUDA has some catching up to do in this regard.

    2. Re:Future of GPU is Open Standards by Anonymous Coward · · Score: 2, Insightful

      I greatly prefer open standards as well. However, CUDA is considerably less painful to work in than OpenCL.

      I'm not sure how you came to this conclusion. I ported a debayering algorithm form CUDA to OpenCL and as far as the kernel code was concerned, the only thing I even had to change was the expressions which retrieve the local and group IDs. The housekeeping code required on the host side is totally different and slightly more complicated for OpenCL, but it's worth the tradeoff in order to be able to run your GPU code on AMD and Intel cards as well as NVidia.

    3. Re:Future of GPU is Open Standards by Anonymous Coward · · Score: 1

      (I'm not the GP)

      Well, among other things:

      - CUDA is C++ish, OpenCL is (until now) C-ish. This has many implications, but no templates in OpenCL = pain, or macros. Macros = debugging pain.
      - With CUDA, you can just compile the damn code, no need for all the dynamic compilation mess (ok, it's not a mess - but it is when you don't need it to be dynamic). The other way around it's possible that OpenCL is the better alternative, but I've not had to compile dynamically yet.
      - This is more of a personal impression, but OpenCL seems a lot more verbose with overhead/boilerplate code than CUDA.
      - Profiling is nicer (although the Linux Eclipse-based visual profiler is missing a zillion features! Arrgh!)
      - Richer built-ins, whether they're hardware-level or just compiler-level. Does OpenCL has the __ballot() functionality?

    4. Re:Future of GPU is Open Standards by Anonymous Coward · · Score: 0

      Check out runtime compilation from CUDA 7.0 - now you can pick which you want in CUDA.

    5. Re:Future of GPU is Open Standards by Fwipp · · Score: 1

      GPUs have been doing just fine since the '90's.

    6. Re:Future of GPU is Open Standards by Anonymous Coward · · Score: 0

      The tools and platform stability is what makes CUDA. The ecosystem built around OpenCL is a pile and tools are severely lacking. The best OpenCL debugger is an nVidia tool primarily designed for CUDA, this is pitiful quite frankly. Consistency across devices is also much better in CUDA. It's very much akin to DirectX vs OpenGL scenario game developers find themselves in, OpenGL might be free but it's implemented like ass on every device and you can't even expect minimal compatibility between various devices across different platforms.

      CUDA also benefits from various miscellaneous things, nVidia is very eager to work with developers doing novel/challenging things with CUDA. CUDA being very structured with well defined behavior by nVidia allows really cool things like this to happen: http://www.alexstjohn.com/WP/2014/02/06/cuda-6-0-neutrino-1_1/

      (Context: I've developed Reverse Ray Tracers in CUDA and OpenCL for an AR startup, currently work in the games industry)

    7. Re:Future of GPU is Open Standards by X0563511 · · Score: 1

      and Intel cards as well

      Why would you do this? Wouldn't you be better off using the CPU in this case?

      --
      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...
    8. Re:Future of GPU is Open Standards by MorphingDragon · · Score: 1

      The Xeon Phi says hi.

    9. Re:Future of GPU is Open Standards by walshy007 · · Score: 1

      CUDA is C++ish, OpenCL is (until now) C-ish.

      To many, this could be considered an advantage.

    10. Re:Future of GPU is Open Standards by epine · · Score: 1

      NVIDIA has also demonstrated more commitment to capturing GPGPU business than AMD.

      FTFY.

      Once captured, twice cry.

  6. nVidia Consumer Card by Anonymous Coward · · Score: 2, Interesting

    I would go with an nVidia consumer card. They may be more expensive than the AMD ones. On the other hand, they offer CUDA and OpenCL support and are much faster.

    For the newer ones (GTX9xxx) you will need to wait a little bit until the driver shipped with CUDA actually supports the cards though.

    1. Re:nVidia Consumer Card by ultranova · · Score: 2

      I would go with an nVidia consumer card.

      ...On Linux?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    2. Re:nVidia Consumer Card by Arakageeta · · Score: 2

      As long as you're all right with proprietary drivers, NVIDIA's Linux driver is quite solid. It needs to be, as it is used in all of their supercomputers.

    3. Re:nVidia Consumer Card by jedidiah · · Score: 1

      Get back under your bridge... troll.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    4. Re:nVidia Consumer Card by davydagger · · Score: 1

      they outperform windows on the same machine with binary drivers.

    5. Re:nVidia Consumer Card by aliquis · · Score: 1

      go with an nVidia

      ...On Linux?

      Definitely.

    6. Re:nVidia Consumer Card by TehZorroness · · Score: 1

      I picked up an nVidia GTX 970 about a month ago, and though I had to tinker a little bit with Debian to get it up and running, after I got the newest drivers installed it's been running rock solid and I haven't noticed much of a difference in performance between Debian and Windows 7 (Maybe 4 more fps in a game on windows where the game is running with the fps in the 290s. This wasn't an ideal test though because the renderer on windows was DirectX 9, while on Linux it was OpenGL). To get it going in Jessie, the upcoming stable release, all you need to do is add experimental to your sources and apt-get -t experimental install nvidia-kernel-dkms. Experimental should be pinned by default so things won't get installed unless you are explicit.

      Before I put the 970 in, I had been getting by with the integrated graphics in my i7-4770k. If you haven't built a new PC in a while, the capabilities of Intel's integrated graphics will blow you away. Yes, dedicated cards are still miles ahead in performance, but on the Haswell HD Graphics 4600 GPU I was able to play some pretty modern games at modest settings. The coolest thing about it though is the completely open source graphics drivers and stack on Linux. If you're looking for the best performance possible on a completely open source stack, Intel is your answer.

      I own a laptop with an ATi graphics chipset and their drivers are absolute garbage. Their Linux driver causes visual artifacts all the time on a composited GUI, and the machine to crashes on shutdown one out of 5 times with fglrx dumping core causing the machine to never shut off (and potentially turn my laptop bag into a toaster oven x_x). I guess I'm going to return to the open source radeon drivers now that I can scratch my gaming itch on the desktop.

    7. Re:nVidia Consumer Card by JustNiz · · Score: 1

      I second that. AMD sucks hard on linux compared to nVidia.

    8. Re:nVidia Consumer Card by ultranova · · Score: 2

      Get back under your bridge... troll.

      Thank you for your well-reasoned analysis of the problems with binary-only drivers on Linux, and why my misgivings about them arenot only unfounded but must be a case of arguing in bad faith. Your contribution to the discussion has enlightened us and enhanced the human condition.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    9. Re:nVidia Consumer Card by Tough+Love · · Score: 1

      I own a laptop with an ATi graphics chipset and their drivers are absolute garbage. Their Linux driver causes visual artifacts all the time on a composited GUI, and the machine to crashes on shutdown one out of 5 times with fglrx dumping core causing the machine to never shut off (and potentially turn my laptop bag into a toaster oven x_x). I guess I'm going to return to the open source radeon drivers now that I can scratch my gaming itch on the desktop.

      Your report just screams "I'm running an ancient kernel and distribution with an early, dodgy compositor." Try upgrading to current and report your results. To prove you're not a troll, post a bit of the oops message if you get a crash on an up to date system.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  7. Seems easy enough. by Anonymous Coward · · Score: 1

    Nvidia only supports OpenCL as an aftertought, prefering as always to offer up their proprietary CUDA shit instead. So go for an AMD card.

    1. Re:Seems easy enough. by Anonymous Coward · · Score: 0

      Your information is about 2 years out of date.

  8. It's not very complicated by Anonymous Coward · · Score: 0

    At least at the current time it's not very complicated:

    For game, CAD, visualization, and other 3D type stuff then nVidia all the way. They are much less buggy than AMD/ATI in OpenGL and whatever Microsoft uses these days.

    For GPU computation then AMD/ATI has the performance advantage and OpenCL advantage (ie. OpenCL 2.0 compatible which there is no nVidia here). Although the very latest nVidia 900 stuff is catching up in performance, they still don't support OpenCL 2.0 AFAIK.

    So if you want to do 3D and visual stuff then go nVidia. If you just want to compute stuff in the background then AMD/ATI.

  9. Intel GPU? by Anonymous Coward · · Score: 0

    I find old Intel 4xxxx chips slow for 3D graphics. I can't say anything about the newer integrated video chips though. Good luck trying to find a compatible video card. Any reason why you can't buy a cheap Windows computer with a 750 watt power supply and put in a $400 video card?

  10. Re:So... by Anonymous Coward · · Score: 0

    So, why did you answer?

  11. Just compile OpenCL for the CPU by Anonymous Coward · · Score: 0

    if performance is not important, e.g. you only want to play with openCL for learning purposes. You can get some more speed with the Intel HD graphics, especially in the recent CPU's, or similarly with AMD APU's. Add-on cards only get interesting when you need higher performance than that.

  12. Re: So... by Anonymous Coward · · Score: 0

    Anyway, a comment is not always an answer.

  13. OpenCL for CT Image Reconstruction by captnjohnny1618 · · Score: 5, Informative

    I work in a lab that does CT image reconstruction (all gpgpu computing) as part of what we do. I've been the one to program it using OpenCL under Ubuntu (I insisted I use linux; windows was too infuriating) so I'll share my experience.

    I have two Nvidia 780 GPUs in my machine (an Alienware Aurora R4) and getting everything running under linux was actually much smoother than my initial attempt to get OpenCL running under Windows 8, so I don't think you'll have too much trouble there. I use the binary blob from Nvidia and it has been pretty stable with the occasional driver crash for whatever reason (maybe once in a six month period, but things just restart and it's fine. It's usually my fault for writing shitty code). I personally really like this setup and the only thing that could make it better would be more GPUs and a great, solid open source driver.

    I would say that if you're going to use Nvidia GPUs for GPGPU computing, consider learning CUDA. Syntactically it's very similar to OpenCL but the tools you have access to for debugging, profiling, and increasing performance as well as the overall stability of the programs seems to be much much better. I suppose we should expect that though from a proprietary language, on proprietary hardware, using a proprietary driver. I've heard that you can get better performance (read: speedups) using CUDA over OpenCL, but I've never tested that for myself, or seen proof firsthand.

    I've learned OpenCL, and I like it's portability and openness, but I look at some of the stuff my friends can do with CUDA and I can't say that I'm not envious. Mainly what I'm referring to is Nvidia's NSight program, which can do OpenCL if you're willing to pay for the "pro" edition. Also, Nvidia GPUs are scalar based, so if much of you speedup would come from using OpenCL's vector structures, that won't happen on Nvidia GPUs the same way that it would on AMD. Programming might be more convenient, but performance will stay the same.

    Hope that helps. Feel free to ask more questions.

    1. Re:OpenCL for CT Image Reconstruction by captnjohnny1618 · · Score: 4, Informative

      Also, just to add, from everything I've read out there as of right now the consensus is that AMD's support for OpenCL is better than Nvidia. That being said, performance is dependent on a lot of things (the programmer, the algorithms used, how the problem is parallelized, etc.) and the raw power of Nvidia GPUs can, in some cases, despite "less support," still be better. Personally, I would choose Nvidia over AMD given the chance to choose again.

    2. Re:OpenCL for CT Image Reconstruction by Anonymous Coward · · Score: 0

      Also, Nvidia GPUs are scalar based, so if much of you speedup would come from using OpenCL's vector structures, that won't happen on Nvidia GPUs the same way that it would on AMD. Programming might be more convenient, but performance will stay the same.

      Modern AMD GPUs (GCN architecture) are also scalar based. On either GPU, you might see speedup from vectorising due to better instruction-level parallelism, which can hide more memory latency and take advantage of dual-issue (search for GPU thread coarsening).

    3. Re:OpenCL for CT Image Reconstruction by captnjohnny1618 · · Score: 1

      I work for a lab at UCLA. Our group currently has no industry affiliation. Previously, although not since I have been part of the group, we received funding from Siemens.

    4. Re:OpenCL for CT Image Reconstruction by captnjohnny1618 · · Score: 1

      Perhaps I should also add at this point that all comments and opinions are my own. I support Nvidia based on my own experience, but I receive no benefit from them as a result.

  14. Try what you have first by iamacat · · Score: 2

    Integrated graphics in your CPU will have a modest performance but stable and open source OpenCL driver. If it proves too slow for your particular project, you will be able to compare benchmarks and get the cheapest card that is fast enough to, say, run your animation at 60fps. If you are planning to distribute your code, you will anyway need several GPUs to test with.

  15. Re: So... by Anonymous Coward · · Score: 0

    I'll bet your a smash hit at parties.

  16. AMD by Anonymous Coward · · Score: 0

    All right, with the disclaimer that I haven't touched this in a year, I was doing OpenCL dev with a 5850 and/or 6870 in linux, and I was pretty happy with it. I'll probably never go back to Nvidia now. I think, and I might be out of date here, that AMD is a bigger bang for the buck when it comes to openCL. And I don't remember any serious problems with the AMD drivers. Nvdidia was a real poor choice for bitcoin mining, which is why I went with the AMD, but I also did so at the time because I knew I was going to be doing a lot of openCL dev and didn't need crazy double floating point performance per se. I think the balance might have shifted a bit now, but since I was more interested in integer/etc. operations per second than double flops, it was a no-brainer.

    So I'm guessing you 5xxx is not a 58xx, otherwise you wouldn't have asked this question. I say AMD all the way, unless you absolutely need double performance above all else and Nvidia is still king of that... or there's some other dimension I'm not thinking of right now. But still, I think my newer AMD card has a better double ratio than the previous, so AMD might have caught up by now. I haven't shopped for these in years.

  17. Radio astronomy experience by Anonymous Coward · · Score: 0

    My experience with AMD's Linux OpenCL drivers has been that they're very fast when they work, but that they're very buggy. They also tend to be things that are not that obvious and are difficult to work around, like data corruption when using 3-element types, mis-compilation of code, random X server hangs and so on. I pretty much expect any large code-base that hasn't been tested on AMD before to hit some driver bug. And when it does break, it frequently doesn't die cleanly, but rather freezes up the X server and creates unkillable CPU-hogging processes.

    The NVIDIA OpenCL drivers are much, much more solid. I can only recall finding one bug in them over 3-4 years (a thread safety issue with subbuffers). However, it's the unloved sibling of CUDA and they don't put any work into new features - the drivers are still at OpenCL 1.1, they implement a very minimal set of extensions, and newer hardware features (such as intra-warp shuffle and floating-point atomics) are not accessible. They've also taken out support for OpenCL from their development tools (profiler etc), and it seems they only have a 32-bit GPU address space (it's impossible to allocate more than 4GB even on a K40).

    My current approach is to write code that targets both OpenCL and CUDA, using a bunch of macros and wrappers and an abstraction layer on top of PyCUDA and PyOpenCL, so that we can run essentially the same code on NVIDIA via CUDA or AMD via OpenCL. Surprisingly, OpenCL on NVIDIA is fractionally faster than CUDA (maybe due to the 32-bit address space). The CUDA path is by far the easiest to debug and optimise: the NVIDIA profiler is generations ahead of AMD's in terms of providing insight into bottlenecks.

    1. Re:Radio astronomy experience by cheesybagel · · Score: 1

      newer hardware features (such as intra-warp shuffle and floating-point atomics) are not accessible

      You can use inline PTX inside OpenCL code on a NVIDIA card. I use it for the popcnt instruction, which is named popc in PTX, since NVIDIA is too lame to implement OpenCL 1.2 support on their driver which would have that as standard even if the hardware has the instruction support for it.

  18. What do you need the 3D for? by houghi · · Score: 1

    Just curious. No flame bait. What do you need the 3D for? I have 3 screens and don't do anything 3D related. I just have the cheapest cards that I can find. I use NVidea as I like the nvidia-settings sofware.

    I use three (differnt) cards. Each connected to a differnt monitor running in standard mode (no xinerame, no mirrors). Cheaper to have three cheap cards then one that could do all three easily. And by cheap I mean the cheapest that is available and for the connection that I need. Under 50EUR for 3 cards.

    So I am curious what you need the 3D for.

    --
    Don't fight for your country, if your country does not fight for you.
    1. Re:What do you need the 3D for? by Anonymous Coward · · Score: 0

      Not the 3D as much as the general purpose GPU computing power. Your cheap cards will not have that.

    2. Re:What do you need the 3D for? by Anonymous Coward · · Score: 0

      TFS states clearly that he wants to do GPGPU development. Unacronymized, the fucking summary states clearly that he wants to do general purpose graphical processing unit development.

    3. Re:What do you need the 3D for? by Bram+Stolk · · Score: 1

      Submitter here:
      I don't need 3D as in the sense of rasterizing triangles in 3D space.
      I need the GPU to do General Purpose computing, as clearly stated in the summary.

      In my case: I need to do a massive amount of intersection tests between rays and AABBs.

      --
      Bram Stolk http://stolk.org/tlctc/
    4. Re:What do you need the 3D for? by Anonymous Coward · · Score: 0

      This is probably not a useful answer because I suspect you want a solution that actually exists, but: Imagination is quite strongly pushing their new [PDF] ray tracing technology, which is essentially a hardware accelerator for ray/AABB and ray/triangle intersection tests, tightly coupled with a normal PowerVR GPU. They claim it's hugely more efficient than emulating the same behaviour with GPGPU. I guess the downsides are that if you don't care about power, you can easily buy a desktop GPU and brute-force it with GPGPU; and that the old accelerator cards seem pretty expensive, and the new SoC-based solution doesn't exist as an actual product yet. But it might become an interesting solution in the near future.

  19. Depends by Anonymous Coward · · Score: 0

    There are pros and cons to all architectures.

    Last time I used OpenCL on AMD, it had assorted little bugs and quirks, sometimes resulting in horrifyingly inefficient low-level code, and I had to spend much time tweaking my source to extract decent performance. Integer performance in particular was pretty bad, and AMD developers were pretty much outright saying that it was not their high priority area.
    The biggest strength of AMD is double precision floating point performance. NVIDIA's gaming cards are crippled in terms of DP performance, and you need a Titan to get around that. (AMD has a couple of cards in the sub $300 range which approach 1 teraflop of theoretical DP throughput. The best NVIDIA can offer for less than $1000 is 0.2 teraflop.)
    My personal all-around favorite is NVIDIA CUDA, it's old, stable, easy to use, and all-around fast (though, as mentioned by other commenters, their OpenCL may be their red headed step child.)
    Intel's OpenCL for the integrated GPU is worth looking into as well, as it may be superior for many tasks. While it lacks the raw horsepower of gaming chips, it has more sophisticated execution units and a major advantage is that you're working directly with the L3 cache. With AMD or NVIDIA, you have to exchange data between the system memory and the graphics card via PCIe bus, which is not particularly fast, even in the 3.0 incarnation - we're talking somewhere on the order of 10 GB/s, or 1/20'th of the speed with which the GPU can access its own onboard memory. It's not uncommon to have tasks where sending results back from the GPU takes longer than the actual computation. (Sometimes you can overlap compute and data transfer, sometimes you can't, and it's a hassle to do anyway.)

  20. Well... by dimko · · Score: 1

    Don't know about pure OpenCL. But... Intel, has over all well support and not too bad compared to windows counterpart drivers. It lacks OpenGL 4 features. It only uses OpenGL3. AMD has open source drivers, which mostly suck. Performance in games is rather bad. Same as synthetic tests. Many people report about rather good bitcoin performance. Proprietary drivers are a bit better on performance but worse on stability. Nvidia, has 2 types of drivers. Reverse engineered ones, which suck and blow when it comes to performance and binary ones. Nvidia with binary drivers has highest performance + stability in games. It's on pair with AMD on bitcoin stuff. In reality no one can say what is good for OpenCL in Linux, because there are no OpenCL apps in Linux. I am no Nvidia fanboy, but i am Nvidia user for a while. They are safest bet on quality/performance, but AMD may as well worth your while, especially if you are dev and don't mind reporting issue to kernel devs, etc.

  21. Don't ignore CPU-based OpenCL, consider Numpy by Anonymous Coward · · Score: 3, Interesting

    I recommend the ocl-icd package to make it easy to switch OpenCL implementations on the fly. Also, download the Intel and AMD OpenCL runtimes which support CPU-based computation using SIMD instructions and multicore parallelism, and try them out as well as GPUs. You can then micro-benchmark your own algorithms on different vendor runtimes quite easily. I have found that the Intel OpenCL does a very decent job of auto-vectorization, so my scalar-based OpenCL code ran almost as fast as my hand-vectorized version that uses OpenCL vector intrinsics.

    In my case, my image processing algorithms are more memory-bound and a recent 2.4 GHz mobile Intel quad-core outperforms my desktop NVIDIA GTX 760 on the same OpenCL code. Both of these trounce my c. 2010 Xeon E5530. I had no idea how much Intel SIMD performance has improved until I tried this and saw for myself. I think a big advantage is that the CPU doesn't have to transfer the large N-dimensional arrays back and forth over the PCIe bus, but can just get to computing immediately. This may not hold true for some algorithms that crank much longer on a small input or output array.

    It is also important to realize that OpenCL parallelism won't save you from poor algorithm choices. You need to be open to experimentation and reevaluating your assumptions as you explore new problems. I work with Python, Numpy, and PyOpenCL so that I can focus on the math first, and then selectively replace the underlying algorithms with different implementations as needed. Being able to work at a high level of abstraction makes it so much easier to explore the math you want to perform, without writing a lot of low-level code that gets thrown away.

  22. AMD Obsoletes Its GPU Card Drivers Too Quickly by wahini · · Score: 1

    I have used 2 AMD cards programming OpenCl on Linux, a HD4650 and a HD7770. My 4650 card was obsoleted by the AMD proprietary drivers in 18 months, my HD7770 is being obsoleted (for new Linux and OpenCL support) by AMD as I write this, after about 2 years. This means if I want to keep doing OpenCl development, I have to use the old driver and old kernels, old xservers, and current version of OpenCl, etc.
    I don't think think I will buy AMD again for this reason. Nvidia doesn't obsolete their cards anywhere near as quickly on Linux. If you buy a top of the line AMD card, you will probably get more than 2 years of support, but you lose even more money when it is obsoleted.
    I will buy Nvidia next time, but only one of their new Maxwell chipsets or newer, but admittedly, that won't be a perfect solution either. Both solutions have major flaws. If you can afford to buy new GPU cards every 2 or 3years, go with AMD, otherwise, get Nvidia.

    1. Re:AMD Obsoletes Its GPU Card Drivers Too Quickly by walshy007 · · Score: 1

      The solution to this is to use the open source amd drivers.

      Opencl on it is only just starting to become mature, but it is where all the future development really is and is plenty usable for many current tasks.

  23. AMD is the only real option by SoftwareArtist · · Score: 4, Informative

    If you want to write modern OpenCL code and run it on a GPU, AMD is your only option.

    In terms of performance, NVIDIA is actually the best. But they've been stuck at OpenCL 1.1 for years, while everyone else has long since moved to newer versions. Until (if) they add OpenCL 2.0 support, they'll be a bad choice.

    Intel doesn't support running OpenCL on the GPU under Linux. See the chart at the end of https://software.intel.com/en-.... You can still write OpenCL programs, but you'll just be running them on your CPU.

    --
    "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
    1. Re:AMD is the only real option by JustNiz · · Score: 0

      >> They've been stuck at OpenCL 1.1 for years

      That's because their own API (CUDA) is far better and more developed.

    2. Re:AMD is the only real option by Anonymous Coward · · Score: 0

      Do you listen to the crap you fling out of your mouth? Even though CUDA is a better language at heart because it uses C++ rather than more C-ish, that's no reason to be stuck on 1.1 for 4 years after 1.2 came out or 2.0 which carries some nice stuff. And most of the time you can still get by pretty darn well with OpenCL / C kernels.

    3. Re:AMD is the only real option by Anonymous Coward · · Score: 0

      User: "Your ketchup tastes like shit!"

      nVidia: "Try our mayonnaise, it's delicious."

      User: "... but... I wanted ketchup..."

    4. Re:AMD is the only real option by Anonymous Coward · · Score: 0

      Beignet supports OpenCL 1.2 on Intel GPUs on Linux, and is developed largely by Intel people. It's separate from their proprietary Windows OpenCL, so it's not as mature and has none of the tool support, but in my limited experience it actually works fairly decently.

    5. Re:AMD is the only real option by Anonymous Coward · · Score: 0

      Right now there is no reason for NVIDIA to invest in OpenCL support, and every reason not to invest. If enough people are interested it should be possible to write an open source OpenCL 2.0 to CUDA layer, translating the API calls and generating PTX bytecode(or whatever) for the GPU programs. People managed to do that with DirectX and OpenGL in both directions.

  24. AMD all the way, GCN R285 or R290 by Anonymous Coward · · Score: 0

    Go with a R285 (GCN 1.2) or R290 (GCN 1.1) for cost effective but getting all the features. If you want double floating point performance go with a 7970 (pre GCN) for now. The wikipage http://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units is an excellent differentiator of card performances:

    Use CodeXL too. Debugging is still pretty poor but even on nvidia this was painful last I recalled - it's always difficult to debug parallel programs - you just have printf or targeting the CPU (which is something nvidia code cannot do) and running under gdb. Supposedly visual studio has some slightly better integration or did at one point in time so you might check that out for debugging but profiling under CodeXL is fairly usable / comparable to what NSight offers.

    Surprisingly enough AMD's drivers for OpenCL don't really have too many suck points. I actually find it far easier to setup an AMD GPU processor dev box or deployment than NVidias and easier to bring into a program as well.

  25. Do some homework before suggesting by Anonymous Coward · · Score: 0

    Go check what you suggest first. Intel only supports OpenCL on their GPUs under windows, not linux.

    1. Re:Do some homework before suggesting by Claggy · · Score: 1

      While Intel may not officially support OpenCL on their GPUs under Linux, there is Beignet, the open source implementation: https://01.org/beignet

  26. NVidia Obsoletes GPUs faster by Anonymous Coward · · Score: 0

    hate to break this to you but Nvidia does the same thing only alot faster. Look up "Compute Capability". AMD's has been far more stable and NVidia's approach has been PITA * many more iterations.

    1. Re:NVidia Obsoletes GPUs faster by Anonymous Coward · · Score: 0

      I know NVIDIA, just like AMD, doesn't give your old card the latest new features, which could be supported in their drivers if they wanted too. At least NVIDIA lets you use your gpu with the same old features on newer releases of the driver.
      AMD on the other hand removes driver support for your card from newer versions of their driver after a few years and you are stuck on old legacy drivers without being able to use newer Linux kernel versions, xserver versions, etc. This means you can no longer use the latest versions of a modern distro like Fedora or Ubuntu, unless you try to block a bunch of package updates to the unsupported software and all the dependencies.
      At least on NVIDIA you can continue to run the programs you already wrote, assuming they are forward compatible with the newer versions of Linux, etc.

    2. Re:NVidia Obsoletes GPUs faster by Anonymous Coward · · Score: 0

      hate to break this to you, but my 7 year old 8300 GS is just as capable as it was the day i got it. Of course if you have *any* real world need for compute capability and GPU processing, you will buy at least 4 cards *every* time they release a better one because if you don't, your competitor will wipe the floor up with you and your shit tech.
        So what I'm saying is, STFU and use your 8300 GS with its 8 compute cores, because it's enough to let you do GPU programming while you figure out how the fucking real world works.

  27. AMD support more recent versions of OpenC by rgbe · · Score: 2

    Have a look at this talk, namely 8 min 30 seconds into the talk:
      https://www.youtube.com/watch?...

    The talk was given at the recent Linux Conf Australia (in New Zealand). It shows that AMD supports OpenCL 2.0, while Nvidia only support version 1.1 (released in 2010). I spoke to the speaker after his talk and he said Nvidia are basically dragging their heals with regard to supporting more recent versions. Nvidia also request unconvential features be put into the spec, and then never implement those features. Obvisouly Nvidia are doing well with their own CUDA language and seem to be trying to create a walled garden. It sounds like if you are going for openness and not for speed, then you could look at Intel or AMD (both support version 2.0).

  28. AMD Open Source OpenCL by Anonymous Coward · · Score: 0

    The Gallium drivers for AMD have experimental OpenCL support. Southern Islands and Sea Islands GPUs are the best supported: Gallium Compute

  29. 22-Way AMD/NVIDIA OpenCL Linux Benchmarks by Drone4four · · Score: 1

    I'm no serious parallel programmer, so I don't know how helpful this well be to you, but this might be of interest: 22-Way AMD/NVIDIA OpenCL Linux Benchmarks To Start Off 2015. Mike Larabel does some great work.

    1. Re:22-Way AMD/NVIDIA OpenCL Linux Benchmarks by Anonymous Coward · · Score: 0

      it should be noted that kernels have to be tuned extract proper performance out of the respective devices. Both architectures are very similar hardware but have different constants involved (warp/wavefront, shared memory size, max size of workgroup/threadblock.

      As such unless those kernels do that they are not very good benchmarks.

      The best benchmarks to date are the datasheet numbers which tells you max theoretical tflops and memory bandwidths. This wikipediate page for AMD Radeon cards is particularly helpful for AMD's cards:
      http://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units
      http://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units

      Remember that besides memory bandwidth and flops, you cannot directly compare one vendor to another with those numbers! They are very helpful for figuring relative performance within a single vendor though.

  30. Noobs... by Grog6 · · Score: 1

    Lol.

    --
    Truth isn't Truth - Guliani
  31. Model: Radeon r9280x or 7970 by ravyne · · Score: 2

    As for a particular model, if double-precision performance is important, go with a 7970 or 280x on theAMD side (or 7990 if you need dual-gpu in one slot). They did double-precision at 1/4th their single-precision rate, which is the best you're going to find at consumer-grade pricing -- even more-modern or more powerful cards have backed off on double-precision, so something like a 290x has almost 50% more shader ALUs than a 280x, and will perform better at single-precision workloads, but only does double-precision at a rate of 1/8th, so its actually slower in purely double-precision workloads. All of nVidia's consumer cards are in the ballpark of 1/8th to 1/16th rate too, except the GTX Titan Black, which did 1/3rd rate, but at $1500 is nearly Quadro pricing anyways.

    If money is no object an AMD firepro 9100 is the workstation version of the 290x, and does double-precision at 1/2 single precision rate, and is the current best-of-both worlds, and will probably remain so for the remainder of the year, but its a 3-grand price tag or so.

  32. OpenCL for CT Image Reconstruction by pak9rabid · · Score: 1

    Which company do you work for just out of curiosity?

  33. Future of GPU is Open Standards by Anonymous Coward · · Score: 0

    I don't think this is true, as someone who's been working with CUDA since 2.x and OpenCL since 1.x and someone who's shipped safety critical, production software running in tens of millions of cars and aircraft running both CUDA and OpenCL... your assertions are frankly ridiculous and clearly a result of not having any technical, let alone practical understanding of the hardware nor software you're referring to.

    OpenCL is frankly, a poor substitute for CUDA sadly - from a high level language perspective, we do support OpenCL however the development overhead is 4-8x more than that of CUDA (we often have to write device-specific kernels since OpenCL implementations are fragmented at best, if even compliant - often optimizing around very specific types like float3 or float4, or float) - sadly this is the cost of creating a high level abstraction around dozens of underlying hardware architectures.

    CUDA is different in that it's tailored specifically towards nVidia's hardware architecture, we write maybe 3 CUDA kernels for various ranges of hardware that support dozens of devices each, it's more efficient, you get better access to specific hardware (specialised instructions, specialised memory access, advanced texture sampling, cache control, etc).

    The general consensus I tend to get from my peers in the industry is we need more APIs like CUDA for specific hardware, as OpenCL is frankly a dud - many larger companies actually end up working with custom toolchains that compile their own language or C++ via clang/LLVM to SPIR/PTX/HSAIL - assuming they're not hand-writing SPIR/PTX/HSAIL themselves already due to the poor design of OpenCL.

  34. And form talking to our researchers by Sycraft-fu · · Score: 0

    Between a bit better language design and superior support and tools, CUDA is way easier to do your work in. We've 4 labs that use CUDA in one fashion or another, none that use OpenCL. A number have tried it (also tried lines like the Cell cards that IBM sold for awhile) but settled on CUDA as being the easiest in terms of development. Open standards are nice and all but they've got shit to do and never enough time to do it, so whatever works the easiest is a win for them.

    On a different side of things, I've seen less issues out of nVidia on CUDA than AMD on OpenCL for video editing. Sony Vegas supports both for accelerating video effects and encoding. When I had an AMD card, it was crashes all the time with acceleration on. Sony had to disable acceleration on a number of effects with it. I had to turn it off to have a usable setup. With nVidia, I find problems are very infrequent.

    Obviously this is one one data point and I don't know the details of development. However it is one of the few examples I know of a product that supports both APIs.

  35. nVidia / AMD / ATI bla bla bla by Anonymous Coward · · Score: 0

    You say outright performance isn't really important. Have you considered just using the Intel HD Graphics built into your Haswell? There is an OpenCL implementation for Intel (beignet) and while I haven't particularly dabbled with software that needs OpenCL I've been very impressed with the stability and Just Works factor of the graphics side of the Intel graphics driver support. (I have an Ivy Bridge, so a bit older than your hardware; your silicon should be a fair bit faster.)

  36. Re: So... by Anonymous Coward · · Score: 0

    What are you betting their a?

  37. What do you actually want to do with it? by whitroth · · Score: 1

    That's really the question. Are you using the GPU for heavy-duty computing, or graphics, or...?

    We've got money around here (we're a civilian-sector US gov't agency) using NVidia Tesla cards - in several servers, *two* of 'em - for heavy lifting with things like R. We do use the installable proprietary drives, and they work.

                        mark