Updated SYCL makefile and kernel build
This commit is contained in:
parent
dafc63030f
commit
05fc803858
@ -1,11 +1,11 @@
|
||||
|
||||
COMPUTECPP_FLAGS = $(shell computecpp_info --dump-device-compiler-flags)
|
||||
COMPUTECPP_FLAGS = $(shell $(COMPUTECPP_PREFIX)/bin/computecpp_info --dump-device-compiler-flags)
|
||||
|
||||
sycl-stream: main.cpp SYCLStream.cpp SYCLStream.sycl
|
||||
$(CXX) -O3 -std=c++11 -DSYCL main.cpp SYCLStream.cpp -include SYCLStream.sycl $(EXTRA_FLAGS) -lComputeCpp -lOpenCL -o $@
|
||||
$(CXX) -O3 -std=c++11 -DSYCL main.cpp SYCLStream.cpp -I$(COMPUTECPP_PREFIX)/include -include SYCLStream.sycl $(EXTRA_FLAGS) -L$(COMPUTECPP_PREFIX)/lib -lComputeCpp -lOpenCL -Wl,--rpath=$(COMPUTECPP_PREFIX)/lib/ -o $@
|
||||
|
||||
SYCLStream.sycl: SYCLStream.cpp
|
||||
compute++ SYCLStream.cpp $(COMPUTECPP_FLAGS) -c
|
||||
$(COMPUTECPP_PREFIX)/bin/compute++ SYCLStream.cpp $(COMPUTECPP_FLAGS) -c -I$(COMPUTECPP_PREFIX)/include -o $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
||||
@ -47,16 +47,31 @@ SYCLStream<T>::SYCLStream(const unsigned int ARRAY_SIZE, const int device_index)
|
||||
std::cout << "Driver: " << getDeviceDriver(device_index) << std::endl;
|
||||
std::cout << "Reduction kernel config: " << dot_num_groups << " groups of size " << dot_wgsize << std::endl;
|
||||
|
||||
queue = new cl::sycl::queue(dev);
|
||||
queue = new cl::sycl::queue(dev, [&](cl::sycl::exception_list l) {
|
||||
try {
|
||||
for(auto e: l) {
|
||||
std::rethrow_exception(e);
|
||||
}
|
||||
} catch (cl::sycl::exception e) {
|
||||
std::cout << e.what();
|
||||
}
|
||||
});
|
||||
|
||||
/* Pre-build the kernels */
|
||||
p = new program(queue->get_context());
|
||||
p->build_from_kernel_name<init_kernel>();
|
||||
p->build_from_kernel_name<copy_kernel>();
|
||||
p->build_from_kernel_name<mul_kernel>();
|
||||
p->build_from_kernel_name<add_kernel>();
|
||||
p->build_from_kernel_name<triad_kernel>();
|
||||
p->build_from_kernel_name<dot_kernel>();
|
||||
cl::sycl::vector_class<cl::sycl::program> v;
|
||||
v.push_back(cl::sycl::program{queue->get_context()});
|
||||
v.back().compile_from_kernel_name<init_kernel>();
|
||||
v.push_back(cl::sycl::program{queue->get_context()});
|
||||
v.back().compile_from_kernel_name<copy_kernel>();
|
||||
v.push_back(cl::sycl::program{queue->get_context()});
|
||||
v.back().compile_from_kernel_name<mul_kernel>();
|
||||
v.push_back(cl::sycl::program{queue->get_context()});
|
||||
v.back().compile_from_kernel_name<add_kernel>();
|
||||
v.push_back(cl::sycl::program{queue->get_context()});
|
||||
v.back().compile_from_kernel_name<triad_kernel>();
|
||||
v.push_back(cl::sycl::program{queue->get_context()});
|
||||
v.back().compile_from_kernel_name<dot_kernel>();
|
||||
p = new program(v);
|
||||
|
||||
// Create buffers
|
||||
d_a = new buffer<T>(array_size);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user