RADV Driver Gets Big Patch Series For 8-bit & 16-bit Arithmetic, 8-bit Storage
A set of 38 patches have been sent out that wire in support for the VK_KHR_shader_float16_int8, VK_AMD_gpu_shader_half_float, VK_AMD_gpu_shader_int16, and VK_KHR_8bit_storage extensions to the RADV driver within Mesa.
Rhys Perry who started contributing to the Nouveau driver stack has been working on this 8-bit and 16-bit arithmetic support for the Radeon Vulkan "RADV" driver. These 8-bit / 16-bit extensions work for AMD Volcanic Islands GPUs and newer. However, the half-floats support needs LLVM 8.0 or newer due to bugs on LLVM 7.
VK_KHR_shader_float16_int8 allows for using 16-bit floating-point types and 8-bit integer types in shader arithmetic operations. VK_AMD_gpu_shader_half_float adds support for the SPV_AMD_gpu_shader_half_float type into Vulkan, which is 16-bit floating point support. VK_AMD_gpu_shader_int16 is about adding the SPIR-V 16-bit signed/unsigned integer support. Lastly, VK_KHR_8bit_storage allows for 8-bit types in uniform and storage buffers and push constant blocks.
As part of these patches is also using LLVM's SLP "Superworld-Level Parallelism" vectorizer by RADV.
These new patches can be found on Mesa-dev but will hopefully be merged soon into Mesa 19.1. Great seeing these few remaining unimplemented Vulkan extensions being worked on by this Mesa Radeon Vulkan driver while the official AMDVLK Vulkan driver has already supported these 8-bit/16-bit capabilities.
Rhys Perry who started contributing to the Nouveau driver stack has been working on this 8-bit and 16-bit arithmetic support for the Radeon Vulkan "RADV" driver. These 8-bit / 16-bit extensions work for AMD Volcanic Islands GPUs and newer. However, the half-floats support needs LLVM 8.0 or newer due to bugs on LLVM 7.
VK_KHR_shader_float16_int8 allows for using 16-bit floating-point types and 8-bit integer types in shader arithmetic operations. VK_AMD_gpu_shader_half_float adds support for the SPV_AMD_gpu_shader_half_float type into Vulkan, which is 16-bit floating point support. VK_AMD_gpu_shader_int16 is about adding the SPIR-V 16-bit signed/unsigned integer support. Lastly, VK_KHR_8bit_storage allows for 8-bit types in uniform and storage buffers and push constant blocks.
As part of these patches is also using LLVM's SLP "Superworld-Level Parallelism" vectorizer by RADV.
These new patches can be found on Mesa-dev but will hopefully be merged soon into Mesa 19.1. Great seeing these few remaining unimplemented Vulkan extensions being worked on by this Mesa Radeon Vulkan driver while the official AMDVLK Vulkan driver has already supported these 8-bit/16-bit capabilities.
6 Comments