Merge branch 'develop'

This commit is contained in:
Blaise Tine
2023-11-10 02:57:42 -08:00
10 changed files with 139 additions and 157 deletions

View File

@@ -1,31 +0,0 @@
#!/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 POCL cache
rm -rf ~/.cache/pocl
# force rebuild test kernels
make -C tests clean-all
# ensure build
make -s
# run tests
make -C tests/kernel run-simx
make -C tests/regression run-simx
make -C tests/opencl run-simx

29
ci/toolchain_env.sh Normal file
View File

@@ -0,0 +1,29 @@
#!/bin/sh
# Copyright 2023 blaise
#
# 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.
TOOLDIR=${TOOLDIR:=/opt}
export RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv-gnu-toolchain
export LLVM_POCL=$TOOLDIR/llvm-pocl
export LLVM_VORTEX=$TOOLDIR/llvm-vortex
export VERILATOR_ROOT=$TOOLDIR/verilator
export PATH=$VERILATOR_ROOT/bin:$PATH
export SV2V_PATH=$TOOLDIR/sv2v
export PATH=$SV2V_PATH/bin:$PATH
export YOSYS_PATH=$TOOLDIR/yosys
export PATH=$YOSYS_PATH/bin:$PATH
export POCL_CC_PATH=$TOOLDIR/pocl/compiler
export POCL_RT_PATH=$TOOLDIR/pocl/runtime

View File

