mirror of
https://github.com/pseXperiments/icicle.git
synced 2026-05-01 03:00:14 -04:00
(1) C++ template API that is backend (GPU, ZPU or other) agnostic (polynomials.h) (2) concrete CUDA implementation (polynomial_cuda_backend.cu/cuh) (3) C API for FFI (4) Groth16 example (test) (5) icicle library is now built for tests as well. Polynomial tests are linked to icicle lib.
74 lines
2.3 KiB
YAML
74 lines
2.3 KiB
YAML
name: C++/CUDA
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- V2
|
|
push:
|
|
branches:
|
|
- main
|
|
- V2
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check-changed-files:
|
|
uses: ./.github/workflows/check-changed-files.yml
|
|
|
|
check-format:
|
|
name: Check Code Format
|
|
runs-on: ubuntu-22.04
|
|
needs: check-changed-files
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Check clang-format
|
|
if: needs.check-changed-files.outputs.cpp_cuda == 'true'
|
|
run: if [[ $(find ./ \( -path ./icicle/build -prune -o -path ./**/target -prune -o -path ./examples -prune \) -iname *.h -or -iname *.cuh -or -iname *.cu -or -iname *.c -or -iname *.cpp | xargs clang-format --dry-run -ferror-limit=1 -style=file 2>&1) ]]; then echo "Please run clang-format"; exit 1; fi
|
|
|
|
test-linux-curve:
|
|
name: Test on Linux
|
|
runs-on: [self-hosted, Linux, X64, icicle]
|
|
needs: [check-changed-files, check-format]
|
|
strategy:
|
|
matrix:
|
|
curve: [bn254, bls12_381, bls12_377, bw6_761]
|
|
steps:
|
|
- name: Checkout Repo
|
|
uses: actions/checkout@v4
|
|
- name: Build curve
|
|
working-directory: ./icicle
|
|
if: needs.check-changed-files.outputs.cpp_cuda == 'true'
|
|
run: |
|
|
mkdir -p build && rm -rf build/*
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DCURVE=${{ matrix.curve }} -DG2=ON -S . -B build
|
|
cmake --build build -j
|
|
- name: Run C++ curve Tests
|
|
working-directory: ./icicle/build/tests
|
|
if: needs.check-changed-files.outputs.cpp_cuda == 'true'
|
|
run: ctest
|
|
|
|
test-linux-field:
|
|
name: Test on Linux
|
|
runs-on: [self-hosted, Linux, X64, icicle]
|
|
needs: [check-changed-files, check-format]
|
|
strategy:
|
|
matrix:
|
|
field: [babybear]
|
|
steps:
|
|
- name: Checkout Repo
|
|
uses: actions/checkout@v4
|
|
- name: Build field
|
|
working-directory: ./icicle
|
|
if: needs.check-changed-files.outputs.cpp_cuda == 'true'
|
|
run: |
|
|
mkdir -p build && rm -rf build/*
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DFIELD=${{ matrix.field }} -DEXT_FIELD=ON -S . -B build
|
|
cmake --build build -j
|
|
- name: Run C++ field Tests
|
|
working-directory: ./icicle/build/tests
|
|
if: needs.check-changed-files.outputs.cpp_cuda == 'true'
|
|
run: ctest |