sycl_interop.hh File Reference

Overview

SYCL interop: batchlas::Queue and batchlas::Event to and from sycl::queue and sycl::event.

This is the one BatchLAS header that includes <sycl/sycl.hpp>, and it is deliberately not reachable from <batchlas.hh>. Include it only in the translation units that move a queue or an event across the boundary (they must be compiled with -fsycl), and do not include it from a header of your own that the rest of a project pulls in: that puts sycl.hpp back into every translation unit.

Not needed for the native stream (Queue::native_handle() returns it as void*) or for memory: USM pointers from sycl::malloc_device, sycl::malloc_host, cudaMalloc or cudaMallocManaged wrap zero-copy in a Span or MatrixView, provided they are reachable from the Queue's context. Everything here is single-threaded in the same sense as Queue.

Definition in file sycl_interop.hh.

#include <batchlas/export.hh>
#include <sycl/sycl.hpp>
#include <batchlas/util/sycl-device-queue.hh>

Go to the source code of this file.

Namespaces

namespace  batchlas