Общее количество потоков, блоков и сеток на моем графическом процессоре. - PullRequest
0 голосов
/ 26 июня 2018

Для графического процессора NVIDIA GEFORCE 940mx запрос устройства показывает, что он имеет 3 многопроцессорных и 128 ядер для каждого MP. enter image description here

Количество потоков на мультипроцессор = 2048

Итак, 3 * 2048 = 6144.ie.всего 6144 потоков в графическом процессоре.

6144/1024 = 6, т.е.Всего 6 блоков.И размер деформации составляет 32.

Но из этого видео https://www.youtube.com/watch?v=kzXjRFL-gjo я обнаружил, что у каждого графического процессора есть ограничение на потоки, но нет ограничения на количество блоков.

Так что я запуталсяс этим.Я хотел бы знать

  1. Сколько всего потоков в моем GPU?Можем ли мы использовать все потоки для выполнения программы?
  2. Сколько существует блоков и сеток?

1 Ответ

0 голосов
/ 26 июня 2018

Похоже, что основным источником вашей путаницы является смешение двух совершенно разных наборов ограничений:

  1. Максимальное количество потоков и блоков, которые могут одновременно выполняться на графическом процессоре.
  2. Максимальное количество потоков и блоков, которое может быть запущено для данного ядра.

Указанные вами числа (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)

, определяют границы данного запуска ядра. Хотя они несколько перекрываются, вы можете рассматривать их как более или менее отдельные.подробное обсуждение практических параметров запуска ядра и размеров блоков, см. здесь .

...