-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blake3 CPU support #733
Blake3 CPU support #733
Conversation
docs/docs/icicle/primitives/hash.md
Outdated
@@ -40,6 +41,10 @@ Keccak can take input messages of any length and produce a fixed-size hash. It u | |||
|
|||
[Blake2s](https://www.rfc-editor.org/rfc/rfc7693.txt) is an optimized cryptographic hash function that provides high performance while ensuring strong security. Blake2s is ideal for hashing small data (such as field elements), especially when speed is crucial. It produces a 256-bit (32-byte) output and is often used in cryptographic protocols. | |||
|
|||
### Blake3 | |||
|
|||
[Blake3](https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html) is a high-performance cryptographic hash function designed for both small and large data. With variable-length output (default 256 bits) and a tree-based design for efficient parallelism, it offers strong security, speed, and scalability for modern cryptographic applications. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we support the variable input size?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
assuming you mean output as stated in the phrase, we technically support variable output-size but it is not tested and not really common. I'll remove this line.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I asked about any input size.
Do we support any size of input?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some comments
@@ -371,7 +371,7 @@ class VectorOpTask : public TaskBase | |||
public: | |||
T m_intermidiate_res; // pointer to the output. Can be a vector or scalar pointer | |||
uint64_t m_idx_in_batch; // index in the batch. Used in intermediate res tasks | |||
}; | |||
}; // class VectorOpTask |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this comment is causing issues for formatters (they format it differently for some reason) so I suggest removing it
adding Blake3 support in C, RUST and GO.
Including unit tests in all 3 frontends
cuda-backend-branch: aviad/blake3_cuda