spacemeshos / SMIPS

Spacemesh Improvement Proposals
https://spacemesh.io
Creative Commons Zero v1.0 Universal
7 stars 1 forks source link

SMIP: GPU Post Compute Algorithm Update #27

Open avive opened 4 years ago

avive commented 4 years ago

GPU POST Phase III features

  1. Add option to configure the scyrpt algorithm to use blake3 instead of sha3. (Phase II only supports sha3). Keep feature to use sha3.
  2. Support these output sizes: 1bit, 2bit, ... 8bit, 1 byte, 2 bytes, .... ,32 bytes. (Phase II only supported 1-8 bits).
  3. Validate for correctness of the implementation against golden test vectors (Scrypt Jane).
  4. Update the main API method to support these new features.
  5. Optimize performance on Cuada, Vulkan and OpenCL to maintain the high mhps performance we currently have with sha3 compared with published benchmarks.
  6. Update CPU reference implementation to support the new api features.
  7. Write integration tests for the API that cover all major calling options.
avive commented 4 years ago

@iddo333 @tal-m @moshababo - please let me know if these requirements are good so we can get started on this project.

moshababo commented 4 years ago

LGTM

avive commented 4 years ago

2 project milestones so we can integrate into sm 0.2 quickly and introduce blake3 later.

  1. Milestone 1 - Output size change only.
  2. Milestone 2 - Support blake3 in addition to sha.
moshababo commented 4 years ago

As discussed, we should support output size in bit granularity for the entire 1-512 bit range, and postpone the blake3 support.

avive commented 4 years ago

Correct for sm 0.2 but we are going to build the blake3 support - just in a non-blocking way so we have this for sm 0.3.