Skip to content

Commit 7880d78

Browse files
committed
feat(rapidsnark-gpu): Add rapidsnark-gpu package
1 parent e999f1b commit 7880d78

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

packages/all-packages.nix

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@
6868
rapidsnark = callPackage ./rapidsnark/default.nix {
6969
inherit ffiasm zqfield-bn254;
7070
};
71+
rapidsnark-gpu = callPackage ./rapidsnark-gpu/default.nix {
72+
inherit ffiasm zqfield-bn254;
73+
};
7174

7275
# Elrond / MultiversX
7376
# copied from https://github.com/NixOS/nixpkgs/blob/8df7949791250b580220eb266e72e77211bedad9/pkgs/development/python-modules/cryptography/default.nix
@@ -223,6 +226,7 @@
223226
ffiasm
224227
ffiasm-src
225228
rapidsnark
229+
rapidsnark-gpu
226230
;
227231

228232
inherit cardano graphql;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
lib,
3+
cudaPackages,
4+
stdenv,
5+
ffiasm,
6+
zqfield-bn254,
7+
nlohmann_json,
8+
gmp,
9+
libsodium,
10+
cmake,
11+
fetchFromGitHub,
12+
pkg-config,
13+
}: let
14+
ffiasm-c = "${ffiasm}/lib/node_modules/ffiasm/c";
15+
in
16+
stdenv.mkDerivation rec {
17+
pname = "rapidsnark-gpu";
18+
version = "2023-04-08";
19+
20+
src = fetchFromGitHub {
21+
owner = "Orbiter-Finance";
22+
repo = "rapidsnark";
23+
rev = "77016322808ac58a3acd25a6235510b55172f967";
24+
hash = "sha256-8vy+iXkSINFregve+rej1rXyXdWxm0n1wvYfoy/0idk=";
25+
};
26+
27+
nativeBuildInputs = [pkg-config];
28+
buildInputs = [nlohmann_json gmp libsodium cudaPackages.cudatoolkit] ++ ffiasm.passthru.openmp;
29+
30+
buildPhase = ''
31+
mkdir -p $out/bin
32+
c++ \
33+
-I{${ffiasm-c},${zqfield-bn254}/lib} \
34+
./src/{main_prover,binfile_utils,zkey_utils,wtns_utils,logger}.cpp \
35+
${ffiasm-c}/{alt_bn128,misc,naf,splitparstr}.cpp \
36+
${zqfield-bn254}/lib/{fq,fr}.{cpp,o} \
37+
$(pkg-config --cflags --libs libsodium gmp nlohmann_json) \
38+
-std=c++17 -pthread -O3 -fopenmp \
39+
-o $out/bin/prover
40+
'';
41+
42+
installPhase = ''
43+
# Already done in buildPhase
44+
'';
45+
46+
meta = {
47+
homepage = "https://github.com/iden3/rapidsnark";
48+
platforms = with lib.platforms; linux ++ darwin;
49+
};
50+
}

0 commit comments

Comments
 (0)