Привет, я новичок в программировании CUDA, и у меня было 2 вопроса по модели программирования CUDA.
Вкратце, модель говорит, что существует иерархия памяти с точки зрения потоков, блоков и затем сеток. Потоки в блоке имеют общую память и могут легко взаимодействовать друг с другом, но не могут общаться, если они находятся в разных блоках. На устройстве GPU также есть глобальная память.
Мои вопросы:
(1) Зачем нам нужна такая иерархия памяти, состоящая из потоков и затем блоков?
Таким образом, любые два потока могут общаться друг с другом, если это необходимо, и, следовательно, вероятно, упростят процесс программирования.
(2) Почему существует ограничение на настройку потоков только до 3D-конфигураций и не более?
Спасибо.