Похоже, что основным источником вашей путаницы является смешение двух совершенно разных наборов ограничений:
- Максимальное количество потоков и блоков, которые могут одновременно выполняться на графическом процессоре.
- Максимальное количество потоков и блоков, которое может быть запущено для данного ядра.
Указанные вами числа (2048 потоков на многопроцессорную систему, всего три многопроцессорных системы = 6144 потока представляют первый набор ограничений).Числа, которые вы показываете на скриншоте вывода deviceQuery
:
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
, определяют границы данного запуска ядра. Хотя они несколько перекрываются, вы можете рассматривать их как более или менее отдельные.подробное обсуждение практических параметров запуска ядра и размеров блоков, см. здесь .