├── .gitignore ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── src ├── cuzk │ ├── gpu.rs │ ├── mod.rs │ ├── msm.rs │ ├── shader_manager.rs │ ├── test │ │ ├── mod.rs │ │ └── utils.rs │ ├── utils.rs │ └── wgsl │ │ ├── bigint │ │ └── bigint.template.wgsl │ │ ├── curve │ │ ├── ec.template.wgsl │ │ └── twisted_ec.template.wgsl │ │ ├── cuzk │ │ ├── bpr.template.wgsl │ │ ├── decompose_scalars.template.wgsl │ │ ├── extract_word_from_bytes_le.template.wgsl │ │ ├── smvp.template.wgsl │ │ └── transpose.template.wgsl │ │ ├── field │ │ ├── barrett.template.wgsl │ │ └── field.template.wgsl │ │ ├── montgomery │ │ ├── mont_pro_cios.template.wgsl │ │ ├── mont_pro_modified.template.wgsl │ │ ├── mont_pro_optimized.template.wgsl │ │ ├── mont_pro_product.template.wgsl │ │ └── mont_product.template.wgsl │ │ ├── struct │ │ └── structs.template.wgsl │ │ └── test │ │ ├── test_field.wgsl │ │ └── test_point.wgsl ├── lib.rs └── naive │ ├── gpu │ ├── mod.rs │ ├── msm.rs │ └── test │ │ ├── constants.rs │ │ ├── mod.rs │ │ ├── ops.rs │ │ ├── pippenger.rs │ │ └── pippenger_phases.rs │ ├── halo2curves │ ├── mod.rs │ ├── test │ │ ├── bn256.rs │ │ ├── mod.rs │ │ └── pallas.rs │ └── utils.rs │ ├── mod.rs │ ├── utils │ ├── bigint.rs │ ├── files.rs │ ├── mod.rs │ └── montgomery.rs │ └── wgsl │ ├── bigint.wgsl │ ├── bn254 │ ├── curve.wgsl │ └── field.wgsl │ ├── main.wgsl │ ├── pallas │ ├── curve.wgsl │ └── field.wgsl │ ├── pippenger.wgsl │ ├── storage.wgsl │ └── test │ ├── constants.wgsl │ ├── field.wgsl │ ├── field_to_bytes.wgsl │ ├── msm.wgsl │ ├── pippenger_phases.wgsl │ ├── point.wgsl │ └── sum_of_sums.wgsl ├── tests ├── cuzk.rs ├── decompose_shader.rs ├── field.rs ├── point.rs ├── smvp_shader.rs ├── test_webgpu_msm_cuzk_16.rs ├── test_webgpu_msm_cuzk_17.rs ├── test_webgpu_msm_cuzk_18.rs ├── test_webgpu_msm_cuzk_19.rs ├── test_webgpu_msm_cuzk_20.rs ├── test_webgpu_msm_cuzk_random.rs └── transpose_shader.rs └── www ├── index.html ├── package-lock.json ├── package.json └── worker.js /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | node_modules 3 | pkg -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/README.md -------------------------------------------------------------------------------- /src/cuzk/gpu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/gpu.rs -------------------------------------------------------------------------------- /src/cuzk/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/mod.rs -------------------------------------------------------------------------------- /src/cuzk/msm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/msm.rs -------------------------------------------------------------------------------- /src/cuzk/shader_manager.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/shader_manager.rs -------------------------------------------------------------------------------- /src/cuzk/test/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod utils; 2 | -------------------------------------------------------------------------------- /src/cuzk/test/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/test/utils.rs -------------------------------------------------------------------------------- /src/cuzk/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/utils.rs -------------------------------------------------------------------------------- /src/cuzk/wgsl/bigint/bigint.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/bigint/bigint.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/curve/ec.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/curve/ec.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/curve/twisted_ec.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/curve/twisted_ec.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/cuzk/bpr.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/cuzk/bpr.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/cuzk/decompose_scalars.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/cuzk/decompose_scalars.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/cuzk/extract_word_from_bytes_le.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/cuzk/extract_word_from_bytes_le.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/cuzk/smvp.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/cuzk/smvp.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/cuzk/transpose.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/cuzk/transpose.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/field/barrett.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/field/barrett.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/field/field.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/field/field.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/montgomery/mont_pro_cios.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/montgomery/mont_pro_cios.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/montgomery/mont_pro_modified.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/montgomery/mont_pro_modified.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/montgomery/mont_pro_optimized.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/montgomery/mont_pro_optimized.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/montgomery/mont_pro_product.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/montgomery/mont_pro_product.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/montgomery/mont_product.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/montgomery/mont_product.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/struct/structs.template.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/struct/structs.template.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/test/test_field.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/test/test_field.wgsl -------------------------------------------------------------------------------- /src/cuzk/wgsl/test/test_point.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/cuzk/wgsl/test/test_point.wgsl -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/naive/gpu/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/mod.rs -------------------------------------------------------------------------------- /src/naive/gpu/msm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/msm.rs -------------------------------------------------------------------------------- /src/naive/gpu/test/constants.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/test/constants.rs -------------------------------------------------------------------------------- /src/naive/gpu/test/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/test/mod.rs -------------------------------------------------------------------------------- /src/naive/gpu/test/ops.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/test/ops.rs -------------------------------------------------------------------------------- /src/naive/gpu/test/pippenger.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/test/pippenger.rs -------------------------------------------------------------------------------- /src/naive/gpu/test/pippenger_phases.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/gpu/test/pippenger_phases.rs -------------------------------------------------------------------------------- /src/naive/halo2curves/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/halo2curves/mod.rs -------------------------------------------------------------------------------- /src/naive/halo2curves/test/bn256.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/halo2curves/test/bn256.rs -------------------------------------------------------------------------------- /src/naive/halo2curves/test/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/halo2curves/test/mod.rs -------------------------------------------------------------------------------- /src/naive/halo2curves/test/pallas.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/halo2curves/test/pallas.rs -------------------------------------------------------------------------------- /src/naive/halo2curves/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/halo2curves/utils.rs -------------------------------------------------------------------------------- /src/naive/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/mod.rs -------------------------------------------------------------------------------- /src/naive/utils/bigint.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/utils/bigint.rs -------------------------------------------------------------------------------- /src/naive/utils/files.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/utils/files.rs -------------------------------------------------------------------------------- /src/naive/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/utils/mod.rs -------------------------------------------------------------------------------- /src/naive/utils/montgomery.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/utils/montgomery.rs -------------------------------------------------------------------------------- /src/naive/wgsl/bigint.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/bigint.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/bn254/curve.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/bn254/curve.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/bn254/field.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/bn254/field.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/main.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/main.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/pallas/curve.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/pallas/curve.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/pallas/field.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/pallas/field.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/pippenger.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/pippenger.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/storage.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/storage.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/constants.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/constants.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/field.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/field.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/field_to_bytes.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/field_to_bytes.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/msm.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/msm.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/pippenger_phases.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/pippenger_phases.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/point.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/point.wgsl -------------------------------------------------------------------------------- /src/naive/wgsl/test/sum_of_sums.wgsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/src/naive/wgsl/test/sum_of_sums.wgsl -------------------------------------------------------------------------------- /tests/cuzk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/cuzk.rs -------------------------------------------------------------------------------- /tests/decompose_shader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/decompose_shader.rs -------------------------------------------------------------------------------- /tests/field.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/field.rs -------------------------------------------------------------------------------- /tests/point.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/point.rs -------------------------------------------------------------------------------- /tests/smvp_shader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/smvp_shader.rs -------------------------------------------------------------------------------- /tests/test_webgpu_msm_cuzk_16.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/test_webgpu_msm_cuzk_16.rs -------------------------------------------------------------------------------- /tests/test_webgpu_msm_cuzk_17.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/test_webgpu_msm_cuzk_17.rs -------------------------------------------------------------------------------- /tests/test_webgpu_msm_cuzk_18.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/test_webgpu_msm_cuzk_18.rs -------------------------------------------------------------------------------- /tests/test_webgpu_msm_cuzk_19.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/test_webgpu_msm_cuzk_19.rs -------------------------------------------------------------------------------- /tests/test_webgpu_msm_cuzk_20.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/test_webgpu_msm_cuzk_20.rs -------------------------------------------------------------------------------- /tests/test_webgpu_msm_cuzk_random.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/test_webgpu_msm_cuzk_random.rs -------------------------------------------------------------------------------- /tests/transpose_shader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/tests/transpose_shader.rs -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/www/index.html -------------------------------------------------------------------------------- /www/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/www/package-lock.json -------------------------------------------------------------------------------- /www/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/www/package.json -------------------------------------------------------------------------------- /www/worker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ICME-Lab/msm-webgpu/HEAD/www/worker.js --------------------------------------------------------------------------------