Loading...
Searching...
No Matches
sycl.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * SYCLGPUDeviceBackend header.
5 *
6 * Provides the SYCL-specific queue() accessor that oneMKL BLAS, LAPACK, and
7 * DFT wrappers need. This header can be included from other SYCL .cpp files
8 * without pulling in the full device implementation.
9 *
10 * The concrete implementation lives in device/sycl.cpp.
11 */
12
14
15#include <sycl/sycl.hpp>
16
17namespace q3 {
18namespace execution {
19namespace gpu {
20namespace device {
21
22/**
23 * SYCLGPUDeviceBackend — abstract interface for SYCL-specific accessors.
24 *
25 * Exposes the SYCL queue needed by oneMKL BLAS/LAPACK/DFT operations.
26 * Concrete implementation lives in device/sycl.cpp.
27 */
29 public:
30 virtual ~SYCLGPUDeviceBackend() = default;
31
32 /**
33 * Access the underlying SYCL queue for vendor-specific operations.
34 *
35 * Used by SYCL BLAS/LAPACK/FFT wrappers that need the queue to submit
36 * oneMKL operations.
37 */
38 virtual sycl::queue& queue() = 0;
39
40 /**
41 * Access the underlying SYCL queue (const).
42 */
43 virtual const sycl::queue& queue() const = 0;
44};
45
46} // namespace device
47} // namespace gpu
48} // namespace execution
49} // namespace q3
virtual const sycl::queue & queue() const =0