РЕДАКТИРОВАТЬ2: ТАКЖЕ, пожалуйста, возьмите это с зерном соли; Это чисто гипотетический ответ или предположение. Действительно, может быть четкая аппаратная причина, почему 64 - максимум. Честно говоря, я не знаю, и мой ответ основан на предположении, что такого аппаратного ограничения как такового не существует.
Вероятно, это комбинация из трех вещей: во-первых, существует ограничение на количество потоков, которые могут быть резидентными внутри блока; во-вторых, размеры блоков обычно кратны 32, а еще чаще степени 2 больше 32; в-третьих, системы координат, используемые при решении многомерных задач, чаще всего ориентированы так, что вы смотрите на сцену напрямую (т. е. важные биты распределены в X и Y больше, чем в Z).
CUDA, естественно, должен поддерживать 1D-доступ, так как это очень распространенный и эффективный шаблон доступа, когда это применимо. Чтобы поддержать это, размер X должен изменяться во всем диапазоне 1024 потоков.
Для поддержки 2D-доступа, который является менее распространенным, CUDA должна минимально поддерживать до 512 в измерении X (используя соглашение, что измерение X должно быть ориентировано в системе координат, чтобы он измерял самый большой разброс) и 32 измерение Y. Он должен поддерживать до 1024 в измерении X, и я предполагаю, что они ослабляют требование, чтобы размер X был не меньше размера Y, и допускали полный диапазон значений Y в 1024. Однако, в моем понимании, 32 было бы достаточно большим для максимума измерения Y.
Чтобы поддерживать трехмерный доступ, поддерживая X, Y> = Z и пытаясь достичь 1024, кажется, что в лучшем случае X = Y = Z = 10; так что нет реальных аргументов в пользу того, чтобы Z был больше 10, учитывая мои предположения
Таким образом, я не понимаю, почему они не смогли сделать максимумы (1024, 32, 10). Мой вопрос: зачем их делать (1024, 1024, 64)? Единственный ответ, к которому я все время возвращаюсь, - дать программистам некоторую гибкость в нарушении соглашения системы координат X> = Y> = Z
Редактировать: учитывая мое резюме и гипотетический ответ, реальный ответ на ваш вопрос таков: это произвольное решение.