BLAKE3 Cryptographic Hashing Function Sees Experimental Vulkan Implementation

There has been a lot of interest in BLAKE3 since its introduction in January and building off the successes of BLAKE2. While its design is "highly parallelizable" for threads and SIMD implementations, to date it's been just implemented in Rust for the multi-threaded version and a reference C implementation. But a developer has begun exploring GPU-based BLAKE3 support with Vulkan.
There is an experimental pull request providing a Vulkan implementation. Developer Cesar Eduardo Barros noted, "The highly parallel structure of Blake3, and its use of 32-bit words, in theory make it suitable for being accelerated by a GPU. I wanted to see if the very high number of threads in a GPU would be enough to offset the extra overhead of sending the work to the GPU and getting the result back."
This Vulkan implementation is producing the same output as the CPU-only hasher while with Intel integrated graphics is showing mixed results between different BLAKE3 CPU-based configurations. Ultimately further work on the code is needed for achieving greater performance than the CPU-based hashing but will be interesting to see where it leads.
Those wondering about the current overall state of BLAKE3 can find the latest details and performance metrics on GitHub.
14 Comments