Я хочу контролировать количество ядер GPU для проверки ускорения. Как я могу это сделать в OpenCL? Я понимаю, что могу контролировать размер группы для управления синхронизацией, но я запутался, так как размер группы может быть более ста, что намного больше, чем количество ядер GPU.OpenCL как управлять количеством процессоров для использования
ответ
То, что вы ищете, называется Устройство деления. Это расширение в OpenCL 1.1 и в базовой спецификации от OpenCL 1.2 и далее.
Чтобы предоставить вам отправную точку, вам необходимо использовать clCreateSubDevices
. Например, чтобы ограничить ядро для запуска только на одном вычислительном блоке, вы можете передать properties
как таковую:
{
CL_DEVICE_PARTITION_BY_COUNTS,
1, // Use only one compute unit
CL_DEVICE_PARTITION_BY_COUNTS_LIST_END
}
Это говорит водителю, чтобы создать один суб-устройство состоит из одного вычислительного блока. Затем вы можете запустить свое ядро на этом под-устройстве, которое будет запланировано только на одном вычислительном блоке.
По умолчанию будут использоваться все ядра? – ethanjyx
Если вы запустите свое ядро на * физическом * устройстве (те, которые возвращаются 'clGetDevices'), то да, будут использоваться все вычислительные единицы (термин« ядро »имеет двусмысленное значение). Если вы запустите свое ядро на * логическом * устройстве (под-устройстве), тогда будет использоваться только количество вычислительных единиц, которые вы указали. –
Когда я использовал это на алгоритме nbody на fx8150, чтобы выбрать только 7-ядер вместо 8, производительность повысилась на% 50 -% 70, возможно, используя все ядра для opencl, это не позволяет запускать любой другой поток. –
- 1. Использование нескольких графических процессоров OpenCL
- 2. OpenCL FFT lib для графических процессоров?
- 3. Как избежать использования высоких процессоров?
- 4. Как управлять количеством списков вообще?
- 5. Как управлять огромным количеством сокетов
- 6. Синхронизация потоков GPU многоядерных процессоров с OpenCL
- 7. клиент-кролик с большим количеством процессоров
- 8. WPF рендер медленнее с большим количеством процессоров
- 9. Приложение Jruby Rails для использования процессоров Tomcat
- 10. select2: управлять количеством опций для отображения
- 11. Вычисление количества процессоров для использования openmpi
- 12. Использует ли GLSL SLI? Открывает OpenCL? Что лучше, GLSL или OpenCL для нескольких графических процессоров?
- 13. Как идентифицировать горячие точки использования процессоров Go?
- 14. Как управлять количеством параллельных заданий пакетной весны
- 15. Как управлять количеством буферизованных кадров VLCkit?
- 16. Понимание использования процессоров процессора многопроцессорного модуля
- 17. Как создать и управлять большим количеством JTextFields?
- 18. Как управлять количеством потоков внутри задачи синхронизации
- 19. HdrHistogram: как управлять количеством ведер в outputPercentileDistribution()?
- 20. Готово ли OpenCL для использования на процессоре?
- 21. Ядро OpenCL START задерживается при использовании нескольких графических процессоров?
- 22. Как создать «рабочий» поток для использования мощностей многоядерных процессоров?
- 23. Как эффективно сортировать массив для использования нескольких процессоров?
- 24. Как я могу управлять большим количеством изображений для Android?
- 25. Какие приложения следует переписать для использования OpenCL?
- 26. Каковы основные отличия графических процессоров, поддерживаемых OpenCL/CUDA?
- 27. Ядро ядра OpenCL с большим количеством памяти хоста
- 28. Лучшая практика использования нескольких процессоров XML?
- 29. openmp vs opencl для компьютерного зрения
- 30. Как назначить задачи для процессоров?
Использование деления устройства (OpenCL> = 1.2). –
@ ParkYoung-Bae, пожалуйста, напишите ему как ответ, чтобы стереть этот вопрос с неотвеченной вкладки. –