Как я правильно понимаю, для устройств с возможностью вычисления 2.x существует ограничение на 63 регистра на поток. Знаете ли вы, какой лимит регистра на поток для устройств вычислительной способности 1.3?Регистры Cuda в потоке
У меня есть большое ядро, которое я тестирую на GTX260. Я уверен, что я использую много регистров, так как ядро очень сложно, и мне нужно много локальных переменных. Согласно профилю Cuda, мое использование регистра - 63 (Static Smem - 68, хотя я не уверен, что это значит, и динамический Smem равен 0), хотя я уверен, что у меня более 63 локальных переменных, поэтому я решил, что компилятор повторно использует регистры или проливает их в локальную память.
Теперь я думал, что устройства вычислительной способности 1.3 имеют более высокий предел регистров на поток, чем устройства 2.x. Мое предположение заключалось в том, что компилятор выбирал предел 63, потому что я использую блоки из 256 потоков, и в этом случае 256 * 63 равно 16128, а 256 * 64 - 16384, что является предельным числом регистров для SM этого устройства. Поэтому я предполагал, что если я уменьшу количество потоков на блок, я могу увеличить количество используемых регистров. Поэтому я запустил ядро с блоками из 196 потоков. Но снова профайлер показывает 63 регистра, хотя 63 * 192 - 12096, а 64 * 192 - 12288, что является способом внутри предела 16384 SM.
Итак, любая идея, почему компилятор ограничивает себя еще 63 регистрами? Может быть, все из-за повторного использования регистра или все еще проливает регистры?
Ответ может быть в первой части вашего вопроса [здесь] (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#features-technical-specifications.xml) – talonmies
Да, я смотрел на это раньше. В таблице указано «Число 32-разрядных регистров на один процессор», которое составляет 16 КБ, но мне нужно максимальное количество разрешенных регистров ** на поток **, который там не указан. Я знаю, что для устройств 2.x предел равен 63, но существует ли ограничение на 1,3? – Atirag
Продолжайте искать, номер в потоке справа внизу – talonmies