550.40.53: Vulkan properties for integer dot product reported as false

With the latest 550.40.53 Vulkan beta driver, vulkaninfo reports the following in VkPhysicalDeviceShaderIntegerDotProductProperties:

integerDotProduct8BitUnsignedAccelerated = false
integerDotProduct8BitSignedAccelerated = false
integerDotProduct8BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating8BitSignedAccelerated = false
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating16BitSignedAccelerated = false
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating32BitSignedAccelerated = false
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating64BitSignedAccelerated = false
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false

Similarly, in VkPhysicalDeviceVulkan13Properties:

integerDotProduct8BitUnsignedAccelerated = false
integerDotProduct8BitSignedAccelerated = false
integerDotProduct8BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating8BitSignedAccelerated = false
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating16BitSignedAccelerated = false
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating32BitSignedAccelerated = false
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = false
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false
integerDotProductAccumulatingSaturating64BitSignedAccelerated = false
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false

All these flags are true on the 550.54.14 driver, as well as 535.43.22 Vulkan beta driver, on the same system with RTX 2080 Ti.

Are these properties misreported in the 550.40.53 driver?

Hi @Lastique
I will check with the team internally and update on it.

1 Like

Hi. Thanks for spotting this and reporting the issue. Unfortunately the old properties were incorrect and did not accurately represent our implementation. The new properties are now correct. These properties indicate when the implementation is able to accelerate these instructions and parameters beyond what the application could emulate itself. After investigation we concluded that our implementation of 8bit and AccumulatingSaturating for most types was actually not measurably faster than what the application could achieve. The part that we do accelerate well is unpacking 4x8BitPacked types, so all those continue to be TRUE.

These property changes should have no effect on any shaders that use these instructions since all implementations of the shader_integer_dot_product extension (and Vulkan 1.3) most support all instructions and types. The only difference is that on some implementations the hardware is able to accelerate some combinations of types and parameters.

2 Likes

Thank you for the response.