Как графический процессор может напрямую обращаться к данным памяти, созданным процессором, сохраняя при этом синхронизаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как графический процессор может напрямую обращаться к данным памяти, созданным процессором, сохраняя при этом синхрониза

Сообщение Anonymous »

Я надеюсь использовать графический процессор на мобильном телефоне для прямого и быстрого доступа и синхронизации данных памяти, которые процессор также будет считывать и изменять в режиме реального времени.
На мобильном телефоне телефон, это простой пример, где результат печати — «1 7» вместо «7 7». Известно, что активная синхронизация может быть достигнута с помощью таких методов, как enqueueReadBuffer или enqueueNDRangeKernel, но есть ли способ добиться автоматической синхронизации? В идеале графический процессор должен иметь возможность считывать обновленные значения данных в реальном времени сразу после модификации.
data = (int*)mmap(NULL, 0x1000, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
data[0] = 1;

cl::Buffer inputBuffer = cl::Buffer(context, CL_MEM_READ_WRITE | CL_MEM_USE_HOST_PTR , sizeof(int) * dataSize, data, &err);
cl::Buffer outputBuffer = cl::Buffer(context, CL_MEM_WRITE_ONLY, sizeof(int) * dataSize, NULL, &err);

cl::Program::Sources source(1, std::make_pair(kernelSource2, strlen(kernelSource2) + 1));
cl::Program program(context, source);
err = program.build(devices);
cl::Kernel kernel(program, "square", &err);
kernel.setArg(0, inputBuffer);
kernel.setArg(1, outputBuffer);

data[0] = 7;
size_t globalSize = dataSize;
cl::Event event;
err = queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(globalSize), cl::NullRange, nullptr, &event);
int *result = (int*)malloc(sizeof(int) * dataSize);
queue.enqueueReadBuffer(outputBuffer, CL_TRUE, 0, sizeof(int) * dataSize, result);
printf("%d %d\n", result[0], data[0])


Подробнее здесь: https://stackoverflow.com/questions/793 ... ntaining-r
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»