mirror of
https://github.com/logos-storage/constantine.git
synced 2026-01-02 13:13:07 +00:00
* Add PoC of JIT exec on Nvidia GPUs [skip ci] * Split GPU bindings into low-level (ABI) and high-level [skip ci] * small typedef reorg [skip ci] * refine LLVM IR/Nvidia GPU hello worlds * [Nvidia GPU] PoC implementation of field addition [skip ci] * prod-ready field addition + tests on Nvidia GPUs via LLVM codegen
684 B
684 B
GPU compilation targets
For CPUs, Constantine JIT-compiles the cryptographic kernels via LLVM.
This allows targeting several devices with a single frontend, the LLVM IR.
Current use-cases are large scale aggregations, large-scale multi-scalar-multiplications and large-scale FFTs.
Those are important primitives for:
- aggregation of public keys or signatures from a large number of nodes
- protocols based on polynomial commitments
- zero-knowledge proof systems
Potential future use-cases include erasure coding and lattice-based cryptography acceleration.
⚠️ GPU usage is not constant-time and requires allocation of dynamic memory. It MUST NOT be used for secret data.