[VENTUS][test] Add the regression tests
In order to prevent new errors from being introduced when modifying the code, we add regression tests in the project build script and workflow. The regression tests mainly includes some cases that come with gpu-rodinia and pocl.
This commit is contained in:
parent
9b14cdb6b2
commit
78b9e9c855
|
@ -5,11 +5,15 @@ env:
|
||||||
ISA_SIMULATOR: ventus-gpgpu-isa-simulator
|
ISA_SIMULATOR: ventus-gpgpu-isa-simulator
|
||||||
BUILD_TYPE: Release
|
BUILD_TYPE: Release
|
||||||
VENTUS_DRIVER: ventus-driver
|
VENTUS_DRIVER: ventus-driver
|
||||||
|
RODINIA: gpu-rodinia
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 2 * * *' # Runs at 2am everyday
|
- cron: '0 2 * * *' # Runs at 2am everyday
|
||||||
|
workflow_dispatch:
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -40,10 +44,16 @@ jobs:
|
||||||
git clone https://github.com/THU-DSP-LAB/pocl.git ${{github.workspace}}/../$POCL
|
git clone https://github.com/THU-DSP-LAB/pocl.git ${{github.workspace}}/../$POCL
|
||||||
git clone https://github.com/OCL-dev/ocl-icd.git ${{github.workspace}}/../$OCL_ICD
|
git clone https://github.com/OCL-dev/ocl-icd.git ${{github.workspace}}/../$OCL_ICD
|
||||||
git clone https://github.com/THU-DSP-LAB/ventus-gpgpu-isa-simulator.git ${{github.workspace}}/../$ISA_SIMULATOR
|
git clone https://github.com/THU-DSP-LAB/ventus-gpgpu-isa-simulator.git ${{github.workspace}}/../$ISA_SIMULATOR
|
||||||
git clone https://github.com/yangzexia/ventus-driver.git ${{github.workspace}}/../$VENTUS_DRIVER
|
git clone https://github.com/THU-DSP-LAB/ventus-driver.git ${{github.workspace}}/../$VENTUS_DRIVER
|
||||||
|
git clone https://github.com/Jules-Kong/gpu-rodinia.git ${{github.workspace}}/../$RODINIA
|
||||||
export DRIVER_DIR=${{github.workspace}}/../$VENTUS_DRIVER
|
export DRIVER_DIR=${{github.workspace}}/../$VENTUS_DRIVER
|
||||||
export DRIVER_BUILD_DIR=${DRIVER_DIR}/build
|
export DRIVER_BUILD_DIR=${DRIVER_DIR}/build
|
||||||
export VENTUS_INSTALL_PREFIX=${{github.workspace}}/install
|
export VENTUS_INSTALL_PREFIX=${{github.workspace}}/install
|
||||||
|
wget -P ${{github.workspace}}/../$RODINIA -c https://www.dropbox.com/s/cc6cozpboht3mtu/rodinia-3.1-data.tar.gz
|
||||||
|
tar -zxvf ${{github.workspace}}/../$RODINIA/rodinia-3.1-data.tar.gz -C ${{github.workspace}}/../$RODINIA
|
||||||
|
mv ${{github.workspace}}/../$RODINIA/rodinia-data/* ${{github.workspace}}/../$RODINIA/data/
|
||||||
|
rm ${{github.workspace}}/../$RODINIA/rodinia-3.1-data.tar.gz
|
||||||
|
rm ${{github.workspace}}/../$RODINIA/rodinia-data -rf
|
||||||
|
|
||||||
- name: Start building llvm-ventus
|
- name: Start building llvm-ventus
|
||||||
shell: bash
|
shell: bash
|
||||||
|
@ -75,6 +85,16 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
bash build-ventus.sh --build ${POCL}
|
bash build-ventus.sh --build ${POCL}
|
||||||
|
|
||||||
|
- name: Start testing gpu-rodinia
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
bash build-ventus.sh --build rodinia
|
||||||
|
|
||||||
|
- name: Start testing pocl
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
bash build-ventus.sh --build test-pocl
|
||||||
|
|
||||||
- name: Start ISA simulation test
|
- name: Start ISA simulation test
|
||||||
run: |
|
run: |
|
||||||
# Later need to add test files and test script for testing
|
# Later need to add test files and test script for testing
|
||||||
|
|
|
@ -4,7 +4,7 @@ DIR=$(cd "$(dirname "${0}")" &> /dev/null && (pwd -W 2> /dev/null || pwd))
|
||||||
VENTUS_BUILD_DIR=${DIR}/build
|
VENTUS_BUILD_DIR=${DIR}/build
|
||||||
LIBCLC_BUILD_DIR=${DIR}/build-libclc
|
LIBCLC_BUILD_DIR=${DIR}/build-libclc
|
||||||
VENTUS_INSTALL_PREFIX=${DIR}/install
|
VENTUS_INSTALL_PREFIX=${DIR}/install
|
||||||
PROGRAMS_TOBUILD=(llvm ocl-icd libclc spike driver pocl)
|
PROGRAMS_TOBUILD=(llvm ocl-icd libclc spike driver pocl rodinia test-pocl)
|
||||||
|
|
||||||
# Helper function
|
# Helper function
|
||||||
help() {
|
help() {
|
||||||
|
@ -102,6 +102,13 @@ fi
|
||||||
check_if_program_exits ${OCL_ICD_DIR} "ocl icd"
|
check_if_program_exits ${OCL_ICD_DIR} "ocl icd"
|
||||||
OCL_ICD_BUILD_DIR=${OCL_ICD_DIR}/build
|
OCL_ICD_BUILD_DIR=${OCL_ICD_DIR}/build
|
||||||
|
|
||||||
|
# Need to get the gpu-rodinia folder from enviroment variables
|
||||||
|
if [ -z "${RODINIA_DIR}" ]; then
|
||||||
|
RODINIA_DIR=${DIR}/../gpu-rodinia
|
||||||
|
fi
|
||||||
|
|
||||||
|
check_if_program_exits ${RODINIA_DIR} "gpu-rodinia"
|
||||||
|
|
||||||
# Build llvm
|
# Build llvm
|
||||||
build_llvm() {
|
build_llvm() {
|
||||||
if [ ! -d "${VENTUS_BUILD_DIR}" ]; then
|
if [ ! -d "${VENTUS_BUILD_DIR}" ]; then
|
||||||
|
@ -204,12 +211,29 @@ build_icd_loader() {
|
||||||
make && make install
|
make && make install
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Test the rodinia test suit
|
||||||
|
test_rodinia() {
|
||||||
|
cd ${RODINIA_DIR}
|
||||||
|
make OCL_clean
|
||||||
|
make OPENCL
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO : More test cases of the pocl will be added
|
||||||
|
test_pocl() {
|
||||||
|
cd ${POCL_BUILD_DIR}/examples
|
||||||
|
./vecadd/vecadd
|
||||||
|
./matadd/matadd
|
||||||
|
}
|
||||||
|
|
||||||
# Export needed path and enviroment variables
|
# Export needed path and enviroment variables
|
||||||
export_elements() {
|
export_elements() {
|
||||||
export PATH=${VENTUS_INSTALL_PREFIX}/bin:$PATH
|
export PATH=${VENTUS_INSTALL_PREFIX}/bin:$PATH
|
||||||
export LD_LIBRARY_PATH=${VENTUS_INSTALL_PREFIX}/lib:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${VENTUS_INSTALL_PREFIX}/lib:$LD_LIBRARY_PATH
|
||||||
export SPIKE_SRC_DIR=${SPIKE_DIR}
|
export SPIKE_SRC_DIR=${SPIKE_DIR}
|
||||||
export SPIKE_TARGET_DIR=${VENTUS_INSTALL_PREFIX}
|
export SPIKE_TARGET_DIR=${VENTUS_INSTALL_PREFIX}
|
||||||
|
export VENTUS_INSTALL_PREFIX=${VENTUS_INSTALL_PREFIX}
|
||||||
|
export POCL_DEVICES="ventus"
|
||||||
|
export OCL_ICD_VENDORS=${VENTUS_INSTALL_PREFIX}/lib/libpocl.so
|
||||||
}
|
}
|
||||||
|
|
||||||
# When no need to build llvm, export needed elements
|
# When no need to build llvm, export needed elements
|
||||||
|
@ -266,6 +290,16 @@ do
|
||||||
check_if_ventus_built
|
check_if_ventus_built
|
||||||
check_if_ocl_icd_built
|
check_if_ocl_icd_built
|
||||||
build_pocl
|
build_pocl
|
||||||
|
elif [ "${program}" == "rodinia" ]; then
|
||||||
|
check_if_ventus_built
|
||||||
|
check_if_ocl_icd_built
|
||||||
|
check_if_spike_built
|
||||||
|
test_rodinia
|
||||||
|
elif [ "${program}" == "test-pocl" ]; then
|
||||||
|
check_if_ventus_built
|
||||||
|
check_if_ocl_icd_built
|
||||||
|
check_if_spike_built
|
||||||
|
test_pocl
|
||||||
else
|
else
|
||||||
echo "Invalid build options: \"${program}\" , try $0 --help for help"
|
echo "Invalid build options: \"${program}\" , try $0 --help for help"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
Loading…
Reference in New Issue