BLAKE3 Cryptographic Hashing Function Sees Experimental Vulkan Implementation
BLAKE3, the cryptographic hash function that advertises itself as being "much faster" than the likes of SHA1 and MD5 and its predecessor BLAKE2 while being more secure and highly parallelizable has seen an experimental implementation for GPU-based acceleration using the Vulkan API.
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.
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