-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
I2Regular impactRegular impactS4RoutineRoutineU4Nothing urgentNothing urgentenhancementImproving existing functionalityImproving existing functionalityperformanceMore of something per secondMore of something per second
Description
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
Metadata
Metadata
Assignees
Labels
I2Regular impactRegular impactS4RoutineRoutineU4Nothing urgentNothing urgentenhancementImproving existing functionalityImproving existing functionalityperformanceMore of something per secondMore of something per second