-
-
Notifications
You must be signed in to change notification settings - Fork 6
154 lines (146 loc) · 5.76 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: CI
on:
push:
branches: [ '*' ]
pull_request:
branches: [ '*' ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
Linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Download large files
working-directory: ./models
run: ./download.sh CI
- name: Add llvm-tools-preview
run: rustup component add llvm-tools-preview
- name: Install grcov
run: cargo install grcov
- name: Install dependencies
run: sudo apt install libomp-dev xz-utils
- name: Install uv
uses: yezz123/setup-uv@v4
- name: Free up disk
run: sudo rm -rf /usr/local/lib/android || true
- name: Test
run: |
cargo test --release
ALTIUS_ENABLE_CLIF=1 cargo test --release
env:
RUSTFLAGS: -Cinstrument-coverage
LLVM_PROFILE_FILE: coverage-%p-%m.profraw
- name: Run examples
run: |
(cd crates/altius_py && uv run python deit.py)
# (cd crates/altius_py && uv run python resnet50.py)
(cd crates/altius_py && uv run python export_vit.py)
cargo run --release --example mnist
cargo run --release --example mobilenet
cargo run --release --example deit
cargo run --release --example mnist_cpu
cargo run --release --example mobilenet_cpu
cargo run --release --example deit_cpu
cargo run --release --example vit_cpu
cargo run --release --example vit
cargo run --release --example infer -- ./models/mnist-8.onnx
env:
RUSTFLAGS: -Cinstrument-coverage
LLVM_PROFILE_FILE: coverage-%p-%m.profraw
- name: Submit coverage
run: |
mkdir -p /tmp/cov/
cp -rf ./target/release/* /tmp/cov/
grcov . --binary-path /tmp/cov/ -s . -t cobertura --branch --ignore-not-existing --ignore "*cargo*" -o coverage.xml
bash <(curl -s https://codecov.io/bash)
env:
RUSTFLAGS: -Cinstrument-coverage
LLVM_PROFILE_FILE: coverage-%p-%m.profraw
# TODO: Fails due to:
# 0 0x1030cf648 __assert_rtn + 72
# 1 0x10301b0f4 ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const*) const + 21260
# 2 0x103026e30 ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_7::operator()(unsigned long, ld::FileInfo const&) const + 420
# 3 0x1837be428 _dispatch_client_callout2 + 20
# 4 0x1837d2850 _dispatch_apply_invoke3 + 336
# 5 0x1837be3e8 _dispatch_client_callout + 20
# 6 0x1837bfc68 _dispatch_once_callout + 32
# 7 0x1837d18a4 _dispatch_apply_invoke + 252
# 8 0x1837be3e8 _dispatch_client_callout + 20
# 9 0x1837d0080 _dispatch_root_queue_drain + 864
# 10 0x1837d06b8 _dispatch_worker_thread2 + 156
# 11 0x18396afd0 _pthread_wqthread + 228
# ld: Assertion failed: (pattern[0].addrMode == addr_other), function addFixupFromRelocations, file Relocations.cpp, line 698.
# clang: error: linker command failed with exit code 1 (use -v to see invocation)
# macOS:
# runs-on: macos-14
# steps:
# - uses: actions/checkout@v2
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: nightly
# # - uses: actions/cache@v2
# # with:
# # path: |
# # ~/.cargo/registry
# # ~/.cargo/git
# # target
# # key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# - name: Download large files
# working-directory: ./models
# run: ./download.sh CI
# - name: Install dependencies
# run: |
# brew install llvm libomp
# - name: Install rye
# uses: eifinger/setup-rye@v2
# - name: Free up disk
# run: sudo rm -rf /usr/local/lib/android || true
# - name: Test
# run: |
# export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
# export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
# export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
# cargo test --release
# ALTIUS_ENABLE_CLIF=1 cargo test --release
# TODO: Due to a OpenMP-related problem, we temporarily disable this action:
# - name: Run examples
# run: |
# export PATH="/usr/local/opt/llvm/bin:$PATH"
# export LDFLAGS="-L/usr/local/opt/llvm/lib"
# export CPPFLAGS="-I/usr/local/opt/llvm/include"
# (cd crates/altius_py && poetry run python deit.py)
# (cd crates/altius_py && poetry run python resnet50.py)
# (cd crates/altius_py && poetry run python export_vit.py)
# cargo run --release --example mnist
# cargo run --release --example mobilenet
# cargo run --release --example deit
# cargo run --release --example mnist_cpu
# cargo run --release --example mobilenet_cpu
# cargo run --release --example deit_cpu
# cargo run --release --example vit_cpu
# cargo run --release --example vit
# cargo run --release --example infer -- ./models/mnist-8.onnx
# We do not submit code coverage measured on macOS.
# - name: Submit coverage
# run: |
# mkdir -p /tmp/cov/
# cp -rf ./target/release/* /tmp/cov/
# grcov . --binary-path /tmp/cov/ -s . -t cobertura --branch --ignore-not-existing --ignore "*cargo*" -o coverage.xml
# bash <(curl -s https://codecov.io/bash)
# env:
# RUSTFLAGS: -Cinstrument-coverage
# LLVM_PROFILE_FILE: coverage-%p-%m.profraw