mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-24 05:47:35 -04:00
llvm-riscv => using llvm-vortex
This commit is contained in:
parent
4322c881a5
commit
8be7b6774c
8 changed files with 44 additions and 40 deletions
|
@ -22,11 +22,11 @@ riscv()
|
|||
|
||||
llvm()
|
||||
{
|
||||
echo "prebuilt llvm-riscv2..."
|
||||
tar -C $SRCDIR -cvjf llvm-riscv2.tar.bz2 llvm-riscv
|
||||
split -b 50M llvm-riscv2.tar.bz2 "llvm-riscv2.tar.bz2.part"
|
||||
mv llvm-riscv2.tar.bz2.part* $DESTDIR/llvm-riscv/$OS_DIR
|
||||
rm llvm-riscv2.tar.bz2
|
||||
echo "prebuilt llvm-vortex..."
|
||||
tar -C $SRCDIR -cvjf llvm-vortex.tar.bz2 llvm-riscv
|
||||
split -b 50M llvm-vortex.tar.bz2 "llvm-vortex.tar.bz2.part"
|
||||
mv llvm-vortex.tar.bz2.part* $DESTDIR/llvm-vortex/$OS_DIR
|
||||
rm llvm-vortex.tar.bz2
|
||||
}
|
||||
|
||||
pocl()
|
||||
|
|
|
@ -48,16 +48,16 @@ llvm()
|
|||
*) parts=$(eval echo {a..b}) ;;
|
||||
esac
|
||||
echo $parts
|
||||
rm -f llvm-riscv2.tar.bz2.parta*
|
||||
rm -f llvm-vortex.tar.bz2.parta*
|
||||
for x in $parts
|
||||
do
|
||||
wget $REPOSITORY/llvm-riscv/$OS/llvm-riscv2.tar.bz2.parta$x
|
||||
wget $REPOSITORY/llvm-vortex/$OS/llvm-vortex.tar.bz2.parta$x
|
||||
done
|
||||
cat llvm-riscv2.tar.bz2.parta* > llvm-riscv2.tar.bz2
|
||||
tar -xvf llvm-riscv2.tar.bz2
|
||||
rm -f llvm-riscv2.tar.bz2*
|
||||
cp -r llvm-riscv $DESTDIR
|
||||
rm -rf llvm-riscv
|
||||
cat llvm-vortex.tar.bz2.parta* > llvm-vortex.tar.bz2
|
||||
tar -xvf llvm-vortex.tar.bz2
|
||||
rm -f llvm-vortex.tar.bz2*
|
||||
cp -r llvm-vortex $DESTDIR
|
||||
rm -rf llvm-vortex
|
||||
}
|
||||
|
||||
pocl()
|
||||
|
|
|
@ -8,25 +8,25 @@ endif
|
|||
|
||||
RISCV_PREFIX ?= riscv$(XLEN)-unknown-elf-
|
||||
|
||||
LLVM_PREFIX ?= /opt/llvm-riscv
|
||||
LLVM_VORTEX ?= /opt/llvm-vortex
|
||||
|
||||
#LLVM_CFLAGS += --sysroot=$(RISCV_TOOLCHAIN_PATH)/riscv32-unknown-elf
|
||||
#LLVM_CFLAGS += --gcc-toolchain=$(RISCV_TOOLCHAIN_PATH)
|
||||
#LLVM_CFLAGS += -Xclang -target-feature -Xclang +vortex
|
||||
LLVM_CFLAGS += --sysroot=$(RISCV_TOOLCHAIN_PATH)/riscv32-unknown-elf
|
||||
LLVM_CFLAGS += --gcc-toolchain=$(RISCV_TOOLCHAIN_PATH)
|
||||
LLVM_CFLAGS += -Xclang -target-feature -Xclang +vortex -mllvm -vortex-branch-divergence=0
|
||||
#LLVM_CFLAGS += -I$(RISCV_TOOLCHAIN_PATH)/riscv32-unknown-elf/include/c++/9.2.0/riscv32-unknown-elf
|
||||
#LLVM_CFLAGS += -I$(RISCV_TOOLCHAIN_PATH)/riscv32-unknown-elf/include/c++/9.2.0
|
||||
#LLVM_CFLAGS += -Wl,-L$(RISCV_TOOLCHAIN_PATH)/lib/gcc/riscv32-unknown-elf/9.2.0
|
||||
#LLVM_CFLAGS += --rtlib=libgcc
|
||||
|
||||
#CC = $(LLVM_PREFIX)/bin/clang $(LLVM_CFLAGS)
|
||||
#CXX = $(LLVM_PREFIX)/bin/clang++ $(LLVM_CFLAGS)
|
||||
#DP = $(LLVM_PREFIX)/bin/llvm-objdump
|
||||
#CP = $(LLVM_PREFIX)/bin/llvm-objcopy
|
||||
CC = $(LLVM_VORTEX)/bin/clang $(LLVM_CFLAGS)
|
||||
CXX = $(LLVM_VORTEX)/bin/clang++ $(LLVM_CFLAGS)
|
||||
DP = $(LLVM_VORTEX)/bin/llvm-objdump
|
||||
CP = $(LLVM_VORTEX)/bin/llvm-objcopy
|
||||
|
||||
CC = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)gcc
|
||||
AR = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)gcc-ar
|
||||
DP = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)objdump
|
||||
CP = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)objcopy
|
||||
#CC = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)gcc
|
||||
#AR = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)gcc-ar
|
||||
#DP = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)objdump
|
||||
#CP = $(RISCV_TOOLCHAIN_PATH)/bin/$(RISCV_PREFIX)objcopy
|
||||
|
||||
ifeq ($(XLEN),32)
|
||||
CFLAGS += -march=rv32imf -mabi=ilp32f
|
||||
|
|
|
@ -4,6 +4,14 @@
|
|||
#include <VX_config.h>
|
||||
#include <VX_types.h>
|
||||
|
||||
#if defined(__clang__)
|
||||
#define __UNIFORM__ __attribute__((annotate("vortex.uniform")))
|
||||
#define __DIVERGENT__ __attribute__((annotate("vortex.divergent")))
|
||||
#else
|
||||
#define __UNIFORM__
|
||||
#define __DIVERGENT__
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -337,8 +345,6 @@ inline void vx_fence() {
|
|||
|
||||
#define __endif vx_join();
|
||||
|
||||
#define __DIVERGENT__ __attribute__((annotate("divergent")))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -13,8 +13,8 @@ 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_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
|
||||
|
@ -65,13 +65,13 @@ 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 ..
|
||||
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_DRIVER_INC=$VORTEX_DRIVER_INC -DVORTEX_DRIVER_LIB=$VORTEX_DRIVER_LIB -DBUILD_TESTS=OFF -DPOCL_DEBUG_MESSAGES=ON ..
|
||||
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
|
||||
|
|
|
@ -21,7 +21,7 @@ draw3d(){
|
|||
do
|
||||
echo -e "\n**************************************\n" >> $LOG_FILE
|
||||
echo -e "draw3d $trace benchmark\n" >> $LOG_FILE
|
||||
CONFIGS="-DEXT_GFX_ENABLE" ./ci/blackbox.sh --driver=fpga --app=draw3d --args="-t$trace.cgltrace -w${WIDTH} -h${HEIGHT}" | grep 'Total elapsed time:' >> $LOG_FILE
|
||||
CONFIGS="-DEXT_GFX_ENABLE" ./ci/blackbox.sh --driver=simx --app=draw3d --args="-t$trace.cgltrace -w${WIDTH} -h${HEIGHT}" | grep 'Total elapsed time:' >> $LOG_FILE
|
||||
cp tests/regression/draw3d/output.png ${LOG_DIR}/perf_${TOKEN}_$trace.png
|
||||
done
|
||||
echo "draw3d tests done!"
|
||||
|
|
|
@ -6,7 +6,7 @@ PLATFORM ?= xilinx_u280_xdma_201920_3
|
|||
XRT_SYN_DIR ?= ../../../hw/syn/xilinx/xrt
|
||||
XRT_BUILD_DIR = $(XRT_SYN_DIR)/build_$(PLATFORM)_$(TARGET)/bin
|
||||
|
||||
LLVM_PREFIX ?= /opt/llvm-riscv
|
||||
LLVM_VORTEX ?= /opt/llvm-vortex
|
||||
RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain
|
||||
SYSROOT ?= $(RISCV_TOOLCHAIN_PATH)/riscv32-unknown-elf
|
||||
POCL_CC_PATH ?= /opt/pocl/compiler
|
||||
|
@ -22,9 +22,7 @@ K_CFLAGS += -I$(VORTEX_KN_PATH)/include
|
|||
K_LDFLAGS += -Wl,-Bstatic,-T$(VORTEX_KN_PATH)/linker/vx_link$(XLEN).ld -Wl,--gc-sections $(VORTEX_KN_PATH)/libvortexrt.a -lm
|
||||
|
||||
CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors
|
||||
|
||||
CXXFLAGS += -Wno-deprecated-declarations -Wno-unused-parameter -Wno-narrowing
|
||||
|
||||
CXXFLAGS += -I$(POCL_RT_PATH)/include
|
||||
|
||||
LDFLAGS += -L$(POCL_RT_PATH)/lib -L$(VORTEX_RT_PATH)/stub -lOpenCL -lvortex
|
||||
|
@ -49,7 +47,7 @@ endif
|
|||
all: $(PROJECT) kernel.pocl
|
||||
|
||||
kernel.pocl: kernel.cl
|
||||
LLVM_PREFIX=$(LLVM_PREFIX) POCL_DEBUG=all LD_LIBRARY_PATH=$(LLVM_PREFIX)/lib:$(POCL_CC_PATH)/lib $(POCL_CC_PATH)/bin/poclcc -LLCFLAGS "$(K_LLCFLAGS)" -CFLAGS "$(K_CFLAGS)" -LDFLAGS "$(K_LDFLAGS)" -o kernel.pocl kernel.cl
|
||||
LLVM_PREFIX=$(LLVM_VORTEX) POCL_DEBUG=all LD_LIBRARY_PATH=$(LLVM_VORTEX)/lib:$(POCL_CC_PATH)/lib $(POCL_CC_PATH)/bin/poclcc -LLCFLAGS "$(K_LLCFLAGS)" -CFLAGS "$(K_CFLAGS)" -LDFLAGS "$(K_LDFLAGS)" -o kernel.pocl kernel.cl
|
||||
|
||||
$(PROJECT): $(SRCS)
|
||||
$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
|
||||
|
|
|
@ -11,7 +11,7 @@ RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain
|
|||
VORTEX_RT_PATH ?= $(realpath ../../../runtime)
|
||||
VORTEX_KN_PATH ?= $(realpath ../../../kernel)
|
||||
|
||||
LLVM_PREFIX ?= /opt/llvm-riscv
|
||||
LLVM_VORTEX ?= /opt/llvm-vortex
|
||||
|
||||
LLVM_CFLAGS += --sysroot=$(RISCV_TOOLCHAIN_PATH)/riscv32-unknown-elf
|
||||
LLVM_CFLAGS += --gcc-toolchain=$(RISCV_TOOLCHAIN_PATH)
|
||||
|
@ -21,10 +21,10 @@ LLVM_CFLAGS += -Xclang -target-feature -Xclang +vortex
|
|||
#LLVM_CFLAGS += -Wl,-L$(RISCV_TOOLCHAIN_PATH)/lib/gcc/riscv32-unknown-elf/9.2.0
|
||||
#LLVM_CFLAGS += --rtlib=libgcc
|
||||
|
||||
VX_CC = $(LLVM_PREFIX)/bin/clang $(LLVM_CFLAGS)
|
||||
VX_CXX = $(LLVM_PREFIX)/bin/clang++ $(LLVM_CFLAGS)
|
||||
VX_DP = $(LLVM_PREFIX)/bin/llvm-objdump -mattr=+m,+f,+vortex
|
||||
VX_CP = $(LLVM_PREFIX)/bin/llvm-objcopy
|
||||
VX_CC = $(LLVM_VORTEX)/bin/clang $(LLVM_CFLAGS)
|
||||
VX_CXX = $(LLVM_VORTEX)/bin/clang++ $(LLVM_CFLAGS)
|
||||
VX_DP = $(LLVM_VORTEX)/bin/llvm-objdump
|
||||
VX_CP = $(LLVM_VORTEX)/bin/llvm-objcopy
|
||||
|
||||
#VX_CC = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc
|
||||
#VX_CXX = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-g++
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue