GPUOpen: Difference between revisions
→Rationale: adding OR and POV tags, see talk page. |
→Visual effects libraries: For the production of Big Buck Bunny, some solution for the rendering of fur was used, that is or was made part of Blender. That solution is definitely not Direct3D-only. |
||
Line 102: | Line 102: | ||
|- |
|- |
||
|} |
|} |
||
For the production of [[Big Buck Bunny]], some solution for the rendering of fur was used, that is or was made part of [[Blender (software)|Blender]]. That solution is definitely not Direct3D-only. |
|||
==== Tools ==== |
==== Tools ==== |
Revision as of 13:22, 4 February 2016
File:AMD GPUOpen Logo, Jan 2016.png | |
Original author(s) | Advanced Micro Devices |
---|---|
Developer(s) | Advanced Micro Devices |
Initial release | January 26th, 2016[1] |
Repository | |
Written in | C, C++, GLSL |
Operating system | Linux, Microsoft Windows |
Type | Game effects libraries, GPU debugging, CPU & CPU profiling |
License | MIT License |
Website | http://gpuopen.com/ GPUOpen SDKs on GitHub GPUOpen Effects on GitHub |
GPUOpen is a middleware software suite originally developed by AMD's Radeon Technologies Group that offers advanced visual effects for computer games. It was announced on December 15, 2015[2][3][4][5][6] and released on January 26, 2016.
GPUOpen is meant to an alternative to and a direct competitor of Nvidia GameWorks. GPUOpen is similar to GameWorks in that it encompasses several different graphics technologies as its main components that were previously independent.[4]
Released under the MIT License, software that is part of GPUOpen is free and open-source software.
Rationale
This section possibly contains original research. (February 2016) |
With regards to some of the functionality defined by Microsoft's Direct3D 12, which was released in August 2015, AMD's GCN-based hardware could be called more advanced then the competition's hardware[citation needed]:
"AC (Asynchronous Compute/Asynchronous Shading)" is fully supported in hardware by even GCN 1.0-based GPUs released back in January 2012 while even Nvidia's most current Maxwell 2.0-based GPUs do not support this functionality in hardware.[7] [8] Nvidia work-around for this lack of hardware support is slow.
"Ressource Binding" as defined D3D 12 was further subdivided into three tiers. While even GCN 1.0-based products support Tier 3, the highest Tier, Nvidia's Maxwell 2.0 support only Tier 2, which was also defined by Microsoft to be sufficient for calling something compliant with Direct3D 12 FL 12_1.
A elder example is Tessellation. Before Tessellation became mandatory with Direct3D 11 and OpenGL x.y, AMD's TeraScale-based Direct3D 10-capable GPUs, had already hardware blocks doing some sort of tessellation, predating Direct3D 11 with about 2 years! Sadly this did no became industry standard and therefore wide-spread, and therefore gave AMD not advantage what-so-ever.
Long before Direct3D 12 and Vulkan, AMD came up with their proprietary Windows-only, GCN-only Mantle low-level rendering API. For unknown reasons[vague], only very few game developers actually shipped products supporting Mantle. In case they did, Mantle wasn't take full advantage off, because this would have necessitated some serious rewriting of huge amounts of code, which on the other hand, were necessary to support high-level rendering APIs (Direct3D 9/10/11, OpenGL 4).
Conforming to the Steam Hardware Survey, AMD is less successful at selling GPUs.
While Nvidia announced their proprietary device driver will be written to support Direct3D 12 even on GPUs as old as Fermi, AMD announced to not provide such support for their Evergreen GPUs (the competitor to Fermi).
The general motivation behind GPUOpen was to address some of the perceived problems plaguing the industries: due to the proprietary and closed-source nature of all solutions available until GPUOpen, developers had only a very limited access to the GPU hardware through abstraction APIs (OpenGL, Direct3D) and had to rely on black-box solutions where available (e.g. Nvidia GameWorks). Among being a problem per se, this additionally balkanized development for video game consoles, the PC and also for High-performance computing.[9]
The GPUOpen initiative is going to give us free access to the entire performance tool chain.
— Josh Barczak of Firaxis Games[10]
In May 2015, there was a serious dispute which started with the claim, that Nvidia's GameWorks would completely sabotage the performance of AMDs Radeon hardware when running The Witcher 3: Wild Hunt.[11] Nvidia GameWorks being proprietary software, the suspicion that it could worsen performance of games when running on AMD hardware will likely stick around.
AMD publicly declared, that GPUOpen will be released under the MIT License and is meant as an alternative and replacement to Nvidia GameWorks. Due to its open-source nature, any hardware manufacturer or software developer can freely optimize for and contribute to it, resulting in better software optimization for everybody on any hardware. Also by looking at the source-code, anybody could convince himself that no tricks are being used to make things run better or worse on certain hardware.
GameWorks differs by being closed, with its code being hidden from non-contracted developers and GPU manufacturers competing with Nvidia. With many developers and GPU manufacturers being unable to properly view and optimize their products for GameWorks, game and software performance for consumers that use non-Nvidia GPUs suffers.
Components
GPUOpen unifies many of AMD's previously separate tools and solutions into one package, also fully open-sourcing them under the MIT License.[3] GPUOpen also makes it easier for developers to get low-level GPU access.[12]
Additionally AMD wants to grant interested developers the kind of low-level "direct access" to their GCN-based GPUs, that surpasses the possibilities of Direct3D 12 or Vulkan. AMD mentioned e.g. a low-level access to the Asynchronous Compute Engines (ACEs). The ACE implement "Asynchronous Compute", but they cannot be freely configured neither under Vulkan nor under Direct3D 12.
GPUOpen is made up of several main components, tools, and SDKs.[4]
GPUOpen – Games and CGI
Software for computer-generated imagery (CGI) used in development of computer games and movies alike.
Visual effects libraries
The official AMD directory seems to be: https://github.com/GPUOpen-Effects/.
Name | source-code | API | OS | Visual effects |
---|---|---|---|---|
TressFX 3.0 | TressFX | D3D 11 | Windows 64-bit | rendering of hair, fur, and grass |
GeometryFX | GeometryFX | geometrical things | ||
AOFX | AOFX | Ambient occlusion | ||
ShadowFX | ShadowFX | Shadows |
For the production of Big Buck Bunny, some solution for the rendering of fur was used, that is or was made part of Blender. That solution is definitely not Direct3D-only.
Tools
The official AMD directory seems to be: https://github.com/GPUOpen-LibrariesAndSDKs/.
Name | source-code | API | OS | Task |
---|---|---|---|---|
static analyzer for AMD CodeXL | amd-codexl-analyzer | Direct3D, OpenGL, OpenCL | Linux Windows 64bit |
Off-line compiler and performance analysis CLI-tool for processing: OpenCL kernels, HLSL shaders and GLSL shaders part of the AMD CodeXL tools suite Requires either Radeon Software Crimson Edition or AMD Catalyst to be installed to run this tool.[13] |
D3D 12 plug-in for GPU PerfStudio | amd-gpuperfstudio-dx12 | Direct3D 12 | Windows | a plug-in to GPU PerfStudio/GPU perfstudio[14] |
Tootle | amd-tootle | agnostic | Linux Windows |
Triangle Order Optimization Tool; originally developed in 2006; can be easily integrated as part of a rendering or mesh pre-processing tool chain[15] |
Having been released by ATI Technologies under the BSD license in 2006? HLSL2GLSL is not part of GPUOpen. Whether similar tools for SPIR-V will be available remains to be seen, as is the official release of the Vulkan (API) itself. Source-code that has been defined as being part of GPUOpen is also part of the Linux kernel (e.g. amdgpu and amdkfd[16]), Mesa 3D and LLVM.
Software development kits
Name | source-code | API | OS | Task |
---|---|---|---|---|
LiquidVR SDK | LiquidVR | D3D 11 | Windows | improves the smoothness of virtual reality.[17] The aim is to reduce latency between hardware so that the hardware can keep up with the user's head movement, eliminating the motion sickness. A particular focus is on dual GPU setups where each GPU will now render for one eye individually of the display |
FireRays SDK | FireRays_SDK | agnostic | Linux, OS X, Windows | A high efficiency, high performance heterogeneous ray tracing intersection library for GPU and CPU or APU on any platform. |
FireRender SDK | FireRenderSDK | ? | physically-based rendering engine | |
RapidFire SDK | — | ? | facilitates the use of AMD's video compression acceleration SIP blocks VCE (H.264 encoder) and UVD (H.264 decoder) for "Cloud gaming"/off-site rendering |
GPUOpen – Professional Compute
Software around Heterogeneous System Architecture (HSA), General-purpose computing on graphics processing units (GPGPU) and High-performance computing (HPC)
Heterogeneous System Architecture
- HSAIL-GDB: provides an GNU Debugger-based debugging environment for HSA Intermediate Layer (HSAIL)
- HSA Runtime APIs
- Linux amdkfd v1.6.1 release for Kaveri & Carrizo
AMD Boltzmann Initiative
AMD's "Boltzmann Initiative" (named after Ludwig Boltzmann) was announced in November 2015 at the SuperComputing15.[18][19][20][21][22] It aims to provide an alternative to Nvidia's CUDA which includes a tool to port CUDA source-code to HCC source-code.
- Radeon Open Compute Kernel (ROCK) driver
- Radeon Open Compute Runtime (ROCR) runtime
- HCC: Heterogeneous Compute Compiler
- HIP: C++ Heterogeneous-Compute Interface for Portability
Various
- clFFT library for Fast Fourier transform written in OpenCL
- hcFFT library for Fast Fourier transform written in C++ (optimized for HCC)
Availability
GPUOpen are available under the MIT license to the general public through GitHub starting in January 26th, 2016..[3]
Interlocking with other free software projects
There is interlocking between GPUOpen and well established and wide-spread free software projects, e.g. Linux kernel, Mesa 3D and LLVM.
See also
References
- ^ AMD: GPUOpen (2016-01-26). "Welcome to GPUOpen".
- ^ Maximum PC (2015-12-15). "AMD Radeon Technologies Group Summit: GPUOpen and Software". Retrieved 2016-01-24.
- ^ a b c AnandTech (2015-12-15). "AMD's GPUOpen bundle of developer tools in 2016". Retrieved 2016-01-24.
- ^ a b c Tom's Hardware (2015-12-15). "AMD GPUOpen: Doubling Down On Open-Source Development". Retrieved 2016-01-24.
- ^ Heinz Heise (2015-12-16). "AMDs Open-Source-Initiative GPUOpen: Direkte GPU-Kontrolle und bessere Treiber" (in German).
- ^ PC Games Hardware [in German] (2015-12-16). "AMD GPU Open: Radeon-Software wird bald zu 100 % Open-Source" (in German).
- ^ "Nvidia, Direct3D 12, and Asynchronous Compute". 2015-09-01. Retrieved 2016-01-25.
- ^ Heinz Heise (2015-09-02). "Async Shaders: Fehlende Direct3D-12-Funktion auf Nvidia-Grafikkarten "ein vollkommenes Desaster"" (in German). Retrieved 2016-01-25.
- ^ wccftech.com (2015-12-15). "AMD's Answer To Nvidia's GameWorks, GPUOpen Announced". Retrieved 2016-01-24.
- ^ AMD (2015-12-15). "AMD Unleashes a New Era of Development with GPUOpen" (video).
- ^ Ars Technica (2015-05-22). "AMD says Nvidia's GameWorks "completely sabotaged" Witcher 3 performance". Retrieved 2016-01-24.
- ^ HotHardware (2015-12-15). "AMD Goes Open Source, Announces GPUOpen Initiative, New Compiler And Drivers For Linux And HPC". Retrieved 2016-01-24.
- ^ AMD GPUOpen (2016-01-26). "CodeXL Static Analyzer CLI".
- ^ AMD GPUOpen (2016-01-26). "Create Your own GPU PerfStudio Direct3D 12 Plugin".
- ^ AMD GPUOpen (2016-01-26). "Have You Tootled Your 3D Models?".
- ^ "Linux kernel 4.2 /drivers/gpu/drm/amd".
- ^ Heinz Heise (2015-03-04). "LiquidVR: Neues Virtual-Reality-SDK von AMD" (in German).
- ^ AnandTech (2015-11-16). "AMD@SC15: Boltzmann Initiative Announced - C++ and CUDA Compilers for AMD GPUs".
- ^ Heinz Heise (2015-11-17). "Supercomputer: AMD startet Software-Offensive "Boltzmann"" (in German).
- ^ 3dcenter.org (2015-11-16). "AMDs Boltzmann-Initiative geht direkt gegen nVidias CUDA" (in German).
{{cite web}}
: CS1 maint: numeric names: authors list (link) - ^ AMD (2015-11-16). "AMD Launches 'Boltzmann Initiative'".
- ^ AMD (2015-11-16). "A Defining Moment for Heterogeneous Computing".