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
|
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
|
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
|
.PHONY: clean
|
||||||
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 << "Driver: " << getDeviceDriver(device_index) << std::endl;
|
||||||
std::cout << "Reduction kernel config: " << dot_num_groups << " groups of size " << dot_wgsize << 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 */
|
/* Pre-build the kernels */
|
||||||
p = new program(queue->get_context());
|
cl::sycl::vector_class<cl::sycl::program> v;
|
||||||
p->build_from_kernel_name<init_kernel>();
|
v.push_back(cl::sycl::program{queue->get_context()});
|
||||||
p->build_from_kernel_name<copy_kernel>();
|
v.back().compile_from_kernel_name<init_kernel>();
|
||||||
p->build_from_kernel_name<mul_kernel>();
|
v.push_back(cl::sycl::program{queue->get_context()});
|
||||||
p->build_from_kernel_name<add_kernel>();
|
v.back().compile_from_kernel_name<copy_kernel>();
|
||||||
p->build_from_kernel_name<triad_kernel>();
|
v.push_back(cl::sycl::program{queue->get_context()});
|
||||||
p->build_from_kernel_name<dot_kernel>();
|
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
|
// Create buffers
|
||||||
d_a = new buffer<T>(array_size);
|
d_a = new buffer<T>(array_size);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user