Буферы нулевого копирования, использующие расширение cl_arm_import_memory в OpenCL 1.2 - графические процессоры arm mali midgard - PullRequest
1 голос
/ 20 октября 2019

Я хочу выделить вектор и использовать его указатель данных для выделения нулевого буфера копирования на GPU. Существует это расширение cl_arm_import_memory, которое можно использовать для этого. Но я не уверен, поддерживается ли он всеми драйверами mali midgard OpenCL или нет.

Я просматривал эту ссылку , и я довольно озадачен следующими строками: -

Если раскрыта строка расширения cl_arm_import_memory_host, то поддерживается импорт из обычных распределений пространства пользователя (например, созданных с помощью malloc).

Что именно означают эти строки? Я специально работаю над платами RK3399 от Rockchip. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 20 октября 2019

Если раскрыта строка расширения cl_arm_import_memory_host

Это означает, что вам необходимо проверить свойство CL_DEVICE_EXTENSIONS вашего устройства OpenCL с помощью функции clGetDeviceInfo() . Разделите возвращенную строку на имена расширений (они разделены пробелами), затем проверьте, является ли "cl_arm_import_memory_host" одной из этих строк.

Обратите внимание, что рассматриваемое расширение состоит из нескольких различных подфункций:

cl_arm_import_memory
cl_arm_import_memory_host
cl_arm_import_memory_dma_buf
cl_arm_import_memory_protected

cl_arm_import_memory будет сообщено, если по крайней мере одна из других строк расширения также сообщается.

Так что, если ваша реализация поддерживает импорт памяти host , она отобразит и cl_arm_import_memory и cl_arm_import_memory_host.

Если поддерживается правильная функция, вам, вероятно, потребуется получить указатель на clImportMemoryARM() функцию *1039* расширения , вызвав clGetExtensionFunctionAddressForPlatform.

Затем используйте функции расширения, описанные в документации.

...