Skip to content

Commit

Permalink
a lot of new stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
ChickenLover committed May 28, 2024
1 parent 0a737de commit a47c25e
Show file tree
Hide file tree
Showing 55 changed files with 2,829 additions and 2,270 deletions.
27 changes: 15 additions & 12 deletions icicle/include/api/babybear.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
extern "C" cudaError_t babybear_extension_ntt_cuda(
const babybear::extension_t* input, int size, ntt::NTTDir dir, ntt::NTTConfig<babybear::scalar_t>& config, babybear::extension_t* output);

extern "C" cudaError_t babybear_create_poseidon2_constants_cuda(
extern "C" cudaError_t babybear_create_poseidon2_cuda(
poseidon2::Poseidon2<babybear::scalar_t>** poseidon,
unsigned int width,
unsigned int alpha,
unsigned int internal_rounds,
Expand All @@ -28,33 +29,35 @@ extern "C" cudaError_t babybear_create_poseidon2_constants_cuda(
const babybear::scalar_t* internal_matrix_diag,
poseidon2::MdsType mds_type,
poseidon2::DiffusionStrategy diffusion,
device_context::DeviceContext& ctx,
poseidon2::Poseidon2Constants<babybear::scalar_t>* poseidon_constants);
device_context::DeviceContext& ctx
);

extern "C" cudaError_t babybear_init_poseidon2_constants_cuda(
extern "C" cudaError_t babybear_init_poseidon2_cuda(
poseidon2::Poseidon2<babybear::scalar_t>** poseidon,
unsigned int width,
poseidon2::MdsType mds_type,
poseidon2::DiffusionStrategy diffusion,
device_context::DeviceContext& ctx,
poseidon2::Poseidon2Constants<babybear::scalar_t>* poseidon_constants);
device_context::DeviceContext& ctx
);

extern "C" cudaError_t babybear_poseidon2_permute_many_cuda(
const poseidon2::Poseidon2<babybear::scalar_t>* poseidon,
const babybear::scalar_t* states,
babybear::scalar_t* output,
unsigned int number_of_states,
const poseidon2::Poseidon2<babybear::scalar_t>* poseidon,
device_context::DeviceContext& ctx
device_context::DeviceContext& ctx,
bool is_async
);

extern "C" cudaError_t babybear_poseidon2_compress_many_cuda(
const poseidon2::Poseidon2<babybear::scalar_t>* poseidon,
const babybear::scalar_t* states,
babybear::scalar_t* output,
unsigned int number_of_states,
unsigned int rate,
const poseidon2::Poseidon2<babybear::scalar_t>* poseidon,
device_context::DeviceContext& ctx,
unsigned int offset,
babybear::scalar_t* perm_output
babybear::scalar_t* perm_output,
device_context::DeviceContext& ctx,
bool is_async
);

extern "C" cudaError_t babybear_release_poseidon2_constants_cuda(
Expand Down
58 changes: 35 additions & 23 deletions icicle/include/api/bls12_377.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,32 +71,44 @@ extern "C" cudaError_t bls12_377_affine_convert_montgomery(
extern "C" cudaError_t bls12_377_projective_convert_montgomery(
bls12_377::projective_t* d_inout, size_t n, bool is_into, device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_377_create_optimized_poseidon_constants_cuda(
int arity,
int full_rounds_half,
int partial_rounds,
const bls12_377::scalar_t* constants,
extern "C" cudaError_t bls12_377_poseidon_create_cuda(
poseidon::Poseidon<bls12_377::scalar_t>** poseidon,
unsigned int arity,
unsigned int alpha,
unsigned int partial_rounds,
unsigned int full_rounds_half,
const bls12_377::scalar_t* round_constants,
const bls12_377::scalar_t* mds_matrix,
const bls12_377::scalar_t* non_sparse_matrix,
const bls12_377::scalar_t* sparse_matrices,
const bls12_377::scalar_t domain_tag,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_377_poseidon_load_cuda(
poseidon::Poseidon<bls12_377::scalar_t>** poseidon,
unsigned int arity,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_377_poseidon_permute_many_cuda(
const poseidon::Poseidon<bls12_377::scalar_t>* poseidon,
const bls12_377::scalar_t* states,
bls12_377::scalar_t* output,
unsigned int number_of_states,
device_context::DeviceContext& ctx,
poseidon::PoseidonConstants<bls12_377::scalar_t>* poseidon_constants);

extern "C" cudaError_t bls12_377_init_optimized_poseidon_constants_cuda(
int arity, device_context::DeviceContext& ctx, poseidon::PoseidonConstants<bls12_377::scalar_t>* constants);
bool is_async);

extern "C" cudaError_t bls12_377_poseidon_hash_cuda(
bls12_377::scalar_t* input,
extern "C" cudaError_t bls12_377_poseidon_compress_many_cuda(
const poseidon::Poseidon<bls12_377::scalar_t>* poseidon,
const bls12_377::scalar_t* states,
bls12_377::scalar_t* output,
int number_of_states,
int arity,
const poseidon::PoseidonConstants<bls12_377::scalar_t>& constants,
poseidon::PoseidonConfig& config);

extern "C" cudaError_t bls12_377_build_poseidon_merkle_tree(
const bls12_377::scalar_t* leaves,
bls12_377::scalar_t* digests,
uint32_t height,
int arity,
poseidon::PoseidonConstants<bls12_377::scalar_t>& constants,
merkle::TreeBuilderConfig& config);
unsigned int number_of_states,
unsigned int offset,
bls12_377::scalar_t* perm_output,
device_context::DeviceContext& ctx,
bool is_async);

extern "C" cudaError_t
bls12_377_poseidon_delete_cuda(Poseidon<bls12_377::scalar_t>* poseidon, device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_377_mul_cuda(
bls12_377::scalar_t* vec_a, bls12_377::scalar_t* vec_b, int n, vec_ops::VecOpsConfig& config, bls12_377::scalar_t* result);
Expand Down
58 changes: 35 additions & 23 deletions icicle/include/api/bls12_381.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,32 +71,44 @@ extern "C" cudaError_t bls12_381_affine_convert_montgomery(
extern "C" cudaError_t bls12_381_projective_convert_montgomery(
bls12_381::projective_t* d_inout, size_t n, bool is_into, device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_381_create_optimized_poseidon_constants_cuda(
int arity,
int full_rounds_half,
int partial_rounds,
const bls12_381::scalar_t* constants,
extern "C" cudaError_t bls12_381_poseidon_create_cuda(
poseidon::Poseidon<bls12_381::scalar_t>** poseidon,
unsigned int arity,
unsigned int alpha,
unsigned int partial_rounds,
unsigned int full_rounds_half,
const bls12_381::scalar_t* round_constants,
const bls12_381::scalar_t* mds_matrix,
const bls12_381::scalar_t* non_sparse_matrix,
const bls12_381::scalar_t* sparse_matrices,
const bls12_381::scalar_t domain_tag,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_381_poseidon_load_cuda(
poseidon::Poseidon<bls12_381::scalar_t>** poseidon,
unsigned int arity,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_381_poseidon_permute_many_cuda(
const poseidon::Poseidon<bls12_381::scalar_t>* poseidon,
const bls12_381::scalar_t* states,
bls12_381::scalar_t* output,
unsigned int number_of_states,
device_context::DeviceContext& ctx,
poseidon::PoseidonConstants<bls12_381::scalar_t>* poseidon_constants);

extern "C" cudaError_t bls12_381_init_optimized_poseidon_constants_cuda(
int arity, device_context::DeviceContext& ctx, poseidon::PoseidonConstants<bls12_381::scalar_t>* constants);
bool is_async);

extern "C" cudaError_t bls12_381_poseidon_hash_cuda(
bls12_381::scalar_t* input,
extern "C" cudaError_t bls12_381_poseidon_compress_many_cuda(
const poseidon::Poseidon<bls12_381::scalar_t>* poseidon,
const bls12_381::scalar_t* states,
bls12_381::scalar_t* output,
int number_of_states,
int arity,
const poseidon::PoseidonConstants<bls12_381::scalar_t>& constants,
poseidon::PoseidonConfig& config);

extern "C" cudaError_t bls12_381_build_poseidon_merkle_tree(
const bls12_381::scalar_t* leaves,
bls12_381::scalar_t* digests,
uint32_t height,
int arity,
poseidon::PoseidonConstants<bls12_381::scalar_t>& constants,
merkle::TreeBuilderConfig& config);
unsigned int number_of_states,
unsigned int offset,
bls12_381::scalar_t* perm_output,
device_context::DeviceContext& ctx,
bool is_async);

extern "C" cudaError_t
bls12_381_poseidon_delete_cuda(Poseidon<bls12_381::scalar_t>* poseidon, device_context::DeviceContext& ctx);

extern "C" cudaError_t bls12_381_mul_cuda(
bls12_381::scalar_t* vec_a, bls12_381::scalar_t* vec_b, int n, vec_ops::VecOpsConfig& config, bls12_381::scalar_t* result);
Expand Down
85 changes: 50 additions & 35 deletions icicle/include/api/bn254.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ extern "C" cudaError_t bn254_affine_convert_montgomery(
extern "C" cudaError_t bn254_projective_convert_montgomery(
bn254::projective_t* d_inout, size_t n, bool is_into, device_context::DeviceContext& ctx);

extern "C" cudaError_t bn254_create_poseidon2_constants_cuda(
extern "C" cudaError_t bn254_create_poseidon2_cuda(
poseidon2::Poseidon2<bn254::scalar_t>** poseidon,
unsigned int width,
unsigned int alpha,
unsigned int internal_rounds,
Expand All @@ -81,65 +82,79 @@ extern "C" cudaError_t bn254_create_poseidon2_constants_cuda(
const bn254::scalar_t* internal_matrix_diag,
poseidon2::MdsType mds_type,
poseidon2::DiffusionStrategy diffusion,
device_context::DeviceContext& ctx,
poseidon2::Poseidon2Constants<bn254::scalar_t>* poseidon_constants);
device_context::DeviceContext& ctx
);

extern "C" cudaError_t bn254_init_poseidon2_constants_cuda(
extern "C" cudaError_t bn254_init_poseidon2_cuda(
poseidon2::Poseidon2<bn254::scalar_t>** poseidon,
unsigned int width,
poseidon2::MdsType mds_type,
poseidon2::DiffusionStrategy diffusion,
device_context::DeviceContext& ctx,
poseidon2::Poseidon2Constants<bn254::scalar_t>* poseidon_constants);
device_context::DeviceContext& ctx
);

extern "C" cudaError_t bn254_poseidon2_permute_many_cuda(
const poseidon2::Poseidon2<bn254::scalar_t>* poseidon,
const bn254::scalar_t* states,
bn254::scalar_t* output,
unsigned int number_of_states,
const poseidon2::Poseidon2<bn254::scalar_t>* poseidon,
device_context::DeviceContext& ctx
device_context::DeviceContext& ctx,
bool is_async
);

extern "C" cudaError_t bn254_poseidon2_compress_many_cuda(
const poseidon2::Poseidon2<bn254::scalar_t>* poseidon,
const bn254::scalar_t* states,
bn254::scalar_t* output,
unsigned int number_of_states,
unsigned int rate,
const poseidon2::Poseidon2<bn254::scalar_t>* poseidon,
device_context::DeviceContext& ctx,
unsigned int offset,
bn254::scalar_t* perm_output
bn254::scalar_t* perm_output,
device_context::DeviceContext& ctx,
bool is_async
);

extern "C" cudaError_t bn254_release_poseidon2_constants_cuda(
poseidon2::Poseidon2Constants<bn254::scalar_t>* constants,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bn254_create_optimized_poseidon_constants_cuda(
int arity,
int full_rounds_half,
int partial_rounds,
const bn254::scalar_t* constants,
device_context::DeviceContext& ctx,
poseidon::PoseidonConstants<bn254::scalar_t>* poseidon_constants);
extern "C" cudaError_t bn254_poseidon_create_cuda(
poseidon::Poseidon<bn254::scalar_t>** poseidon,
unsigned int arity,
unsigned int alpha,
unsigned int partial_rounds,
unsigned int full_rounds_half,
const bn254::scalar_t* round_constants,
const bn254::scalar_t* mds_matrix,
const bn254::scalar_t* non_sparse_matrix,
const bn254::scalar_t* sparse_matrices,
const bn254::scalar_t domain_tag,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bn254_init_optimized_poseidon_constants_cuda(
int arity, device_context::DeviceContext& ctx, poseidon::PoseidonConstants<bn254::scalar_t>* constants);
extern "C" cudaError_t bn254_poseidon_load_cuda(
poseidon::Poseidon<bn254::scalar_t>** poseidon,
unsigned int arity,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bn254_poseidon_hash_cuda(
bn254::scalar_t* input,
extern "C" cudaError_t bn254_poseidon_permute_many_cuda(
const poseidon::Poseidon<bn254::scalar_t>* poseidon,
const bn254::scalar_t* states,
bn254::scalar_t* output,
int number_of_states,
int arity,
const poseidon::PoseidonConstants<bn254::scalar_t>& constants,
poseidon::PoseidonConfig& config);

extern "C" cudaError_t bn254_build_poseidon_merkle_tree(
const bn254::scalar_t* leaves,
bn254::scalar_t* digests,
uint32_t height,
int arity,
poseidon::PoseidonConstants<bn254::scalar_t>& constants,
merkle::TreeBuilderConfig& config);
unsigned int number_of_states,
device_context::DeviceContext& ctx,
bool is_async);

extern "C" cudaError_t bn254_poseidon_compress_many_cuda(
const poseidon::Poseidon<bn254::scalar_t>* poseidon,
const bn254::scalar_t* states,
bn254::scalar_t* output,
unsigned int number_of_states,
unsigned int offset,
bn254::scalar_t* perm_output,
device_context::DeviceContext& ctx,
bool is_async);

extern "C" cudaError_t
bn254_poseidon_delete_cuda(Poseidon<bn254::scalar_t>* poseidon, device_context::DeviceContext& ctx);

extern "C" cudaError_t bn254_mul_cuda(
bn254::scalar_t* vec_a, bn254::scalar_t* vec_b, int n, vec_ops::VecOpsConfig& config, bn254::scalar_t* result);
Expand Down
58 changes: 35 additions & 23 deletions icicle/include/api/bw6_761.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,32 +71,44 @@ extern "C" cudaError_t bw6_761_affine_convert_montgomery(
extern "C" cudaError_t bw6_761_projective_convert_montgomery(
bw6_761::projective_t* d_inout, size_t n, bool is_into, device_context::DeviceContext& ctx);

extern "C" cudaError_t bw6_761_create_optimized_poseidon_constants_cuda(
int arity,
int full_rounds_half,
int partial_rounds,
const bw6_761::scalar_t* constants,
extern "C" cudaError_t bw6_761_poseidon_create_cuda(
poseidon::Poseidon<bw6_761::scalar_t>** poseidon,
unsigned int arity,
unsigned int alpha,
unsigned int partial_rounds,
unsigned int full_rounds_half,
const bw6_761::scalar_t* round_constants,
const bw6_761::scalar_t* mds_matrix,
const bw6_761::scalar_t* non_sparse_matrix,
const bw6_761::scalar_t* sparse_matrices,
const bw6_761::scalar_t domain_tag,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bw6_761_poseidon_load_cuda(
poseidon::Poseidon<bw6_761::scalar_t>** poseidon,
unsigned int arity,
device_context::DeviceContext& ctx);

extern "C" cudaError_t bw6_761_poseidon_permute_many_cuda(
const poseidon::Poseidon<bw6_761::scalar_t>* poseidon,
const bw6_761::scalar_t* states,
bw6_761::scalar_t* output,
unsigned int number_of_states,
device_context::DeviceContext& ctx,
poseidon::PoseidonConstants<bw6_761::scalar_t>* poseidon_constants);

extern "C" cudaError_t bw6_761_init_optimized_poseidon_constants_cuda(
int arity, device_context::DeviceContext& ctx, poseidon::PoseidonConstants<bw6_761::scalar_t>* constants);
bool is_async);

extern "C" cudaError_t bw6_761_poseidon_hash_cuda(
bw6_761::scalar_t* input,
extern "C" cudaError_t bw6_761_poseidon_compress_many_cuda(
const poseidon::Poseidon<bw6_761::scalar_t>* poseidon,
const bw6_761::scalar_t* states,
bw6_761::scalar_t* output,
int number_of_states,
int arity,
const poseidon::PoseidonConstants<bw6_761::scalar_t>& constants,
poseidon::PoseidonConfig& config);

extern "C" cudaError_t bw6_761_build_poseidon_merkle_tree(
const bw6_761::scalar_t* leaves,
bw6_761::scalar_t* digests,
uint32_t height,
int arity,
poseidon::PoseidonConstants<bw6_761::scalar_t>& constants,
merkle::TreeBuilderConfig& config);
unsigned int number_of_states,
unsigned int offset,
bw6_761::scalar_t* perm_output,
device_context::DeviceContext& ctx,
bool is_async);

extern "C" cudaError_t
bw6_761_poseidon_delete_cuda(Poseidon<bw6_761::scalar_t>* poseidon, device_context::DeviceContext& ctx);

extern "C" cudaError_t bw6_761_mul_cuda(
bw6_761::scalar_t* vec_a, bw6_761::scalar_t* vec_b, int n, vec_ops::VecOpsConfig& config, bw6_761::scalar_t* result);
Expand Down
Loading

0 comments on commit a47c25e

Please sign in to comment.