Обычно это не очень хороший способ минимизировать давление в регистре. Компилятор хорошо справляется с оптимизацией общей проектируемой производительности ядра и учитывает множество факторов, включая регистр.
Как это работает, когда уменьшение регистров вызвало замедление скорости
Скорее всего, компилятору пришлось вылить недостаточно регистровых данных в «локальную» память, которая по сути такая же, как глобальная память, и, следовательно, очень медленная
В целях оптимизации я бы рекомендовал использовать ключевые слова, такие как const, volatile и т. Д., Где это необходимо, чтобы помочь компилятору на этапе оптимизации.
В любом случае, не такие крошечные проблемы, как регистры, часто заставляют ядра CUDA работать медленно. Я бы рекомендовал оптимизировать работу с глобальной памятью, шаблоном доступа, кэшированием в текстурной памяти, если это возможно, транзакциями через PCIe.