7-post thread with @rianflo, Nov 2022. Confirms NOTimothyLottes wrote CAS/FSR1/etc GLSL versions with packed 16-bit math by hand. 'Explicit packed 16-bit works on AMD VK Vega and up. Up to 30% improvement on ALU bound stuff. Lots of occupancy wins.' Constants all packed and aliased as UINT (no conversion overheads). FSR1 source has 'F' (32-bit) and 'H' and 'Hx2' (packed 16-bit) function variants. Sibling to the Nov 2022 GPU tip-line thread (1588906002212323328).
1.8 KiB
title, author, handle, post_url, post_id, timestamp, post_count, reply_count, repost_count, like_count, view_count
| title | author | handle | post_url | post_id | timestamp | post_count | reply_count | repost_count | like_count | view_count |
|---|---|---|---|---|---|---|---|---|---|---|
| @rianflo Explicit packed 16-bit code. FSR1 example: https://github.com/GPUOpen-E | NOTimothyLottes | @NOTimothyLottes | https://x.com/NOTimothyLottes/status/1597798161665253376 | 1597798161665253376 | 2022-11-30 03:42:22 | 7 | 0 | 0 | 1 | 0 |
@NOTimothyLottes — @rianflo Explicit packed 16-bit code. FSR1 example: https://github.com/GPUOpen-E
Post 1 (2022-11-29 18:38:24)
"The road to 16-bit floats GPU is paved with our blood" :-/
https://www.yosoygames.com.ar/wp/2022/01/the-road-to-16-bit-floats-gpu-is-paved-with-our-blood/
Post 2 (2022-11-29 22:19:53) — reply to Post 1
@rianflo Explicit packed 16-bit works on AMD Vulkan Vega and up. I typically get up to 30% improvement on ALU bound stuff. Lots of occupancy wins. I don't use {HLSL, RenderDoc, Reflection, RADV, or VS/PS}. All constants are packed and aliased as UINT, so no coversion overheads.
Post 3 (2022-11-29 22:24:24) — reply to Post 2
@NOTimothyLottes Oh I know the benefits. Just no simple clear way to write it in GLSL for vulkan.
Post 4 (2022-11-29 22:26:03) — reply to Post 3
@rianflo Sure there is. CAS/FSR1/etc all shipped with fantastic GLSL versions using 16-bit packed math (I wrote those), all which at the time got fantastic code generation using AMD's drivers.
Post 5 (2022-11-29 22:32:10) — reply to Post 4
@NOTimothyLottes What GLSL extension did you use?
Post 6 (2022-11-29 22:33:35) — reply to Post 5
@NOTimothyLottes Oh wait, you're saying you wrote the fp16 math manually?
Post 7 (2022-11-30 03:42:22) — reply to Post 6
@rianflo Explicit packed 16-bit code. FSR1 example: https://github.com/GPUOpen-Effects/FidelityFX-FSR/blob/master/ffx-fsr/ffx_fsr1.h - There are different 'F' (32-bit) and 'H' and 'Hx2' (packed 16-bit) functions.