mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 05:17:45 -04:00
502 lines
20 KiB
Bash
Executable file
502 lines
20 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Copyright © 2019-2023
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# exit when any command fails
|
|
set -e
|
|
|
|
# clear blackbox cache
|
|
rm -f blackbox.*.cache
|
|
|
|
# HW: add a test "VM Test" to make sure VM feature is enabled
|
|
|
|
XLEN=${XLEN:=@XLEN@}
|
|
|
|
XSIZE=$((XLEN / 8))
|
|
|
|
echo "Vortex Regression Test: XLEN=$XLEN"
|
|
|
|
unittest()
|
|
{
|
|
make -C tests/unittest run
|
|
make -C hw/unittest > /dev/null
|
|
}
|
|
|
|
isa()
|
|
{
|
|
echo "begin isa tests..."
|
|
|
|
make -C sim/simx
|
|
make -C sim/rtlsim
|
|
|
|
make -C tests/riscv/isa run-simx
|
|
make -C tests/riscv/isa run-rtlsim
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_FPNEW" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-32f
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_DPI" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-32f
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_DSP" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-32f
|
|
|
|
if [ "$XLEN" == "64" ]
|
|
then
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_FPNEW" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-64d
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_DPI" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-64d
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_DPI -DEXT_D_DISABLE" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-64f
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_FPNEW -DEXT_D_DISABLE" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-64f
|
|
|
|
make -C sim/rtlsim clean && CONFIGS="-DFPU_DSP -DEXT_D_DISABLE" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-64fx
|
|
fi
|
|
|
|
# clean build
|
|
make -C sim/rtlsim clean
|
|
|
|
echo "isa tests done!"
|
|
}
|
|
|
|
kernel()
|
|
{
|
|
echo "begin kernel tests..."
|
|
|
|
make -C sim/simx
|
|
make -C sim/rtlsim
|
|
|
|
make -C tests/kernel run-simx
|
|
make -C tests/kernel run-rtlsim
|
|
|
|
echo "kernel tests done!"
|
|
}
|
|
|
|
regression()
|
|
{
|
|
echo "begin regression tests..."
|
|
|
|
make -C runtime/simx
|
|
make -C runtime/rtlsim
|
|
|
|
make -C tests/regression run-simx
|
|
make -C tests/regression run-rtlsim
|
|
|
|
# test global barrier
|
|
CONFIGS="-DGBAR_ENABLE" ./ci/blackbox.sh --driver=simx --app=dogfood --args="-n1 -tgbar" --cores=2
|
|
CONFIGS="-DGBAR_ENABLE" ./ci/blackbox.sh --driver=opae --app=dogfood --args="-n1 -tgbar" --cores=2
|
|
CONFIGS="-DGBAR_ENABLE" ./ci/blackbox.sh --driver=xrt --app=dogfood --args="-n1 -tgbar" --cores=2
|
|
|
|
# test local barrier
|
|
./ci/blackbox.sh --driver=simx --app=dogfood --args="-n1 -tbar"
|
|
./ci/blackbox.sh --driver=opae --app=dogfood --args="-n1 -tbar"
|
|
./ci/blackbox.sh --driver=xrt --app=dogfood --args="-n1 -tbar"
|
|
|
|
# test temp driver mode for
|
|
./ci/blackbox.sh --driver=simx --app=vecadd --rebuild=3
|
|
|
|
echo "regression tests done!"
|
|
}
|
|
|
|
opencl()
|
|
{
|
|
echo "begin opencl tests..."
|
|
|
|
make -C runtime/simx
|
|
make -C runtime/rtlsim
|
|
|
|
make -C tests/opencl run-simx
|
|
make -C tests/opencl run-rtlsim
|
|
|
|
./ci/blackbox.sh --driver=simx --app=lbm --warps=8
|
|
./ci/blackbox.sh --driver=rtlsim --app=lbm --warps=8
|
|
|
|
echo "opencl tests done!"
|
|
}
|
|
|
|
vm(){
|
|
echo "begin vm tests..."
|
|
|
|
make -C sim/simx clean && CONFIGS="-DVM_ENABLE" make -C sim/simx
|
|
make -C runtime/simx clean && CONFIGS="-DVM_ENABLE" make -C runtime/simx
|
|
make -C tests/opencl run-simx
|
|
make -C tests/regression run-simx
|
|
|
|
make -C sim/simx clean && CONFIGS="-DVM_ENABLE -DVM_ADDR_MODE=BARE" make -C sim/simx
|
|
make -C runtime/simx clean && CONFIGS="-DVM_ENABLE -DVM_ADDR_MODE=BARE" make -C runtime/simx
|
|
make -C tests/opencl run-simx
|
|
make -C tests/regression run-simx
|
|
|
|
echo "vm tests done!"
|
|
}
|
|
|
|
cache()
|
|
{
|
|
echo "begin cache tests..."
|
|
|
|
# disable local memory
|
|
CONFIGS="-DLMEM_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=demo --perf=1
|
|
CONFIGS="-DLMEM_DISABLE" ./ci/blackbox.sh --driver=simx --app=demo --perf=1
|
|
|
|
# disable L1 cache
|
|
CONFIGS="-DL1_DISABLE -DLMEM_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DL1_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DDCACHE_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DICACHE_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
|
|
# reduce l1 line size
|
|
CONFIGS="-DL1_LINE_SIZE=$XSIZE" ./ci/blackbox.sh --driver=rtlsim --app=io_addr
|
|
CONFIGS="-DL1_LINE_SIZE=$XSIZE -DDISABLE_L1" ./ci/blackbox.sh --driver=rtlsim --app=io_addr
|
|
CONFIGS="-DL1_LINE_SIZE=$XSIZE" ./ci/blackbox.sh --driver=simx --app=io_addr
|
|
CONFIGS="-DL1_LINE_SIZE=$XSIZE -DLMEM_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DL1_LINE_SIZE=$XSIZE -DLMEM_DISABLE" ./ci/blackbox.sh --driver=simx --app=sgemmx
|
|
|
|
# test cache ways
|
|
CONFIGS="-DICACHE_NUM_WAYS=1 -DDCACHE_NUM_WAYS=1" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DICACHE_NUM_WAYS=4 -DDCACHE_NUM_WAYS=8" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DICACHE_NUM_WAYS=4 -DDCACHE_NUM_WAYS=8" ./ci/blackbox.sh --driver=simx --app=sgemmx
|
|
|
|
# test cache banking
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DLMEM_NUM_BANKS=4 -DDCACHE_NUM_BANKS=1" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DLMEM_NUM_BANKS=4 -DDCACHE_NUM_BANKS=1" ./ci/blackbox.sh --driver=simx --app=sgemmx
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DLMEM_NUM_BANKS=2 -DDCACHE_NUM_BANKS=4" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx --threads=8
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DLMEM_NUM_BANKS=2 -DDCACHE_NUM_BANKS=4" ./ci/blackbox.sh --driver=simx --app=sgemmx --threads=8
|
|
|
|
# replacement policy
|
|
CONFIGS="-DDCACHE_REPL_POLICY=0" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DDCACHE_REPL_POLICY=1" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
CONFIGS="-DDCACHE_REPL_POLICY=2" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx
|
|
|
|
# test writeback
|
|
CONFIGS="-DDCACHE_WRITEBACK=1 -DDCACHE_DIRTYBYTES=0 -DDCACHE_NUM_WAYS=4" ./ci/blackbox.sh --driver=rtlsim --app=mstress
|
|
CONFIGS="-DDCACHE_WRITEBACK=1 -DDCACHE_DIRTYBYTES=1 -DDCACHE_NUM_WAYS=4" ./ci/blackbox.sh --driver=rtlsim --app=mstress
|
|
CONFIGS="-DDCACHE_WRITEBACK=1 -DDCACHE_NUM_WAYS=4" ./ci/blackbox.sh --driver=simx --app=mstress
|
|
CONFIGS="-DSOCKET_SIZE=1 -DL2_WRITEBACK=1 -DL3_WRITEBACK=1" ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --l2cache --l3cache --app=mstress
|
|
CONFIGS="-DSOCKET_SIZE=1 -DL2_WRITEBACK=1 -DL3_WRITEBACK=1" ./ci/blackbox.sh --driver=simx --cores=2 --clusters=2 --l2cache --l3cache --app=mstress
|
|
|
|
# cache clustering
|
|
CONFIGS="-DSOCKET_SIZE=4 -DNUM_DCACHES=4 -DNUM_ICACHES=2" ./ci/blackbox.sh --driver=rtlsim --app=sgemmx --cores=4 --warps=1 --threads=2
|
|
|
|
# L2/L3
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=rtlsim --cores=4 --l2cache --app=diverge --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=simx --cores=4 --l2cache --app=diverge --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --l2cache --l3cache --app=diverge --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=simx --cores=2 --clusters=2 --l2cache --l3cache --app=diverge --args="-n1"
|
|
|
|
echo "begin cache tests..."
|
|
}
|
|
|
|
config1()
|
|
{
|
|
echo "begin configuration-1 tests..."
|
|
|
|
# warp/threads
|
|
./ci/blackbox.sh --driver=rtlsim --warps=1 --threads=1 --app=diverge
|
|
./ci/blackbox.sh --driver=rtlsim --warps=2 --threads=2 --app=diverge
|
|
./ci/blackbox.sh --driver=rtlsim --warps=2 --threads=8 --app=diverge
|
|
./ci/blackbox.sh --driver=rtlsim --warps=8 --threads=2 --app=diverge
|
|
./ci/blackbox.sh --driver=simx --warps=1 --threads=1 --app=diverge
|
|
./ci/blackbox.sh --driver=simx --warps=8 --threads=16 --app=diverge
|
|
|
|
# cores clustering
|
|
./ci/blackbox.sh --driver=rtlsim --cores=4 --app=diverge --args="-n1"
|
|
./ci/blackbox.sh --driver=simx --cores=4 --app=diverge --args="-n1"
|
|
./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --app=diverge --args="-n1"
|
|
./ci/blackbox.sh --driver=simx --cores=2 --clusters=2 --app=diverge --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --app=diverge --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=simx --cores=2 --clusters=2 --app=diverge --args="-n1"
|
|
|
|
# issue width
|
|
CONFIGS="-DISSUE_WIDTH=2" ./ci/blackbox.sh --driver=rtlsim --app=diverge
|
|
CONFIGS="-DISSUE_WIDTH=4" ./ci/blackbox.sh --driver=rtlsim --app=diverge
|
|
CONFIGS="-DISSUE_WIDTH=2" ./ci/blackbox.sh --driver=simx --app=diverge
|
|
CONFIGS="-DISSUE_WIDTH=4" ./ci/blackbox.sh --driver=simx --app=diverge
|
|
|
|
# ALU scaling
|
|
CONFIGS="-DISSUE_WIDTH=2 -DNUM_ALU_BLOCK=1 -DNUM_ALU_LANES=2" ./ci/blackbox.sh --driver=rtlsim --app=diverge
|
|
CONFIGS="-DISSUE_WIDTH=4 -DNUM_ALU_BLOCK=4 -DNUM_ALU_LANES=4" ./ci/blackbox.sh --driver=rtlsim --app=diverge
|
|
CONFIGS="-DISSUE_WIDTH=2 -DNUM_ALU_BLOCK=1 -DNUM_ALU_LANES=2" ./ci/blackbox.sh --driver=simx --app=diverge
|
|
CONFIGS="-DISSUE_WIDTH=4 -DNUM_ALU_BLOCK=4 -DNUM_ALU_LANES=4" ./ci/blackbox.sh --driver=simx --app=diverge
|
|
|
|
# FPU scaling
|
|
CONFIGS="-DISSUE_WIDTH=2 -DNUM_FPU_BLOCK=1 -DNUM_FPU_LANES=2" ./ci/blackbox.sh --driver=rtlsim --app=vecaddx
|
|
CONFIGS="-DISSUE_WIDTH=4 -DNUM_FPU_BLOCK=4 -DNUM_FPU_LANES=4" ./ci/blackbox.sh --driver=rtlsim --app=vecaddx
|
|
CONFIGS="-DISSUE_WIDTH=2 -DNUM_FPU_BLOCK=1 -DNUM_FPU_LANES=2" ./ci/blackbox.sh --driver=simx --app=vecaddx
|
|
CONFIGS="-DISSUE_WIDTH=4 -DNUM_FPU_BLOCK=4 -DNUM_FPU_LANES=4" ./ci/blackbox.sh --driver=simx --app=vecaddx
|
|
|
|
# FPU's PE scaling
|
|
CONFIGS="-DFMA_PE_RATIO=2" ./ci/blackbox.sh --driver=rtlsim --app=dogfood --args="-tfmadd"
|
|
CONFIGS="-DFCVT_PE_RATIO=2" ./ci/blackbox.sh --driver=rtlsim --app=dogfood --args="-tftoi"
|
|
CONFIGS="-DFDIV_PE_RATIO=2" ./ci/blackbox.sh --driver=rtlsim --app=dogfood --args="-tfdiv"
|
|
CONFIGS="-DFSQRT_PE_RATIO=2" ./ci/blackbox.sh --driver=rtlsim --app=dogfood --args="-tfsqrt"
|
|
CONFIGS="-DFNCP_PE_RATIO=2" ./ci/blackbox.sh --driver=rtlsim --app=dogfood --args="-tfclamp"
|
|
|
|
# LSU scaling
|
|
CONFIGS="-DISSUE_WIDTH=2 -DNUM_LSU_BLOCK=1 -DNUM_LSU_LANES=2" ./ci/blackbox.sh --driver=rtlsim --app=vecaddx
|
|
CONFIGS="-DISSUE_WIDTH=4 -DNUM_LSU_BLOCK=4 -DNUM_LSU_LANES=4" ./ci/blackbox.sh --driver=rtlsim --app=vecaddx
|
|
CONFIGS="-DISSUE_WIDTH=2 -DNUM_LSU_BLOCK=1 -DNUM_LSU_LANES=2" ./ci/blackbox.sh --driver=simx --app=vecaddx
|
|
CONFIGS="-DISSUE_WIDTH=4 -DNUM_LSU_BLOCK=4 -DNUM_LSU_LANES=4" ./ci/blackbox.sh --driver=simx --app=vecaddx
|
|
|
|
echo "configuration-1 tests done!"
|
|
}
|
|
|
|
config2()
|
|
{
|
|
echo "begin configuration-2 tests..."
|
|
|
|
# test opaesim
|
|
./ci/blackbox.sh --driver=opae --app=printf
|
|
./ci/blackbox.sh --driver=opae --app=diverge
|
|
./ci/blackbox.sh --driver=xrt --app=diverge
|
|
|
|
# disable DPI
|
|
if [ "$XLEN" == "64" ]; then
|
|
# need to disable trig on 64-bit due to a bug inside fpnew's sqrt core.
|
|
CONFIGS="-DDPI_DISABLE -DFPU_FPNEW" ./ci/blackbox.sh --driver=rtlsim --app=dogfood --args="-xtrig -xbar -xgbar"
|
|
CONFIGS="-DDPI_DISABLE -DFPU_FPNEW" ./ci/blackbox.sh --driver=opae --app=dogfood --args="-xtrig -xbar -xgbar"
|
|
CONFIGS="-DDPI_DISABLE -DFPU_FPNEW" ./ci/blackbox.sh --driver=xrt --app=dogfood --args="-xtrig -xbar -xgbar"
|
|
else
|
|
CONFIGS="-DDPI_DISABLE -DFPU_FPNEW" ./ci/blackbox.sh --driver=rtlsim --app=dogfood
|
|
CONFIGS="-DDPI_DISABLE -DFPU_FPNEW" ./ci/blackbox.sh --driver=opae --app=dogfood
|
|
CONFIGS="-DDPI_DISABLE -DFPU_FPNEW" ./ci/blackbox.sh --driver=xrt --app=dogfood
|
|
fi
|
|
|
|
# custom program startup address
|
|
make -C tests/regression/dogfood clean-kernel
|
|
STARTUP_ADDR=0x80000000 make -C tests/regression/dogfood
|
|
./ci/blackbox.sh --driver=simx --app=dogfood
|
|
./ci/blackbox.sh --driver=rtlsim --app=dogfood
|
|
make -C tests/regression/dogfood clean-kernel
|
|
|
|
# disabling M & F extensions
|
|
make -C sim/rtlsim clean && CONFIGS="-DEXT_M_DISABLE -DEXT_F_DISABLE" make -C sim/rtlsim > /dev/null && make -C tests/riscv/isa run-rtlsim-32i
|
|
make -C sim/rtlsim clean
|
|
|
|
# disabling ZICOND extension
|
|
CONFIGS="-DEXT_ZICOND_DISABLE" ./ci/blackbox.sh --driver=rtlsim --app=demo
|
|
|
|
# test 128-bit memory block
|
|
CONFIGS="-DMEM_BLOCK_SIZE=16" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DMEM_BLOCK_SIZE=16" ./ci/blackbox.sh --driver=xrt --app=mstress
|
|
|
|
# test XLEN-bit memory block
|
|
CONFIGS="-DMEM_BLOCK_SIZE=$XSIZE" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DMEM_BLOCK_SIZE=$XSIZE" ./ci/blackbox.sh --driver=simx --app=mstress
|
|
|
|
# test memory coalescing
|
|
CONFIGS="-DMEM_BLOCK_SIZE=16" ./ci/blackbox.sh --driver=rtlsim --app=mstress --threads=8
|
|
CONFIGS="-DMEM_BLOCK_SIZE=16" ./ci/blackbox.sh --driver=simx --app=mstress --threads=8
|
|
|
|
# test single-bank memory
|
|
if [ "$XLEN" == "64" ]; then
|
|
CONFIGS="-DPLATFORM_MEMORY_NUM_BANKS=1" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DPLATFORM_MEMORY_NUM_BANKS=1" ./ci/blackbox.sh --driver=xrt --app=mstress
|
|
else
|
|
CONFIGS="-DPLATFORM_MEMORY_NUM_BANKS=1" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DPLATFORM_MEMORY_NUM_BANKS=1" ./ci/blackbox.sh --driver=xrt --app=mstress
|
|
fi
|
|
|
|
# test larger memory address
|
|
if [ "$XLEN" == "64" ]; then
|
|
CONFIGS="-DPLATFORM_MEMORY_ADDR_WIDTH=49" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DPLATFORM_MEMORY_ADDR_WIDTH=49" ./ci/blackbox.sh --driver=xrt --app=mstress
|
|
else
|
|
CONFIGS="-DPLATFORM_MEMORY_ADDR_WIDTH=33" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DPLATFORM_MEMORY_ADDR_WIDTH=33" ./ci/blackbox.sh --driver=xrt --app=mstress
|
|
fi
|
|
|
|
# test memory banks interleaving
|
|
CONFIGS="-DPLATFORM_MEMORY_INTERLEAVE=1" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
CONFIGS="-DPLATFORM_MEMORY_INTERLEAVE=0" ./ci/blackbox.sh --driver=opae --app=mstress
|
|
|
|
# test memory ports
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DPLATFORM_MEMORY_NUM_BANKS=2" ./ci/blackbox.sh --driver=simx --app=mstress
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DPLATFORM_MEMORY_NUM_BANKS=2" ./ci/blackbox.sh --driver=simx --app=mstress --threads=8
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DPLATFORM_MEMORY_NUM_BANKS=2" ./ci/blackbox.sh --driver=rtlsim --app=mstress
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8 -DPLATFORM_MEMORY_NUM_BANKS=2" ./ci/blackbox.sh --driver=rtlsim --app=mstress --threads=8
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8" ./ci/blackbox.sh --driver=opae --app=mstress --threads=8
|
|
CONFIGS="-DMEM_BLOCK_SIZE=8" ./ci/blackbox.sh --driver=xrt --app=mstress --threads=8
|
|
|
|
echo "configuration-2 tests done!"
|
|
}
|
|
|
|
test_csv_trace()
|
|
{
|
|
# test CSV trace generation
|
|
make -C sim/simx clean && DEBUG=3 make -C sim/simx > /dev/null
|
|
make -C sim/rtlsim clean && DEBUG=3 CONFIGS="-DGPR_RESET" make -C sim/rtlsim > /dev/null
|
|
make -C tests/riscv/isa run-simx-32im > run_simx.log
|
|
make -C tests/riscv/isa run-rtlsim-32im > run_rtlsim.log
|
|
./ci/trace_csv.py -tsimx run_simx.log -otrace_simx.csv
|
|
./ci/trace_csv.py -trtlsim run_rtlsim.log -otrace_rtlsim.csv
|
|
diff trace_rtlsim.csv trace_simx.csv
|
|
# clean build
|
|
make -C sim/simx clean
|
|
make -C sim/rtlsim clean
|
|
}
|
|
|
|
debug()
|
|
{
|
|
echo "begin debugging tests..."
|
|
|
|
test_csv_trace
|
|
|
|
CONFIGS="-O0" ./ci/blackbox.sh --driver=opae --app=demo --args="-n1"
|
|
CONFIGS="-O0" ./ci/blackbox.sh --driver=xrt --app=demo --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=opae --cores=2 --clusters=2 --l2cache --debug=1 --perf=1 --app=demo --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=xrt --cores=2 --clusters=2 --l2cache --debug=1 --perf=1 --app=demo --args="-n1"
|
|
CONFIGS="-DSOCKET_SIZE=1" ./ci/blackbox.sh --driver=simx --cores=2 --clusters=2 --l2cache --debug=1 --perf=1 --app=demo --args="-n1"
|
|
|
|
echo "debugging tests done!"
|
|
}
|
|
|
|
scope()
|
|
{
|
|
echo "begin scope tests..."
|
|
|
|
SCOPE_DEPTH=128 ./ci/blackbox.sh --driver=opae --app=demo --args="-n1" --scope
|
|
SCOPE_DEPTH=128 ./ci/blackbox.sh --driver=xrt --app=demo --args="-n1" --scope
|
|
|
|
echo "debugging scope done!"
|
|
}
|
|
|
|
stress()
|
|
{
|
|
echo "begin stress tests..."
|
|
|
|
# test verilator reset values
|
|
CONFIGS="-DVERILATOR_RESET_VALUE=1 -DSOCKET_SIZE=1 -DDCACHE_WRITEBACK=1 -DL2_WRITEBACK=1 -DL3_WRITEBACK=1" ./ci/blackbox.sh --driver=opae --cores=2 --clusters=2 --l2cache --l3cache --app=dogfood
|
|
CONFIGS="-DVERILATOR_RESET_VALUE=1" ./ci/blackbox.sh --driver=xrt --app=sgemmx --args="-n128" --l2cache
|
|
|
|
echo "stress tests done!"
|
|
}
|
|
|
|
synthesis()
|
|
{
|
|
echo "begin synthesis tests..."
|
|
|
|
PREFIX=build_base make -C hw/syn/yosys clean
|
|
PREFIX=build_base CONFIGS="-DDPI_DISABLE -DEXT_F_DISABLE -DNUM_WARPS=2 -DNUM_THREADS=2" make -C hw/syn/yosys synthesis
|
|
|
|
echo "synthesis tests done!"
|
|
}
|
|
|
|
vector()
|
|
{
|
|
echo "begin vector tests..."
|
|
|
|
make -C sim/simx clean && CONFIGS="-DEXT_V_ENABLE" make -C sim/simx
|
|
TOOLDIR=@TOOLDIR@ XLEN=@XLEN@ VLEN=256 REG_TESTS=1 GEN_TESTS=0 ./tests/riscv/riscv-vector-tests/run-test.sh
|
|
|
|
echo "vector tests done!"
|
|
}
|
|
|
|
show_usage()
|
|
{
|
|
echo "Vortex Regression Test"
|
|
echo "Usage: $0 [--clean] [--unittest] [--isa] [--kernel] [--regression] [--opencl] [--cache] [--config1] [--config2] [--debug] [--scope] [--stress] [--synthesis] [--vector] [--all] [--h|--help]"
|
|
}
|
|
|
|
declare -a tests=()
|
|
clean=0
|
|
|
|
while [ "$1" != "" ]; do
|
|
case $1 in
|
|
--clean )
|
|
clean=1
|
|
;;
|
|
--unittest )
|
|
tests+=("unittest")
|
|
;;
|
|
--isa )
|
|
tests+=("isa")
|
|
;;
|
|
--kernel )
|
|
tests+=("kernel")
|
|
;;
|
|
--regression )
|
|
tests+=("regression")
|
|
;;
|
|
--opencl )
|
|
tests+=("opencl")
|
|
;;
|
|
--cache )
|
|
tests+=("cache")
|
|
;;
|
|
--vm )
|
|
tests+=("vm")
|
|
;;
|
|
--config1 )
|
|
tests+=("config1")
|
|
;;
|
|
--config2 )
|
|
tests+=("config2")
|
|
;;
|
|
--debug )
|
|
tests+=("debug")
|
|
;;
|
|
--scope )
|
|
tests+=("scope")
|
|
;;
|
|
--stress )
|
|
tests+=("stress")
|
|
;;
|
|
--synthesis )
|
|
tests+=("synthesis")
|
|
;;
|
|
--vector )
|
|
tests+=("vector")
|
|
;;
|
|
--all )
|
|
tests=()
|
|
tests+=("unittest")
|
|
tests+=("isa")
|
|
tests+=("kernel")
|
|
tests+=("regression")
|
|
tests+=("opencl")
|
|
tests+=("cache")
|
|
tests+=("vm")
|
|
tests+=("config1")
|
|
tests+=("config2")
|
|
tests+=("debug")
|
|
tests+=("scope")
|
|
tests+=("stress")
|
|
tests+=("synthesis")
|
|
tests+=("vector")
|
|
;;
|
|
-h | --help )
|
|
show_usage
|
|
exit
|
|
;;
|
|
* )
|
|
show_usage
|
|
exit 1
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ $clean -eq 1 ];
|
|
then
|
|
make clean
|
|
make -s
|
|
fi
|
|
|
|
start=$SECONDS
|
|
|
|
for test in "${tests[@]}"; do
|
|
$test
|
|
done
|
|
|
|
echo "Regression completed!"
|
|
|
|
duration=$(( SECONDS - start ))
|
|
awk -v t=$duration 'BEGIN{t=int(t*1000); printf "Elapsed Time: %d:%02d:%02d\n", t/3600000, t/60000%60, t/1000%60}'
|