Difference between revisions of "IMX8/Multimedia/GPU/Vulkan"

From RidgeRun Developer Connection
< IMX8‎ | Multimedia‎ | GPU
Jump to: navigation, search
(Vulkan)
(Subgroups)
Line 12: Line 12:
  
 
In [https://www.khronos.org/blog/vulkan-subgroup-tutorial this tutorial] you can find how to use the subgroup functionality of Vulkan 1.1.
 
In [https://www.khronos.org/blog/vulkan-subgroup-tutorial this tutorial] you can find how to use the subgroup functionality of Vulkan 1.1.
 +
 +
==Software Development Kit==
 +
 +
The Vulkan applications can be developed for Windows, Linux, macOS and Android.
 +
===Windows, Linux & macOS===
 +
The LunarG SDK provides Vulkan application developers with essential tools to accelerate the development process. There are Windows, Linux, and macOS versions of LunarG SDK for Vulkan. You can find the official LunarG SDK in [https://vulkan.lunarg.com/sdk/home this site].
 +
 +
===Android===
 +
Google provides everything needed to incorporate Vulkan into Android games and other apps where graphics performance is a key. You are able download the API, samples and documentation from the [https://developer.android.com/ndk/guides/graphics/ Android developer website].
  
 
<noinclude>{{IMX8/Foot|<Replace with "previous" page>|<Replace with "next" page>}}</noinclude>
 
<noinclude>{{IMX8/Foot|<Replace with "previous" page>|<Replace with "next" page>}}</noinclude>

Revision as of 13:14, 1 November 2018


NXP Partner Program Registered Vertical.jpg NXP Partner Program Horizontal.jpg
  Index  





Vulkan

The i.MX8 supports Vulkan®, which is a graphics and compute API consisting of procedures and functions to specify shader programs, compute kernels, objects, and operations involved in producing high-quality graphical images, specifically color images of three-dimensional objects. Vulkan is also a pipeline with programmable and state-driven fixed-function stages that are invoked by a set of specific drawing operations. You can find more information and official documentation in this reference.

Subgroups

Vulkan 1.1 supports subgroups as a new feature. They enable highly-efficient sharing and manipulation of data between multiple tasks running in parallel on a GPU. Modern heterogeneous hardware like GPUs gain performance by using parallel hardware and exposing a parallel programming model to target this hardware. When a user wants to run N parallel tasks for their algorithm, a GPU would divide this N-sized workload between the compute units of that GPU. Each compute unit of the GPU is then capable of running one or more of these parallel tasks concurrently. In Vulkan, the data that runs on a single compute unit of a GPU is referred as the local workgroup, and an individual parallel task as an invocation.

Vulkan 1.1 introduces a mechanism to share data between the invocations that run in parallel on a single compute unit. These concurrently running invocations are named the subgroup. This subgroup allows for the sharing of data between a much smaller set of invocations than the local workgroup could, but at a significantly higher performance. While shared memory is only available in compute shaders, sharing data via subgroup operations is allowed in all shader stages via optionally supported stages

In this tutorial you can find how to use the subgroup functionality of Vulkan 1.1.

Software Development Kit

The Vulkan applications can be developed for Windows, Linux, macOS and Android.

Windows, Linux & macOS

The LunarG SDK provides Vulkan application developers with essential tools to accelerate the development process. There are Windows, Linux, and macOS versions of LunarG SDK for Vulkan. You can find the official LunarG SDK in this site.

Android

Google provides everything needed to incorporate Vulkan into Android games and other apps where graphics performance is a key. You are able download the API, samples and documentation from the Android developer website.


[[IMX8/<Replace with "previous" page>|Previous: <Replace with "previous" page>]] Index [[IMX8/<Replace with "next" page>|Next: <Replace with "next" page>]]