37 sycl::queue &queue, sycl::buffer<T> &src, T *dest,
u64 count) {
43 std::vector<sycl::event> ev_list{};
45 while (offset < count) {
46 u64 stepsize = sham::min(remains, max_step_size);
48 ev_list.push_back(queue.submit([&, offset](sycl::handler &cgh) {
49 sycl::accessor acc{src, cgh, sycl::read_only};
50 shambase::parallel_for(cgh, stepsize,
"memcpy kernel", [=](
u32 gid) {
51 dest[gid + offset] = acc[gid + offset];
74 sycl::queue &queue,
const T *src, sycl::buffer<T> &dest,
u64 count) {
80 std::vector<sycl::event> ev_list{};
82 while (offset < count) {
83 u64 stepsize = sham::min(remains, max_step_size);
85 ev_list.push_back(queue.submit([&, offset](sycl::handler &cgh) {
86 sycl::accessor acc{dest, cgh, sycl::write_only};
87 shambase::parallel_for(cgh, stepsize,
"memcpy kernel", [=](
u32 gid) {
88 acc[gid + offset] = src[gid + offset];
112 sycl::queue &queue,
const T *src, sycl::buffer<T> &dest,
u64 count) {
117 std::vector<sycl::event> ev_list{};
119 while (offset < count) {
120 u64 stepsize = sham::min(remains, max_step_size);
122 ev_list.push_back(queue.submit([&, offset](sycl::handler &cgh) {
123 sycl::accessor acc{dest, cgh, sycl::write_only, sycl::no_init};
124 shambase::parallel_for(cgh, stepsize,
"memcpy kernel", [=](
u32 gid) {
125 acc[gid + offset] = src[gid + offset];
std::vector< sycl::event > usmbuffer_memcpy(sycl::queue &queue, sycl::buffer< T > &src, T *dest, u64 count)
perform a copy from a buffer to a USM pointer
std::vector< sycl::event > usmbuffer_memcpy_discard(sycl::queue &queue, const T *src, sycl::buffer< T > &dest, u64 count)
perform a copy from a USM pointer to a buffer (and assume discard write for the buffer)