diff --git a/benchmarks/new_opencl/bfs/Makefile b/benchmarks/new_opencl/bfs/Makefile index 0eb063ae..73150c10 100644 --- a/benchmarks/new_opencl/bfs/Makefile +++ b/benchmarks/new_opencl/bfs/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/compiler/lib/libOpenCL.so.2.5.0 b/benchmarks/new_opencl/compiler/lib/libOpenCL.so.2.5.0 index 10ff7140..caad6351 100644 Binary files a/benchmarks/new_opencl/compiler/lib/libOpenCL.so.2.5.0 and b/benchmarks/new_opencl/compiler/lib/libOpenCL.so.2.5.0 differ diff --git a/benchmarks/new_opencl/guassian/Makefile b/benchmarks/new_opencl/guassian/Makefile index 0b73b9aa..5a93a3cb 100644 --- a/benchmarks/new_opencl/guassian/Makefile +++ b/benchmarks/new_opencl/guassian/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc clutils.cpp utils.cpp all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/kmeans/Makefile b/benchmarks/new_opencl/kmeans/Makefile index 85d1b36c..979f2fb1 100644 --- a/benchmarks/new_opencl/kmeans/Makefile +++ b/benchmarks/new_opencl/kmeans/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc read_input.c rmse.c kmeans_clustering.c cluster.c getopt.c all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/nearn/Makefile b/benchmarks/new_opencl/nearn/Makefile index d767a48d..bf8859ae 100644 --- a/benchmarks/new_opencl/nearn/Makefile +++ b/benchmarks/new_opencl/nearn/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc clutils.cpp utils.cpp all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/runtime/lib/libOpenCL.so b/benchmarks/new_opencl/runtime/lib/libOpenCL.so deleted file mode 100644 index 8509aed5..00000000 Binary files a/benchmarks/new_opencl/runtime/lib/libOpenCL.so and /dev/null differ diff --git a/benchmarks/new_opencl/runtime/lib/libOpenCL.so b/benchmarks/new_opencl/runtime/lib/libOpenCL.so new file mode 120000 index 00000000..a2c38614 --- /dev/null +++ b/benchmarks/new_opencl/runtime/lib/libOpenCL.so @@ -0,0 +1 @@ +libOpenCL.so.2 \ No newline at end of file diff --git a/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2 b/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2 deleted file mode 100644 index 8509aed5..00000000 Binary files a/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2 and /dev/null differ diff --git a/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2 b/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2 new file mode 120000 index 00000000..e03f1782 --- /dev/null +++ b/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2 @@ -0,0 +1 @@ +libOpenCL.so.2.5.0 \ No newline at end of file diff --git a/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2.5.0 b/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2.5.0 index 8509aed5..9bde305c 100644 Binary files a/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2.5.0 and b/benchmarks/new_opencl/runtime/lib/libOpenCL.so.2.5.0 differ diff --git a/benchmarks/new_opencl/saxpy/Makefile b/benchmarks/new_opencl/saxpy/Makefile index c7135458..1affa1b0 100644 --- a/benchmarks/new_opencl/saxpy/Makefile +++ b/benchmarks/new_opencl/saxpy/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/sfilter/Makefile b/benchmarks/new_opencl/sfilter/Makefile index 5fd0a084..4b83c185 100644 --- a/benchmarks/new_opencl/sfilter/Makefile +++ b/benchmarks/new_opencl/sfilter/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/sgemm/Makefile b/benchmarks/new_opencl/sgemm/Makefile index e928eca9..00e6b77b 100644 --- a/benchmarks/new_opencl/sgemm/Makefile +++ b/benchmarks/new_opencl/sgemm/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/sgemm/kernel.pocl b/benchmarks/new_opencl/sgemm/kernel.pocl index 4a8ed72a..08f29897 100644 Binary files a/benchmarks/new_opencl/sgemm/kernel.pocl and b/benchmarks/new_opencl/sgemm/kernel.pocl differ diff --git a/benchmarks/new_opencl/vecadd/Makefile b/benchmarks/new_opencl/vecadd/Makefile index 0bd5cd86..ea2039c3 100644 --- a/benchmarks/new_opencl/vecadd/Makefile +++ b/benchmarks/new_opencl/vecadd/Makefile @@ -1,4 +1,4 @@ -LLVM_LIB_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops/lib) +LLVM_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops) POCLCC_PATH ?= $(wildcard ../compiler) POCLRT_PATH ?= $(wildcard ../runtime) DRIVER_PATH ?= $(wildcard ../../../driver/sw) @@ -16,7 +16,7 @@ SRCS = main.cc all: $(PROJECT) kernel.pocl: kernel.cl - POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_LIB_PATH):$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl + LLVM_INSTALL_PATH=$(LLVM_PATH) POCL_DEBUG=all POCL_DEBUG_LLVM_PASSES=1 LD_LIBRARY_PATH=$(LLVM_PATH)/lib:$(POCLCC_PATH)/lib:$(DRIVER_PATH)/simx $(POCLCC_PATH)/bin/poclcc -o kernel.pocl kernel.cl $(PROJECT): $(SRCS) $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ diff --git a/benchmarks/new_opencl/vecadd/kernel.pocl b/benchmarks/new_opencl/vecadd/kernel.pocl index 2dab3524..62e71b68 100644 Binary files a/benchmarks/new_opencl/vecadd/kernel.pocl and b/benchmarks/new_opencl/vecadd/kernel.pocl differ diff --git a/rtl/VX_front_end.v b/rtl/VX_front_end.v index 902e9a5c..fd204b20 100644 --- a/rtl/VX_front_end.v +++ b/rtl/VX_front_end.v @@ -40,7 +40,16 @@ wire terminate_sim; wire[`NW_M1:0] icache_stage_wid; wire[`NT-1:0] icache_stage_valids; -assign fetch_ebreak = vortex_ebreak || terminate_sim; +reg old_ebreak; // This should be eventually removed +always @(posedge clk) begin + if (reset) begin + old_ebreak <= 0; + end else begin + old_ebreak <= old_ebreak || fetch_ebreak; + end +end + +assign fetch_ebreak = vortex_ebreak || terminate_sim || old_ebreak; VX_wstall_inter VX_wstall();