minor update

This commit is contained in:
Blaise Tine 2024-05-06 18:54:44 -07:00
parent faacace2a4
commit a94d868cd5
5 changed files with 42 additions and 87 deletions

View file

@ -64,8 +64,8 @@ jobs:
before_script:
- source $HOME/build32/ci/toolchain_env.sh
script:
- make -C $HOME/build32 build -s > /dev/null
- make -C $HOME/build64 build -s > /dev/null
- cd $HOME/build32 && make build -s > /dev/null
- cd $HOME/build64 && make build -s > /dev/null
- stage: test
name: regression
env: XLEN=32

View file

@ -187,7 +187,6 @@ static void __attribute__ ((noinline)) process_all_tasks_ex() {
void* arg = targs->arg;
for (int group_id = start_group; group_id < end_group; group_id += groups_per_core) {
//vx_printf("*** warp_id=%d, thread_id=%d, local_task_id=%d, group_id=%d\n", warp_id, thread_id, local_task_id, group_id);
callback(local_task_id, group_id, arg);
}
}
@ -199,7 +198,6 @@ static void __attribute__ ((noinline)) process_all_tasks_ex_stub() {
int warp_id = vx_warp_id();
int group_warp_id = warp_id % warps_per_group;
int threads_mask = (group_warp_id == warps_per_group-1) ? remaining_mask : -1;
//vx_printf("*** warp_id=%d, threads_mask=0x%x\n", warp_id, threads_mask);
// activate threads
vx_tmc(threads_mask);
@ -227,7 +225,6 @@ void vx_syncthreads(int barrier_id) {
vx_printf("error: out of barrier resource (%d:%d)\n", id+1, num_barriers);
return;
}
//vx_printf("*** warp_id=%d, barrier_id=%d, id=%d\n", warp_id, barrier_id, id);
vx_barrier(id, warps_per_group);
}
@ -297,8 +294,6 @@ void vx_spawn_tasks_ex(int num_groups, int group_size, vx_spawn_tasks_ex_cb call
};
csr_write(VX_CSR_MSCRATCH, &wspawn_args);
//vx_printf("*** group_offset=%d, warp_batches=%d, remaining_warps=%d, warps_per_group=%d, groups_per_core=%d, remaining_mask=%d\n", group_offset, warp_batches, remaining_warps, warps_per_group, groups_per_core, remaining_mask);
// execute callback on other warps
vx_wspawn(active_warps, process_all_tasks_ex_stub);

View file

