假设我有以下包含缓冲区的结构:
struct SomeAllocatorCode {
int* rawData;
size_t rawDataSize;
cl::sycl::buffer<int> nestedBuffer;
SomeAllocatorCode(int* rawData, size_t size): rawData(rawData),
rawDataSize(rawDataSize), nestedBuffer(rawData, cl::sycl::range<1>(rawDataSize)) {}
};
然后稍后我想创建一个像这样的缓冲区:
int* data = new int[64];
SomeAllocatorCode* allocator = new SomeAllocatorCode(data, 64);
cl::sycl::buffer<SomeAllocatorCode> topLevelBuffer(allocator,
cl::sycl::range<1>(1));
我将如何阅读nestedBuffer
设备代码?是否可以像这样构造数据?像往常一样使用数据访问器并在使用读取nestedBuffer
访问器访问后简单地获取数据访问器就足够了吗?topLevelBuffer