@@ -17,50 +17,50 @@
set -e
REPOSITORY=https://github.com/vortexgpgpu/vortex-toolchain-prebuilt/raw/master
DESTDIR="${DESTDIR:=/opt}"
TOOLDIR=${TOOLDIR:=/opt}
OSDIR=${OSDIR:=ubuntu/bionic}
OS="${OS:=ubuntu/bionic}"
riscv()
{
case $OS in
case $OSDIR in
"centos/7") parts=$(eval echo {a..h}) ;;
*) parts=$(eval echo {a..j}) ;;
esac
rm -f riscv-gnu-toolchain.tar.bz2.parta*
for x in $parts
do
wget $REPOSITORY/riscv-gnu-toolchain/$OS/riscv-gnu-toolchain.tar.bz2.parta$x
wget $REPOSITORY/riscv-gnu-toolchain/$OSDIR/riscv-gnu-toolchain.tar.bz2.parta$x
done
cat riscv-gnu-toolchain.tar.bz2.parta* > riscv-gnu-toolchain.tar.bz2
tar -xvf riscv-gnu-toolchain.tar.bz2
cp -r riscv-gnu-toolchain $DESTDIR
cp -r riscv-gnu-toolchain $TOOLDIR
rm -f riscv-gnu-toolchain.tar.bz2*
rm -rf riscv-gnu-toolchain
}
riscv64()
{
case $OS in
case $OSDIR in
"centos/7") parts=$(eval echo {a..h}) ;;
*) parts=$(eval echo {a..j}) ;;
esac
rm -f riscv64-gnu-toolchain.tar.bz2.parta*
for x in $parts
do
wget $REPOSITORY/riscv64-gnu-toolchain/$OS/riscv64-gnu-toolchain.tar.bz2.parta$x
wget $REPOSITORY/riscv64-gnu-toolchain/$OSDIR/riscv64-gnu-toolchain.tar.bz2.parta$x
done
cat riscv64-gnu-toolchain.tar.bz2.parta* > riscv64-gnu-toolchain.tar.bz2
tar -xvf riscv64-gnu-toolchain.tar.bz2
cp -r riscv64-gnu-toolchain $DESTDIR
cp -r riscv64-gnu-toolchain $TOOLDIR
rm -f riscv64-gnu-toolchain.tar.bz2*
rm -rf riscv64-gnu-toolchain
}
llvm-vortex()
{
case $OS in
case $OSDIR in
"centos/7") parts=$(eval echo {a..b}) ;;
*) parts=$(eval echo {a..b}) ;;
esac
@@ -68,18 +68,18 @@ llvm-vortex()
rm -f llvm-vortex.tar.bz2.parta*
for x in $parts
do
wget $REPOSITORY/llvm-vortex/$OS/llvm-vortex.tar.bz2.parta$x
wget $REPOSITORY/llvm-vortex/$OSDIR/llvm-vortex.tar.bz2.parta$x
done
cat llvm-vortex.tar.bz2.parta* > llvm-vortex.tar.bz2
tar -xvf llvm-vortex.tar.bz2
cp -r llvm-vortex $DESTDIR
cp -r llvm-vortex $TOOLDIR
rm -f llvm-vortex.tar.bz2*
rm -rf llvm-vortex
}
llvm-pocl()
{
case $OS in
case $OSDIR in
"centos/7") parts=$(eval echo {a..b}) ;;
*) parts=$(eval echo {a..b}) ;;
esac
@@ -87,45 +87,45 @@ llvm-pocl()
rm -f llvm-pocl.tar.bz2.parta*
for x in $parts
do
wget $REPOSITORY/llvm-pocl/$OS/llvm-pocl.tar.bz2.parta$x
wget $REPOSITORY/llvm-pocl/$OSDIR/llvm-pocl.tar.bz2.parta$x
done
cat llvm-pocl.tar.bz2.parta* > llvm-pocl.tar.bz2
tar -xvf llvm-pocl.tar.bz2
cp -r llvm-pocl $DESTDIR
cp -r llvm-pocl $TOOLDIR
rm -f llvm-pocl.tar.bz2*
rm -rf llvm-pocl
}
pocl()
{
wget $REPOSITORY/pocl/$OS/pocl.tar.bz2
wget $REPOSITORY/pocl/$OSDIR/pocl.tar.bz2
tar -xvf pocl.tar.bz2
rm -f pocl.tar.bz2
cp -r pocl $DESTDIR
cp -r pocl $TOOLDIR
rm -rf pocl
}
verilator()
{
wget $REPOSITORY/verilator/$OS/verilator.tar.bz2
wget $REPOSITORY/verilator/$OSDIR/verilator.tar.bz2
tar -xvf verilator.tar.bz2
cp -r verilator $DESTDIR
cp -r verilator $TOOLDIR
rm -f verilator.tar.bz2
rm -rf verilator
}
sv2v()
{
wget $REPOSITORY/sv2v/$OS/sv2v.tar.bz2
wget $REPOSITORY/sv2v/$OSDIR/sv2v.tar.bz2
tar -xvf sv2v.tar.bz2
rm -f sv2v.tar.bz2
cp -r sv2v $DESTDIR
cp -r sv2v $TOOLDIR
rm -rf sv2v
}
yosys()
{
case $OS in
case $OSDIR in
"centos/7") parts=$(eval echo {a..c}) ;;
*) parts=$(eval echo {a..c}) ;;
esac
@@ -133,11 +133,11 @@ yosys()
rm -f yosys.tar.bz2.parta*
for x in $parts
do
wget $REPOSITORY/yosys/$OS/yosys.tar.bz2.parta$x
wget $REPOSITORY/yosys/$OSDIR/yosys.tar.bz2.parta$x
done
cat yosys.tar.bz2.parta* > yosys.tar.bz2
tar -xvf yosys.tar.bz2
cp -r yosys $DESTDIR
cp -r yosys $TOOLDIR
rm -f yosys.tar.bz2*
rm -rf yosys
}
@@ -160,20 +160,19 @@ while [ "$1" != "" ]; do
;;
--llvm-vortex ) llvm-vortex
;;
--llvm-pocl ) llvm-pocl
--llvm-pocl ) llvm-pocl
;;
--sv2v ) sv2v
;;
--yosys ) yosys
;;
--all ) riscv
riscv64
llvm-vortex
llvm-pocl
pocl
--all ) pocl
verilator
sv2v
yosys
llvm-vortex
riscv
riscv64
;;
-h | --help ) show_usage
exit

View File

