Заменяет ли int краткую производительность в CUDA? - PullRequest
3 голосов
/ 07 сентября 2011

предположим, что у нас достаточно глобальной памяти.Заменит ли int на short повышение производительности в CUDA?(например, short экономит использование общей памяти, регистров и т. д.)

Советы приветствуются.Спасибо.

Ответы [ 3 ]

4 голосов
/ 07 сентября 2011

Зависит:

Если ваша программа связана с памятью, тогда Да передача ввода в виде шорт может быть полезной.

Если ваше ядро ​​привязано к вычислениям, скорее всего будет Нет , потому что ядру приходится выполнять дополнительную операцию для преобразования из short в int, а затем обратно в short каждый раз.

4 голосов
/ 07 сентября 2011

Использование short в совместно используемой памяти, скорее всего, снизит производительность из-за банковских конфликтов, пока вы не используете short2.

Кроме того, насколько мне известно, все регистры в графическом процессоре являются 32-разрядными, поэтому маловероятно, что использование short уменьшит использование регистров.

1 голос
/ 07 сентября 2011

Аппаратное обеспечение класса Tesla (SM 1.x) имеет удивительно богатую поддержку «полурегистров», поэтому вы можете получить некоторое преимущество от использования short вместо int на этих платформах.Вы можете подтвердить это, используя cuobjdump, чтобы посмотреть на микрокод в кубине.Но Fermi удалила эту поддержку.

В SM 2.1 NVIDIA добавила поддержку «видео» инструкций, которые реализуют 32-битные операции SIMD на 32-битных регистрах - см. Раздел 8.7.9 спецификации PTX 2.1.

http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.1.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...