Adding changes from main to dev for clean merge back into main (#170)

This commit is contained in:
Jeremy Felder
2023-08-29 15:53:24 +03:00
committed by GitHub
parent 78e20f9add
commit ca8961501e
4 changed files with 23 additions and 5 deletions

8
CITATION.cff Normal file
View File

@@ -0,0 +1,8 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Ingonyama"
title: "Icicle: GPU Library for ZK Acceleration"
version: 0.1.0
date-released: 2023-03-08
url: "https://github.com/ingonyama-zk/icicle"

View File

@@ -37,7 +37,13 @@ ICICLE is a CUDA implementation of general functions widely used in ZKP. ICICLE
## Build and usage
> NOTE: [NVCC] is a prerequisite for building.
### Prerequisites
- [NVCC]
- cmake 3.18 and above
### Steps
1. Define or select a curve for your application; we've provided a [template][CRV_TEMPLATE] for defining a curve
2. Include the curve in [`curve_config.cuh`][CRV_CONFIG]
@@ -59,6 +65,8 @@ cmake --build build
cd build && ctest
```
NOTE: If you are using cmake versions < 3.24 add `-DCUDA_ARCH=<target_cumpute_arch>` to the command `cmake -S . -B build`
### Rust Bindings
For convenience, we also provide rust bindings to the ICICLE library for the following primitives:
@@ -188,8 +196,8 @@ See [LICENSE-MIT][LMIT] for details.
[BLS12-377]: ./icicle/curves/bls12_377/supported_operations.cu
[BN254]: ./icicle/curves/bn254/supported_operations.cu
[NVCC]: https://docs.nvidia.com/cuda/#installation-guides
[CRV_TEMPLATE]: ./icicle/curves/curve_template.cuh
[CRV_CONFIG]: ./icicle/curves/curve_config.cuh
[CRV_TEMPLATE]: ./icicle/curves/curve_template/
[CRV_CONFIG]: ./icicle/curves/index.cu
[B_SCRIPT]: ./build.rs
[FDI]: https://github.com/ingonyama-zk/fast-danksharding
[LMIT]: ./LICENSE

View File

@@ -7,7 +7,9 @@ set(CMAKE_CUDA_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
# add the target cuda architectures
# each additional architecture increases the compilation time and output file size
if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
if (${CMAKE_VERSION} VERSION_LESS "3.24.0")
set(CMAKE_CUDA_ARCHITECTURES ${CUDA_ARCH})
else()
set(CMAKE_CUDA_ARCHITECTURES native) # on 3.24+, on earlier it is ignored, and the target is not passed
endif ()
project(icicle LANGUAGES CUDA CXX)

View File

@@ -408,4 +408,4 @@ namespace PARAMS_BLS12_381 {
static constexpr storage<fq_config::limbs_count> weierstrass_b_g2_im = {
0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
} // namespace PARAMS_BLS12_381
} // namespace PARAMS_BLS12_381