SYCL буферы внутри буферов - PullRequest
1 голос
/ 09 июля 2019

Скажем, у меня есть следующая структура, содержащая буферы:

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 с помощью средства чтения?

1 Ответ

0 голосов
/ 11 июля 2019

Я бы посоветовал понять, как работают буферы памяти и методы доступа в SYCL, и это поможет вам выбрать лучший подход к тому, что вы пытаетесь сделать. Вот несколько ссылок на полезные ресурсы:

Основы работы с буферами и аксессорами

Памятка

Пример кода, демонстрирующий передовую практику

...