Какова связь между рабочим элементом и потоковым процессором (ядро cuda). Я где-то читал, что количество рабочих элементов ДОЛЖНО значительно превышать количество ядер, в противном случае нет улучшения производительности. Но почему это так? Я думал, что 1 основной репресент 1 работает. Может ли кто-нибудь помочь мне понять это? Рабочие станции Opencl и потоковые процессоры
ответ
Причина в основном заключается в планировании - один ядро / процессор/блок обычно может запускать несколько потоков и переключаться между ними, чтобы скрыть задержку памяти (SMT). Таким образом, для каждого ядра обычно хорошая идея иметь несколько потоков, стоящих в очереди за него.
Поток обычно соответствует хотя бы одному рабочему элементу, хотя в зависимости от драйвера и оборудования несколько рабочих элементов могут быть объединены в один поток, чтобы использовать возможности SIMD/vector для ядра.
Графические процессоры и большинство других аппаратных средств имеют тенденцию делать арифметические операции намного быстрее, чем они могут получить доступ к большей части доступной памяти. Имея намного больше рабочих элементов, чем у вас есть процессоры, позволяет планировщику размахивать памятью, а те рабочие элементы, которые уже прочитали свои данные, используют аппаратное обеспечение ALU для выполнения обработки.
Here is a good page about optimization in opencl. Прокрутить вниз до « 2.4. Извлечение« дорогого »доступа к глобальной памяти GPU», где оно входит в эту концепцию.
- 1. Максимальные рабочие процессоры и сеансы
- 2. Найти рабочие станции пользователя
- 3. OpenCL рабочие группы
- 4. OpenCL рабочие всегда 1
- 5. Рабочие элементы OpenCL выполняются параллельно?
- 6. OpenCL - Оперируются ли рабочие группы?
- 7. Рабочие станции разрешили атрибут в активном каталоге
- 8. Создайте контекст OpenCL, используя все процессоры и устройства GPU
- 9. Рабочие элементы OpenCL на рабочие группы в 2DRange
- 10. Сервер и рабочие станции с распределенным параметром тензорного потока
- 11. игнорировать рабочие станции, которые находятся в автономном режиме и возобновить
- 12. Не все рабочие элементы используются opencl
- 13. Почему рабочие группы OpenCL 3-мерные?
- 14. Java параллелизм: OpenCL/графические процессоры против актеров/потоков
- 15. Как убедиться, что все рабочие станции синхронизированы относительно времени
- 16. Рабочие станции Logstash Sky ракеты до 100% CPU
- 17. Active Directory - Найти рабочие станции Mac OS X
- 18. Сборка и многоядерные процессоры
- 19. OpenCL и несколько видеокарт
- 20. OpenCL - как эффективно распределять рабочие элементы на разные устройства
- 21. WCF и потоковые файлы
- 22. Рабочие размеры для полностью независимых вычислений в OpenCL
- 23. Поддерживает ли Nvidia графические процессоры, подобные структурам?
- 24. OpenCL: AMD Fusion и CL_MEM_USE_HOST_PTR
- 25. Storm vs Kafka и процессоры
- 26. Графические процессоры NVIDIA и PhysX
- 27. Процессоры и виртуальные/физические адреса
- 28. Глобальные и локальные процессоры сообщений
- 29. PLINQ и логические процессоры конфигурации
- 30. Контекстные процессоры и ручное рендеринг