Slashdot Mirror


AMD: It's Time To Open Up the GPU (gpuopen.com)

An anonymous reader writes: AMD has called for the opening up of GPU technology to developers. Nicolas Thibieroz, a senior engineering manager for the company, announced today the launch of GPUOpen, its initiative to provide code and documentation to PC developers, embracing open source and collaborative development with the community. He says, "Console games often tap into low-level GPU features that may not be exposed on PC at the same level of functionality, causing different — and usually less efficient — code paths to be implemented on PC instead. Worse, proprietary libraries or tools chains with "black box" APIs prevent developers from accessing the code for maintenance, porting or optimizations purposes. Game development on PC needs to scale to multiple quality levels, including vastly different screen resolutions." And here's how AMD wants to solve this: "Full and flexible access to the source of tools, libraries and effects is a key pillar of the GPUOpen philosophy. Only through open source access are developers able to modify, optimize, fix, port and learn from software. The goal? Encouraging innovation and the development of amazing graphics techniques and optimizations in PC games." They've begun by posting several technical articles to help developers understand and use various tools, and they say more content will arrive soon.

18 of 152 comments (clear)

  1. Translation:quit optimizing for Intel technology by xxxJonBoyxxx · · Score: 3, Insightful

    >> AMD: It's Time To Open Up the GPU

    Translation: quit optimizing for proprietary Intel technology, start developing and optimizing for AMD's proprietary technology, particularly LiquidVR, instead

    call me when Intel signs up otherwise meh

  2. Console games? by tlambert · · Score: 2, Funny

    Console games? You mean like "robots" and "nethack", right? 'Cause you run them on the console, rather than in graphics mode?

  3. w00t! by zapadnik · · Score: 3, Insightful

    As an indie game developer this is fantastic news. I hope Apple also make good use of this, the Apple OpenGL drivers run at about half the speed of AMD's Windows OpenGL drivers on the same hardware (a recent Mac Pro with dual D700s under OS X and Bootcamp-ed to Windows).

    Hopefully it also means that Open Source folks (FSM bless 'em) will also improve the install process for AMD/ATI drivers on Linux, if not the performance.

    This is great news for those working in real time 3D.

    1. Re:w00t! by zapadnik · · Score: 2

      Thanks for posting. The interesting thing about the Metal framework is that it is a mixed bag of performance compared to OpenGL. In some areas there are performance benefits, but there are also losses.
      http://arstechnica.com/apple/2...

      Given the time required to build and maintain great products (the longer you keep something going, the more money you can make) I personally feel that "portability is THE killer feature". Hence I prefer OpenGL compared to Metal. Developing only for Apple is a losing proposition - especially for something as resource hungry as a modern jet combat simulation (which Apple has inferior hardware for anyway, sadly).

      It's great if you're targeting a narrow hardware range because you can now optimize specifically for it but we've had this at the vendor level before (S3, 3Dfx, nVidia, ATi, PowerVR, Matrox, 3DLabs, etc.) and it was a nightmare. Even if the application supported your card that didn't mean it supported it particularly well, or as well as other cards. So picking a graphics card was less about how powerful the card was and more about how popular it was with developers.

      The point of OpenGL is you *don't* do this. The point of Metal is you do (and you have to lots of work).

      With AMD opening up the GPU it means the OpenGL driver writers can squeeze more performance out, without the application developer having to do the low-level work. This is the model I personally prefer.

    2. Re:w00t! by exomondo · · Score: 2

      IMHO this is also a mistake. Having the application developer do driver-level resource management is a fail, IMHO.

      Why exactly? Take glUniform calls for example, having the driver create its own buffer to copy that data into and then transfer that to the GPU memory is far less efficient than having the application map to the GPU directly.

      I like APIs that operate on two levels: one level is the low-level stuff, where you are required to make every decision (Vulkan); then you have another part of the *same* API that has convenience methods for very common things that nearly every application needs (as OpenGL does).

      The black box of the driver means that when you allocate memory on the GPU you don't know how much it is using, worse still if it fails and you get an GL_OUT_OF_MEMORY error, which could mean a few different things. Do you have no system or GPU memory left? How much do you need to free up? Instead of that you allocate the memory rather than telling the driver to do it, you already specify pretty much all the parameters when you do it in OpenGL anyway.

      Pushing more work to the application developer just so the driver developer can do less is a fail and will result in lower adoption.

      It's not about having the application developer do more, it's about having the driver do less and more closely mapping the application's resource usage to the GPU instead of the driver acting as an intermediate layer. You know how long you need memory for so why allow the driver to make assumptions about it?

      Consider the case for new developers who want to use all the convenience methods of OpenGL 1 and 2, but these were stripped out in OpenGL 4 for the benefit of driver writers.

      Maintaining useless, inefficient cruft that complicates the API is a burden on maintainers and those wishing to learn, why have a multitude of ways to do the same thing? That's just a mess.

  4. What? by Anonymous Coward · · Score: 5, Interesting

    This has nothing to do with Intel and everything to do with getting people to adopt AMD's open standards over NVIDIA's closed standards, which is actually better for the health of the industry as a whole. What is it you expect Intel to sign up for? Their graphics products are garbage and absolutely nobody wants to use them.

    1. Re:What? by TheDarkMaster · · Score: 2

      Only if you do not intend to play graphically heavy games on your computer.

      --
      Religion: The greatest weapon of mass destruction of all time
  5. Re:Translation:quit optimizing for Intel technolog by ShanghaiBill · · Score: 5, Informative

    Translation: quit optimizing for proprietary Intel technology

    This is not targeted at Intel. It is targeted at NVidia. They are looking to the future when GPGPU is expected to be a bigger slice of the GPU market. NVidia currently dominates with their (proprietary) CUDA interface, while AMD relies on the less efficient OpenCL. More openness will help AMD (and Intel) while working against NVidia.

    In almost all markets the dominant company will prefer to push their proprietary solution, while companies with smaller market shares will push openness.

  6. Re:Translation:quit optimizing for Intel technolog by CajunArson · · Score: 2, Informative

    What's all "proprietary" about Intel graphics exactly?
    Their open source support in the Linux kernel is substantially better than AMD's half-assed "sorta kinda open when we feel like it for obsolete parts" approach.

    Another thing about this "open" concept that nobody is really talking about amidst the cheerleading: AMD is trying to push *proprietary* AMD-only hardware features that don't fit very well with current APIs -- and that includes Vulkan, BTW, not just the old APIs.

    So what are they doing? They are "open sourcing" a relatively thin layer of code that exposes their proprietary GPU features to work *outside* of any cross-platform APIs.

    So basically, they open source some relatively low-value shim code for their hardware so that they have an excuse not to make bug fixes since that's been handed over to the community. Meanwhile, the "open source" AMD product is actually encouraging software developers to write code to *non-standard AMD features* that aren't part of any accepted API that would work across platforms.

    Just because some code is open sourced doesn't make it a happy "open" cross-platform experience, and there needs to be a little more critical thought applied to this media event.

    --
    AntiFA: An abbreviation for Anti First Amendment.
  7. Re:AMD optimizations = vendor lock-in by JustNiz · · Score: 2

    I agree with all your points, but it seems that AMD might be trying to do another end-run like they did with AMD64 extensions that are now the industry standard that even Intel copied/now use.

  8. Re:timing by greenfruitsalad · · Score: 3, Interesting

    this recent behaviour of AMD (vulkan, freesync, hbm, gpuopen, etc) reminds me of the last days of Sun Microsystems. they also opened up a lot of their stuff just before they went tits-up. i sincerely hope it's not what's happening with AMD now.

  9. The "old" stuff isn't THAT bad... by CrashNBrn · · Score: 2

    Something like this Lenovo IdeaPad Y700: AMD A10-8700P, 15.6" (1920x1080), 8 GB RAM + 4 GB Radeon R9 M380
    seemed pretty decent to me, especially when your budget is less than $1500 and preferably $1000.

  10. Re:Translation:quit optimizing for Intel technolog by RogueyWon · · Score: 4, Interesting

    It's aimed at Nvidia, not Intel, and it's all about hair.

    Or rather, it's all about Nvidia GameWorks, which got a lot of attention this year thanks to a number of bleeding-edge games, most notably The Witcher 3.

    The horribly over-simplified tl;dr version is that Nvidia have been encouraging PC developers to use a set of closed-and-proprietary tools, which allow for some remarkably pretty in-game effects but more or less screw over AMD cards.

    This, combined with the fact that Nvidia has, in general, better driver support, quieter and more power-efficient cards and, at the top end of the market, better single-card performance, has put AMD into a pretty bad place in the PC graphics card market right now. Yes, they still tend to have a slight price-to-power ratio advantage, but the quality of life drawbacks to an AMD card, combined with the GameWorks effect, has driven down their market share and, right now, makes it hard to recommend an AMD card.

    There are no "goodies" or "baddies" here. Nvidia's GameWorks strategy is undoubtedly fairly dubious in terms of its ethics. At the same time, they are putting out better (and more power-efficient, so also on one level more environmentally friendly) cards (and the GameWorks effects can be VERY pretty), while AMD continues to put out cards that burn with the heat of a million fiery suns and have long-standing, unaddressed issues with their driver support.

  11. Hey AMD, show us your new CPUs for 2016 by steveha · · Score: 5, Informative

    Hey, AMD, show us your new CPUs for 2016. Everything you got now is long in the tooth.

    How right you are. But their basic problem has been that they were still stuck on old semiconductor fabrication processes. Intel has spent a bunch of money on fab technology and is about two generations ahead of AMD. It didn't help that their current architecture isn't great.

    I'm not a semiconductor expert, but as I understand it: the thinner the traces on the semiconductor, the higher clock rate can go or the lower the power dissipation can be (those two are tradeoffs). Intel's 4th-generation CPUs were fabbed on 22 nm process, and their current CPUs are fabbed on 14 nm process. AMD has been stuck at 28 nm and is in fact still selling CPUs fabbed on a 32 nm process. It's brutal to try to compete when so far behind. But AMD is just skipping the 22 nm process and going straight to 14 nm. (Intel has 10 nm in the pipeline, planned for 2017 release, but it should be easier to compete 14 nm vs 10 nm than 32/28 nm vs 14 nm! And it took years for AMD to get to 14 nm, while there are indications that they will make the jump to 10 nm more quickly.)

    But AMD is about to catch up. AMD has shown us their new CPU for 2016; its code-name is "Zen" and it will be fabbed on a 14 nm process. AMD claims the new architecture will provide 40% more instructions-per-clock than their current architecture; combined with finally getting onto a modern fab process, the Zen should be competitive with Intel's offerings. (I expect Intel to hold onto the top-performance crown, but I expect AMD will offer better performance per dollar with acceptable thermal envelope.) Wikipedia says it will be released in October 2016.

    http://www.techradar.com/us/news/computing-components/processors/amd-confirms-powerhouse-zen-cpus-will-arrive-for-high-end-pcs-in-2016-1310980

    Intel is so far ahead of AMD that it's unlikely that AMD will ever take over the #1 spot, but I am at least hoping that they will hold on to a niche and serve to keep Intel in check.

    The ironic thing is that Intel is currently making the best products, yet still they feel the need to cheat with dirty tricks like the Intel C Compiler's generating bad code for CPUs with a non-Intel CPUID. Also I don't like how Intel tries to segment their products into dozens of tiers to maximize money extraction. (Oh, did you want virtualization? This cheaper CPU doesn't offer that; buy this more expensive one. Oh, did you want ECC RAM? Step right up to our most expensive CPUs!)

    Intel has been a very good "corporate citizen" with respect to the Linux kernel, and they make good products; but I try not to buy their products because I hate their bad behavior. I own one laptop with an Intel i7 CPU, but otherwise I'm 100% non-Intel.

    I want to build a new computer and I don't want to wait for Zen so I will be buying an FX-8350 (fabbed on 32 nm process, ugh). But in 18 months or so I look forward to buying new Zen processors and building new computers.

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  12. Re:AMD optimizations = vendor lock-in by Kjella · · Score: 2

    You do not really want to go back to vendor APIs like twenty years ago. It did not save 3DFX then, it may not save AMD GPU division now. You really need to get Vulkan working, and you need to get GNU/Linux drivers performance and numbers of bugs to a reasonable level.

    It would be very different this time, today the shader (pixel, vertex, geometry, tessellation, compute) is the core of almost all GPU processing. Twenty years ago it was all fixed-function hardware, the first programmable shader support was in DirectX 8.0 back in 2000. Basically you had high level calls and the hardware/driver could implement it however they want, so how one card did it would be totally different from the other. Today they have to run the same shader code efficiently, sure there's still some abstraction but more like compiling C to assembler.

    The open source drivers have already more or less done this internally with Gallium3D, you have a low level shader API and a common graphics library implementation running on top. The difference is that Vulkan will be a client API and implemented by proprietary drivers and on proprietary platforms, which means you get ~100% availability instead of a fraction of the Linux market. But users can still pick CUDA if it works better for them, the same way many pick Windows-only software over cross-platform alternatives. It won't perform miracles for AMD...

    --
    Live today, because you never know what tomorrow brings
  13. Re:AMD dies it every 5 years by Anonymous Coward · · Score: 4, Insightful

    except they actually have opened up their technology, and very often they've opened up NEW technology. from AMD64, to HT link to their GPU specs (resulting in open source AMD drivers rivaling the propitiatory drivers in speed, and being MILES ahead of nvidia's open source drivers (which don't even have support for ANY 9xx series cards yet)).
    tressFX is going to release 3.0 soon, mantle formed the basis for vulkan and now we get openGPU.

  14. Re:timing by Anonymous Coward · · Score: 2, Insightful

    Recent?

    Do you remember what was the first operating system to get AMD64 support back in early 2000's? That's right, Linux.

    Also mid-2000's when AMD purchased ATI, first thing they did was throwing out documentation for open source developers to develop better drivers, also they have invested millions in development of open Linux graphics stack, and this happened very early on. They've always been pretty open, this is not recent behavior.

    Nvidia, holding like 70-80% of the market share, does afford to close things down and stuff proprietary techs down your throat, but AMD as the underdog, does not. Openess is their best bet.

  15. Re:Translation:quit optimizing for Intel technolog by StormReaver · · Score: 3, Insightful

    There are no "goodies" or "baddies" here.

    There are now. AMD, through necessity, has chosen the right path. NVidia, through ability, has chosen the wrong path.

    Even now, when AMD cards perform worse than NVidia, I have started choosing AMD for both personal and professional use because of the Open Source AMD drivers. AMD's doubling down on Open Source has validated that decision, and I will likely never buy, nor recommend to my customers, another NVidia card.

    I have completely inverted my recommendations for Linux video. It used to be, "buy NVidia and be done with it," since AMD's driver was a huge pain in the ass to get working on Linux. But Open Source has a powerful appeal to me, having been burned over and over again by proprietary business practices over the decades, and now my recommendation has switched to AMD for the same reason.