mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-24 05:47:35 -04:00
adding POCL Dockerfile
This commit is contained in:
parent
12dc4d6874
commit
c913e542e9
1 changed files with 80 additions and 0 deletions
80
miscs/docker/pocl/Dockerfile
Normal file
80
miscs/docker/pocl/Dockerfile
Normal file
|
@ -0,0 +1,80 @@
|
|||
.
|
||||
#
|
||||
# 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_DRIVER_INC=$VORTEX_HOME/driver/sw/include
|
||||
ARG VORTEX_DRIVER_LIB=$VORTEX_HOME/driver/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_DRIVER_INC=$VORTEX_DRIVER_INC -DVORTEX_DRIVER_LIB=$VORTEX_DRIVER_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_DRIVER_INC=$VORTEX_DRIVER_INC -DVORTEX_DRIVER_LIB=$VORTEX_DRIVER_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
|
Loading…
Add table
Add a link
Reference in a new issue