@ -0,0 +1,40 @@
# Use Ubuntu 20.04 as the base image
FROM ubuntu:20.04
# Set non-interactive installation to avoid user input during build
ARG DEBIAN_FRONTEND=noninteractive
# Update and install basic and necessary dependencies
RUN apt-get update && apt-get install -y \
build-essential \
binutils \
python \
uuid-dev \
git \
wget \
curl \
ca-certificates && \
rm -rf /var/lib/apt/lists/*
# Clone the Vortex repository
RUN git clone --depth=1 --recursive https://github.com/vortexgpgpu/vortex.git /vortex
# Set the initial working directory
WORKDIR /vortex
# Configure the build folder
RUN mkdir build && cd build && \
TOOLDIR=$HOME/tools ../configure
# Install prebuilt toolchain
RUN cd build && ./ci/toolchain_install.sh --all
# Source tools environment variables and add to bashrc
RUN source source /vortex/build/ci/toolchain_env.sh
RUN echo "source /vortex/build/ci/toolchain_env.sh" >> ~/.bashrc
# Build Vortex
RUN cd build && make -s
# Set the working directory to /vortex/build
WORKDIR /vortex/build

View file

@ -1,80 +0,0 @@
.
#
# Dockerfile for Vortex POCL compiler
#
# set base OS
FROM ubuntu:18.04
# set build variables
ARG LOGIN=user:pass
ARG RISC_GNU_TOOLS_PATH=/opt/riscv_gnu_toolchain
ARG LLVM_HOME=/opt/llvm-10
ARG POCL_CC_PATH=/opt/pocl_cc
ARG POCL_RT_PATH=/opt/pocl_rt
ARG VORTEX_HOME=/home/vortex
ARG VORTEX_RUNTIME_INC=$VORTEX_HOME/runtime/sw/include
ARG VORTEX_RUNTIME_LIB=$VORTEX_HOME/runtime/sw/stub/libvortex.so
ARG VORTEX_RUNTIME_PATH=$VORTEX_HOME/runtime
# system update
RUN apt update
RUN apt upgrade -y
# install GNU RISC-V Tools dependencies
RUN apt-get -y install \
binutils build-essential libtool texinfo \
gzip zip unzip patchutils curl git \
make cmake ninja-build automake bison flex gperf \
grep sed gawk python bc \
zlib1g-dev libexpat1-dev libmpc-dev \
libglib2.0-dev libfdt-dev libpixman-1-dev
# install GNU RISC-V Tools dependencies
RUN git clone https://github.com/riscv/riscv-gnu-toolchain /tmp/riscv-gnu-toolchain
RUN cd /tmp/riscv-gnu-toolchain; \
git submodule update --init --recursive
RUN cd /tmp/riscv-gnu-toolchain; \
mkdir build
RUN cd /tmp/riscv-gnu-toolchain/build; \
../configure --prefix=$RISC_GNU_TOOLS_PATH --with-arch=rv32im --with-abi=ilp32;
RUN cd /tmp/riscv-gnu-toolchain/build; \
make -j`nproc`; \
make -j`nproc` build-qemu
RUN rm -rf /tmp/riscv-gnu-toolchain
# install LLVM 10
RUN git clone -b release/10.x https://github.com/llvm/llvm-project.git /tmp/llvm-project
RUN cd /tmp/llvm-project; \
mkdir build
RUN cd /tmp/llvm-project/build; \
cmake -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DBUILD_SHARED_LIBS=True -DLLVM_USE_SPLIT_DWARF=True -DCMAKE_INSTALL_PREFIX=$LLVM_HOME -DLLVM_OPTIMIZED_TABLEGEN=True -DLLVM_BUILD_TESTS=True -DDEFAULT_SYSROOT=$RISC_GNU_TOOLS_PATH/riscv32-unknown-elf -DLLVM_DEFAULT_TARGET_TRIPLE="riscv32-unknown-elf" -DLLVM_TARGETS_TO_BUILD="RISCV" ../llvm
RUN cd /tmp/llvm-project/build; \
cmake --build . --target install
RUN rm -rf /tmp/llvm-project
# install Vortex
RUN git clone -b fpga_synthesis https://$LOGIN@github.gatech.edu/casl/Vortex.git $VORTEX_HOME
RUN cd $VORTEX_HOME; \
make -C rtl build_config; \
make -C runtime build_config; \
make -C driver/sw/stub
# install POCL
RUN git clone https://$LOGIN@github.gatech.edu/casl/pocl.git /tmp/pocl
RUN cd /tmp/pocl; \
mkdir build_cc
RUN cd /tmp/pocl/build_cc; \
cmake -G Ninja -DCMAKE_INSTALL_PREFIX=$POCL_CC_PATH -DOCS_AVAILABLE=ON -DWITH_LLVM_CONFIG=$LLVM_HOME/bin/llvm-config -DENABLE_VORTEX=ON -DVORTEX_RUNTIME_PATH=$VORTEX_RUNTIME_PATH -DVORTEX_RUNTIME_INC=$VORTEX_RUNTIME_INC -DVORTEX_RUNTIME_LIB=$VORTEX_RUNTIME_LIB -DBUILD_TESTS=OFF -DPOCL_DEBUG_MESSAGES=ON ..
RUN cd /tmp/pocl/build_cc; \
cmake --build . --target install
RUN cd /tmp/pocl; \
mkdir build_rt
RUN cd /tmp/pocl/build_rt; \
cmake -G Ninja -DCMAKE_INSTALL_PREFIX=$POCL_RT_PATH -DOCS_AVAILABLE=OFF -DHOST_DEVICE_BUILD_HASH=riscv32-unknown-unknown-elf -DENABLE_VORTEX=ON -DVORTEX_RUNTIME_PATH=$VORTEX_RUNTIME_PATH -DVORTEX_RUNTIME_INC=$VORTEX_RUNTIME_INC -DVORTEX_RUNTIME_LIB=$VORTEX_RUNTIME_LIB -DBUILD_TESTS=OFF -DPOCL_DEBUG_MESSAGES=ON ..
RUN cd /tmp/pocl/build_rt; \
cmake --build . --target install
RUN rm -rf /tmp/pocl
# Set the working directory to /mnt.
WORKDIR /mnt