Максимальное количество параллельных ядер и архитектура виртуального кода
Итак, я нашел этот ресурс в Википедии
Максимальное количество резидентных сеток на устройство (параллельное выполнение ядра)
и для каждой вычислительной возможности он говорит о количестве одновременных ядер, которое, как я предполагаю, является максимальным количеством одновременных ядер.
Теперь я получаю GTX 1060, который в соответствии с этим ресурсом nvidia CUDA имеет вычислительные возможности 6.1. Из того, что я узнал о CUDA до сих пор, вы можете указать виртуальные вычислительные возможности вашего кода во время компиляции в NVCC, хотя с флагом -arch=compute_XX
,
Так будет ли мой графический процессор аппаратно ограничен 32 параллельными ядрами, или он может поддерживать 128 с -arch=compute_60
флаг?
2 ответа
В соответствии с таблицей 13 в руководстве по программированию NVIDIA CUDA вычислительные возможности устройств 6.1 имеют максимум 32 резидентных сетки = 32 параллельных ядра.
Даже если вы используете -arch=compute_60
флаг, вы будете ограничены аппаратным пределом 32 одновременных ядер. Выбор конкретной архитектуры для компиляции не позволяет вам превышать аппаратные ограничения машины.
В дополнение к принятому ответу, теперь это таблица 15 в Руководстве по программированию NVIDIA CUDA C по состоянию на апрель 2022 года, причем последняя версия CUDA — 12.1. Или вы можете просто найти в документации технические характеристики по вычислительным возможностям .