forked from pulp-platform/snitch_cluster
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
156 lines (137 loc) · 3.82 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
# 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
#################################
# 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