Постоянный кеш против текстурного кеша для широковещательного поведения в CUDA
Меня интересуют различия между постоянным кешем и текстурным кешем для устройств с вычислительной способностью 3.5, особенно в поведении вещания. Когда все потоки в деформациях выдают запрос на один и тот же элемент данных из постоянной памяти, и он попадает в кэш, он передается всем потокам за один цикл. Каково поведение кеша текстур в этом случае? Нагрузки сериализуются?
Кроме того, правильно ли я считаю, что как константа, так и текстурный кеш имеют многопроцессорность и, следовательно, используются несколькими блоками?
1 ответ
NVIDIA не предоставляет дополнительных сведений о размере или расположении постоянного кэша.
Количество текстурных кэшей варьируется.
- CC 2.0 1 единица текстуры на SM
- CC 2.1 2 текстурных блока на SM (1 на планировщик основы)
- CC 3.0 / 3.5 4 текстурных блока на SM (1 на планировщик основы)
- CC 3.2 / gk208 2 текстурных блока на SM (1 на 2 планировщика основы)
Деформации в блоках будут распределяться по планировщикам деформации в SM.
Если все 32 потока в деформации выполняют индексированное постоянное чтение по одному и тому же адресу, это будет выполнено в 1 выпуске инструкции, если запрос попадет в кэш.
Если все 32 потока в деформации выполняют LDG по одному и тому же адресу в текстовом кэше CC3.5, данные будут запрашиваться и возвращаться в течение 8 циклов.