Постоянный кеш против текстурного кеша для широковещательного поведения в 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 циклов.

Другие вопросы по тегам