@@ -16,77 +16,72 @@
# exit when any command fails
set -e
OS_DIR=${OS_DIR:-'ubuntu/bionic'}
SRCDIR=${SRCDIR:-'/opt'}
DESTDIR=${DESTDIR:-'.'}
echo "OS_DIR=${OS_DIR}"
echo "SRCDIR=${SRCDIR}"
echo "DESTDIR=${DESTDIR}"
TOOLDIR=${TOOLDIR:=/opt}
OSDIR=${OSDIR:=ubuntu/bionic}
riscv()
{
echo "prebuilt riscv-gnu-toolchain..."
tar -C $SRCDIR -cvjf riscv-gnu-toolchain.tar.bz2 riscv-gnu-toolchain
tar -C $TOOLDIR -cvjf riscv-gnu-toolchain.tar.bz2 riscv-gnu-toolchain
split -b 50M riscv-gnu-toolchain.tar.bz2 "riscv-gnu-toolchain.tar.bz2.part"
mv riscv-gnu-toolchain.tar.bz2.part* $DESTDIR/riscv-gnu-toolchain/$OS_DIR
mv riscv-gnu-toolchain.tar.bz2.part* ./riscv-gnu-toolchain/$OSDIR
rm riscv-gnu-toolchain.tar.bz2
}
riscv64()
{
echo "prebuilt riscv64-gnu-toolchain..."
tar -C $SRCDIR -cvjf riscv64-gnu-toolchain.tar.bz2 riscv64-gnu-toolchain
tar -C $TOOLDIR -cvjf riscv64-gnu-toolchain.tar.bz2 riscv64-gnu-toolchain
split -b 50M riscv64-gnu-toolchain.tar.bz2 "riscv64-gnu-toolchain.tar.bz2.part"
mv riscv64-gnu-toolchain.tar.bz2.part* $DESTDIR/riscv64-gnu-toolchain/$OS_DIR
mv riscv64-gnu-toolchain.tar.bz2.part* ./riscv64-gnu-toolchain/$OSDIR
rm riscv64-gnu-toolchain.tar.bz2
}
llvm-vortex()
{
echo "prebuilt llvm-vortex..."
tar -C $SRCDIR -cvjf llvm-vortex.tar.bz2 llvm-vortex
tar -C $TOOLDIR -cvjf llvm-vortex.tar.bz2 llvm-vortex
split -b 50M llvm-vortex.tar.bz2 "llvm-vortex.tar.bz2.part"
mv llvm-vortex.tar.bz2.part* $DESTDIR/llvm-vortex/$OS_DIR
mv llvm-vortex.tar.bz2.part* ./llvm-vortex/$OSDIR
rm llvm-vortex.tar.bz2
}
llvm-pocl()
{
echo "prebuilt llvm-pocl..."
tar -C $SRCDIR -cvjf llvm-pocl.tar.bz2 llvm-pocl
tar -C $TOOLDIR -cvjf llvm-pocl.tar.bz2 llvm-pocl
split -b 50M llvm-pocl.tar.bz2 "llvm-pocl.tar.bz2.part"
mv llvm-pocl.tar.bz2.part* $DESTDIR/llvm-pocl/$OS_DIR
mv llvm-pocl.tar.bz2.part* ./llvm-pocl/$OSDIR
rm llvm-pocl.tar.bz2
}
pocl()
{
echo "prebuilt pocl..."
tar -C $SRCDIR -cvjf pocl.tar.bz2 pocl
mv pocl.tar.bz2 $DESTDIR/pocl/$OS_DIR
tar -C $TOOLDIR -cvjf pocl.tar.bz2 pocl
mv pocl.tar.bz2 ./pocl/$OSDIR
}
verilator()
{
echo "prebuilt verilator..."
tar -C $SRCDIR -cvjf verilator.tar.bz2 verilator
mv verilator.tar.bz2 $DESTDIR/verilator/$OS_DIR
tar -C $TOOLDIR -cvjf verilator.tar.bz2 verilator
mv verilator.tar.bz2 ./verilator/$OSDIR
}
sv2v()
{
echo "prebuilt sv2v..."
tar -C $SRCDIR -cvjf sv2v.tar.bz2 sv2v
mv sv2v.tar.bz2 $DESTDIR/sv2v/$OS_DIR
tar -C $TOOLDIR -cvjf sv2v.tar.bz2 sv2v
mv sv2v.tar.bz2 ./sv2v/$OSDIR
}
yosys()
{
echo "prebuilt yosys..."
tar -C $SRCDIR -cvjf yosys.tar.bz2 yosys
tar -C $TOOLDIR -cvjf yosys.tar.bz2 yosys
split -b 50M yosys.tar.bz2 "yosys.tar.bz2.part"
mv yosys.tar.bz2.part* $DESTDIR/yosys/$OS_DIR
mv yosys.tar.bz2.part* ./yosys/$OSDIR
rm yosys.tar.bz2
}

View File

@@ -21,7 +21,7 @@ import subprocess
# This script executes a long-running command while outputing "still running ..." periodically
# to notify Travis build system that the program has not hanged
PING_INTERVAL=15
PING_INTERVAL=300 # 5 minutes
def monitor(stop):
wait_time = 0