Is there a term for second-order SIMD? Like vectors within vectors?
GPUs are already SIMD in that each shader thread is one SIMD lane within a large vector in the SM... But I am starting to write shaders for ngscopeclient that pack four boolean uint8 simd lanes into a single uint32 vector.
This allows you to get 4x the memory bandwidth and also doesn't rely on the shader_int8 extension that not all GPUs support, eliminating the need for a CPU based fallback implementation
GPUs are already SIMD in that each shader thread is one SIMD lane within a large vector in the SM... But I am starting to write shaders for ngscopeclient that pack four boolean uint8 simd lanes into a single uint32 vector.
This allows you to get 4x the memory bandwidth and also doesn't rely on the shader_int8 extension that not all GPUs support, eliminating the need for a CPU based fallback implementation
1