Added install scripts and Colab notebook for PRPLL. #399
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| schedule: | |
| - cron: '0 0 1 * *' | |
| env: | |
| PIP_BREAK_SYSTEM_PACKAGES: 1 | |
| jobs: | |
| CUDALucas: | |
| name: CUDALucas | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-24.04] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Before script | |
| run: | | |
| sed -i '/^GPU=/,/^fi/ s/^/# /' cudalucas.sh | |
| sed -i 's/ -flto//' cudalucas.sh | |
| sed -i '/^if ! COMPUTE=/,/^fi/ s/^/# /' cudalucas.sh | |
| sed -i 's/\/$COMPUTE/\/-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70/' cudalucas.sh | |
| sed -i '/^\.\/CUDALucas / s/^/# /' cudalucas.sh | |
| sed -i '/^timeout / s/^/# /' cudalucas.sh | |
| sed -i '/^nohup / s/^/# /' cudalucas.sh | |
| sed -i '/^python3 -OO / s/^/# /' cudalucas.sh | |
| gcc --version | |
| - name: Script | |
| run: bash -e -o pipefail -- cudalucas.sh ANONYMOUS | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ${{ matrix.os }}_cudalucas | |
| path: | | |
| cudalucas/ | |
| - name: ShellCheck | |
| run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
| continue-on-error: true | |
| - name: Clang-Tidy | |
| run: cd cudalucas && clang-tidy --use-color -checks='bugprone-*,cert-*,clang-analyzer-*,concurrency-*,misc-*,-misc-no-recursion,performance-*,portability-*,readability-const-return-type,readability-container-*,readability-duplicate-include,readability-else-after-return,readability-make-member-function-cons,readability-non-const-parameter,readability-redundant-*,readability-simplify-*,readability-string-compare,readability-use-*' -header-filter='.*' *.c *.cu -- -Wall -O3 --cuda-gpu-arch=sm_50 | |
| GpuOwl: | |
| name: GpuOwl | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-24.04] | |
| cxx: [g++, clang++] | |
| fail-fast: false | |
| env: | |
| CXX: ${{ matrix.cxx }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y ocl-icd-opencl-dev pocl-opencl-icd | |
| - name: Before script | |
| run: | | |
| sed -i '/^GPU=/,/^fi/ s/^/# /' gpuowl.sh | |
| sed -i '/^nohup / s/^/# /' gpuowl.sh | |
| sed -i '/^python3 -OO / s/^/# /' gpuowl.sh | |
| $CXX --version | |
| - name: Script | |
| run: bash -e -o pipefail -- gpuowl.sh ANONYMOUS | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ${{ matrix.os }}_${{ matrix.cxx }}_gpuowl | |
| path: | | |
| gpuowl/ | |
| - name: ShellCheck | |
| run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
| continue-on-error: true | |
| PRPLL: | |
| name: PRPLL | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-24.04] | |
| cxx: [g++, clang++] | |
| fail-fast: false | |
| env: | |
| CXX: ${{ matrix.cxx }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y ocl-icd-opencl-dev pocl-opencl-icd | |
| - name: Before script | |
| run: | | |
| sed -i '/^GPU=/,/^fi/ s/^/# /' prpll.sh | |
| sed -i '/^nohup / s/^/# /' prpll.sh | |
| sed -i '/^python3 -OO / s/^/# /' prpll.sh | |
| $CXX --version | |
| - name: Script | |
| run: bash -e -o pipefail -- prpll.sh ANONYMOUS | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ${{ matrix.os }}_${{ matrix.cxx }}_prpll | |
| path: | | |
| prpll/ | |
| - name: ShellCheck | |
| run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
| continue-on-error: true | |
| Mlucas: | |
| name: Mlucas | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm] | |
| cc: [gcc, clang] | |
| fail-fast: false | |
| env: | |
| CC: ${{ matrix.cc }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Before script | |
| run: | | |
| sed -i '/^[[:blank:]]*nohup / s/^/# /' mlucas.sh | |
| sed -i '/^python3 -OO / s/^/# /' mlucas.sh | |
| $CC --version | |
| - name: Script | |
| run: | | |
| set -x | |
| bash -e -o pipefail -- mlucas.sh ANONYMOUS | |
| echo -e '## Warnings\n```' >> $GITHUB_STEP_SUMMARY | |
| grep 'warning:' Mlucas/obj/build.log | sed 's/\x1B\[\([0-9]\+\(;[0-9]\+\)*\)\?[mK]//g' | awk '{ print $NF }' | sort | uniq -c | sort -nr >> $GITHUB_STEP_SUMMARY | |
| echo '```' >> $GITHUB_STEP_SUMMARY | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ${{ matrix.os }}_${{ matrix.cc }}_mlucas | |
| path: | | |
| Mlucas/ | |
| - name: ShellCheck | |
| run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
| continue-on-error: true | |
| Pylint: | |
| name: Pylint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install dependencies | |
| run: | | |
| python3 -m pip install --upgrade pip | |
| python3 -m pip install pylint | |
| - name: Script | |
| run: pylint -f github --py-version 3.5 -d design,C0103,W0311,C0301,C0302,C0209,R1702 --load-plugins pylint.extensions.code_style,pylint.extensions.comparison_placement,pylint.extensions.for_any_all,pylint.extensions.consider_refactoring_into_while_condition,pylint.extensions.consider_ternary_expression,pylint.extensions.dict_init_mutate,pylint.extensions.docstyle,pylint.extensions.check_elif,pylint.extensions.set_membership,pylint.extensions.typing -e R6104,C1804,C1805 -r y *.py python/*.py | |
| continue-on-error: true | |
| Ruff: | |
| name: Ruff | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install dependencies | |
| run: | | |
| python3 -m pip install --upgrade pip | |
| python3 -m pip install ruff | |
| - name: Script | |
| run: ruff check --output-format=github . | |
| continue-on-error: true |