Я сейчас пишу ядро OpenCL (но полагаю, что в CUDA будет то же самое), и в настоящее время пытаюсь оптимизировать для NVidia GPU.
В настоящее время я использую 63 регистра в своем ядре, это ядро очень большое, поэтому оно использует все регистры графического процессора. Я ищу способ:
1) Посмотрите, какие переменные находятся в регистрах, а какие - в глобальной памяти (потому что, если у меня недостаточно регистров, компилятор сохраняет переменные в глобальной памяти).
2) Есть ли способ указать, какая переменная важнее (или какая должна быть в регистрах). Потому что я использую некоторые переменные, которые есть, но используются реже. Способ отдать приоритет?
Есть ли другая стратегия оптимизации, когда мы уже используем все регистры?
Кстати: я также пытался читать код PTX и искать все ключевые слова ".reg", но проблема в том, что PTX не читается, я не знаю, какой регистр используется для какой переменной в моем коде. Я не нашел способа получить корреспонденцию!
Благодарность