/workspaces/astro/sol3-sdk/cpp/sol3/opencl/opencl_utils.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/opencl/opencl_utils.h Source File
Space-ng SDK
opencl_utils.h
Go to the documentation of this file.
1 // Copyright (c) Space-ng, inc. All rights reserved.
2 
3 #pragma once
4 
7 
8 #include <functional>
9 
10 namespace sol3::opencl {
11 
12 // These helpers are the blessed entry points for host<->device buffer
13 // transfers. The raw cl::CommandQueue::enqueue{Read,Write}Buffer methods
14 // hide their blocking-or-async behavior in a cl_bool argument and should
15 // not be called directly; use the explicit Now/enqueue pairs below so
16 // the synchronization contract is visible at the call site.
17 
21 void addHook(cl::CommandQueue& queue, std::function<void()> fn);
22 
30  cl::CommandQueue& queue,
31  cl::Buffer& cl_buf,
32  core::IBufferMutable& host_buf);
33 
39  cl::CommandQueue& queue,
40  cl::Buffer& buf,
41  size_t offset,
42  size_t size,
43  void const* ptr);
44 
51  cl::CommandQueue& queue,
52  cl::Buffer& buf,
53  size_t offset,
54  size_t size,
55  void const* ptr);
56 
60  cl::CommandQueue& queue,
61  cl::Buffer& buf,
62  size_t offset,
63  size_t size,
64  void* ptr);
65 
69  cl::CommandQueue& queue,
70  cl::Buffer& buf,
71  size_t offset,
72  size_t size,
73  void* ptr);
74 
75 } // namespace sol3::opencl
table Buffer
Definition: buffer.fbs:31
Mutable view of shared memory buffer.
Definition: shmem_buffer.h:90
Definition: opencl_manager.h:14
void enqueueReadBack(cl::CommandQueue &queue, cl::Buffer &cl_buf, core::IBufferMutable &host_buf)
void readBufferNow(cl::CommandQueue &queue, cl::Buffer &buf, size_t offset, size_t size, void *ptr)
void enqueueWriteBuffer(cl::CommandQueue &queue, cl::Buffer &buf, size_t offset, size_t size, void const *ptr)
void addHook(cl::CommandQueue &queue, std::function< void()> fn)
void writeBufferNow(cl::CommandQueue &queue, cl::Buffer &buf, size_t offset, size_t size, void const *ptr)
void enqueueReadBuffer(cl::CommandQueue &queue, cl::Buffer &buf, size_t offset, size_t size, void *ptr)