diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a3a36d..70f4460 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ All notable changes to this project will be documented in this file. ### Changed - Use cl::sycl::id parameters instead of cl::sycl::item. - Update local copy of OpenCL C++ header file. +- Ensure correct SYCL queue constructor with explicit async_handler. +- Use built in SYCL runtime device discovery. ### Removed - Pre-building of kernels in SYCL version to ensure compatibility with SYCL 1.2.1. diff --git a/SYCLStream.cpp b/SYCLStream.cpp index e8159b2..8960530 100644 --- a/SYCLStream.cpp +++ b/SYCLStream.cpp @@ -45,7 +45,7 @@ SYCLStream::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, [&](cl::sycl::exception_list l) + queue = new cl::sycl::queue(dev, cl::sycl::async_handler{[&](cl::sycl::exception_list l) { bool error = false; for(auto e: l) @@ -64,7 +64,7 @@ SYCLStream::SYCLStream(const unsigned int ARRAY_SIZE, const int device_index) { throw std::runtime_error("SYCL errors detected"); } - }, {}); + }}); // Create buffers d_a = new buffer(array_size); @@ -228,15 +228,8 @@ void SYCLStream::read_arrays(std::vector& a, std::vector& b, std::vecto void getDeviceList(void) { - // Get list of platforms - std::vector platforms = platform::get_platforms(); - - // Enumerate devices - for (unsigned i = 0; i < platforms.size(); i++) - { - std::vector plat_devices = platforms[i].get_devices(); - devices.insert(devices.end(), plat_devices.begin(), plat_devices.end()); - } + // Ask SYCL runtime for all devices in system + devices = cl::sycl::device::get_devices(); cached = true; }