#opencl
#opencl
Вопрос:
Я не смог найти ни одной команды запроса об устройстве, интегрированном / встроенном в процессор или использующем системную оперативную память или собственную выделенную память gddr? Я могу сравнить сопоставление / сопоставление с чтением / записью, чтобы получить вывод, но это устройство может быть загружено в это время и вести себя неправильно, и это усложнило бы и без того сложный алгоритм балансировки нагрузки, который я использую.
Есть ли простой способ проверить, использует ли графический процессор ту же память, что и процессор, чтобы я мог выбрать прямое отображение / отключение вместо чтения / записи?
Редактировать: существует CL_DEVICE_LOCAL_MEM_TYPE
CL_GLOBAL or CL_LOCAL
является ли это признаком интегрированности?
Ответ №1:
В OpenCL 1.x есть запрос устройства CL_DEVICE_HOST_UNIFIED_MEMORY
:
Является CL_TRUE, если устройство и хост имеют единую подсистему памяти, и является CL_FALSE в противном случае.
Этот запрос устарел с версии OpenCL 2.0, но, вероятно, пока должен работать на платформах OpenCL 2.x. В противном случае вы можете создать эвристику из результата CL_DEVICE_SVM_CAPABILITIES
instead .
Комментарии:
1. Является ли устаревание из-за того, что в будущем все станет унифицированным хостом? Сейчас я на opencl 1.2, и мне нужно, чтобы это соответствовало 2.x позже.
2. Нет, не все будет иметь объединенную память с хостом в будущем. Я предполагаю, что он устарел, потому что он считался недостаточно определенным или потому, что запросы SVM предоставляли более полезную информацию.