Я надеюсь использовать графический процессор на мобильном телефоне для прямого и быстрого доступа и синхронизации данных памяти, которые процессор также будет считывать и изменять в режиме реального времени.
На мобильном телефоне телефон, это простой пример, где результат печати — «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
Как графический процессор может напрямую обращаться к данным памяти, созданным процессором, сохраняя при этом синхрониза ⇐ Android
Форум для тех, кто программирует под Android
1735071095
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])
Подробнее здесь: [url]https://stackoverflow.com/questions/79306424/how-can-a-gpu-directly-access-memory-data-created-by-the-cpu-while-maintaining-r[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия