You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 31, 2026. It is now read-only.
Currently we have optimized versions only for AVX/AVX2-enabled architectures. While pure Go implementation also exists, we might want to optimize implementation for ARM or RISC-V architectures. Note that reference implementation from https://github.com/srijs/hwsl2-core deliberately implements only AVX* optimisations, so we must craft ARM/RISC-V code ourselves.
The first step is to optimize GF127 code (with our modulo) in isolation.
Comparing assembly output for pure Go and C version might be helpful.
Currently we have optimized versions only for AVX/AVX2-enabled architectures. While pure Go implementation also exists, we might want to optimize implementation for ARM or RISC-V architectures. Note that reference implementation from https://github.com/srijs/hwsl2-core deliberately implements only AVX* optimisations, so we must craft ARM/RISC-V code ourselves.
The first step is to optimize GF127 code (with our modulo) in isolation.
Comparing assembly output for pure Go and C version might be helpful.
Some links to study:
https://www.ssrc.ucsc.edu/Papers/greenan-mascots08.pdf
RISC-V has crypto-extensions as well, some of them might be useful:
https://riscv.org/wp-content/uploads/2017/12/Wed-1354-RISCV-CryptoExtensions-RichardNewell.pdf