-
Notifications
You must be signed in to change notification settings - Fork 58
/
.gitlab-ci.yml
164 lines (143 loc) · 3.92 KB
/
.gitlab-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
155
156
157
158
159
160
161
162
163
164
# Copyright 2023 ETH Zurich and University of Bologna.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
variables:
GIT_STRATEGY: clone
GIT_SUBMODULE_STRATEGY: recursive
# Enable colors in CI terminal
TERM: ansi
FORCE_COLOR: 1
# Configure environment
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER: /usr/pack/gcc-9.2.0-af/linux-x64/bin/gcc
LLVM_SYS_120_PREFIX: /usr/pack/llvm-12.0.1-af
CMAKE: cmake-3.18.1
before_script:
source iis-setup.sh
##############
# Build docs #
##############
docs:
script:
- make docs
#####################
# Python unit tests #
#####################
pytest:
script:
- pytest
#################################
# Build Snitch cluster software #
#################################
snitch-cluster-sw:
script:
- cd target/snitch_cluster
- make sw
artifacts:
paths:
- target/snitch_cluster/sw/**/build/*.elf
expire_in: 1 day
snitch-cluster-sw-banshee:
script:
- cd target/snitch_cluster
- make SELECT_RUNTIME=banshee sw
artifacts:
paths:
- target/snitch_cluster/sw/**/build/*.elf
expire_in: 1 day
#######################
# Standalone IP tests #
#######################
# Build and run all individual IP testbenches.
# Currently missing IP tests:
# - snitch_vm
# - snitch_ipu
# - snitch_dma
# - snitch
snitch-ip-tests:
needs: []
parallel:
matrix:
- IP:
- mem_interface
- snitch_cluster
- tcdm_interface
- snitch_ssr
- reqrsp_interface
script:
- cd hw/$IP
- ./util/compile.sh
- ./util/run_vsim.sh
########################
# Snitch cluster tests #
########################
# Verilator
snitch-cluster-vlt:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- make bin/snitch_cluster.vlt
- ./util/run.py sw/run.yaml --simulator verilator -j --run-dir runs/vlt
# VCS
snitch-cluster-vcs:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- make bin/snitch_cluster.vcs
- ./util/run.py sw/run.yaml --simulator vcs -j --run-dir runs/vcs
# Questa
snitch-cluster-vsim:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- make bin/snitch_cluster.vsim
- ./util/run.py sw/run.yaml --simulator vsim -j --run-dir runs/vsim
# Test trace annotation
- make SIM_DIR=./runs/vsim/simple annotate -j
# Run additional, more extensive tests
- cd sw/apps/blas/gemm/test && ./test.sh && cd -
- cd sw/apps/dnn/transpose/test && ./test.sh && cd -
# Banshee
snitch-cluster-banshee:
needs: [snitch-cluster-sw-banshee]
variables:
SNITCH_LOG: info
script:
- rustup install 1.63.0
- rustup override set 1.63.0
- rustc --version
- rustup --version
- git clone [email protected]:pulp-platform/banshee.git --recurse-submodules
- cd banshee
- cargo install --debug --path .
- cd ../target/snitch_cluster
- ./util/run.py sw/run.yaml --simulator banshee -j --run-dir runs/banshee
# Tests requiring hardware FDIV unit
snitch-cluster-fdiv-vsim:
script:
- cd target/snitch_cluster
- make CFG_OVERRIDE=cfg/fdiv.hjson sw
- make bin/snitch_cluster.vsim
- ./util/run.py sw/fdiv.yaml --simulator vsim -j --run-dir runs/vsim
# Run additional, more extensive tests
- cd sw/apps/dnn/flashattention_2/test && ./test.sh && cd -
# Test OmegaNet TCDM interconnect
snitch-cluster-omega-vsim:
script:
- cd target/snitch_cluster
- make CFG_OVERRIDE=cfg/omega.hjson sw
- make bin/snitch_cluster.vsim
- ./util/run.py sw/run.yaml --simulator vsim -j --run-dir runs/vsim
# Test Multi-channel DMA
snitch-cluster-mchan-vsim:
script:
- cd target/snitch_cluster
- make CFG_OVERRIDE=cfg/dma_mchan.hjson sw
- make bin/snitch_cluster.vsim
- ./util/run.py sw/dma_mchan.yaml --simulator vsim -j --run-dir runs/vsim
############
# Non-free #
############
nonfree:
script:
- make nonfree
- make elab