Какое время доступа для разных областей памяти GPU?

Это вопрос дискретных графических процессоров, в основном новейших графических процессоров (NVIDIA Kepler, Maxwell; и того, что есть в AMD Kaveri и R290).

Сколько нужно, чтобы загрузить элемент без кэширования в регистр из...

  • Глобальная память устройства?
  • Глобальная кэш-память второго уровня?
  • Кэш текстуры?
  • Постоянный кеш (ы)?
  • На ядро ​​кеш L1?
  • (Общая память на ядро ​​- должна быть такой же, как кэш-память L1.)

Ссылка на таблицу где-нибудь была бы хорошей, объяснение было бы хорошо...

1 ответ

Это зависит от GPU, поколения, как его интегрированы (например, pcie) и другие вещи. Я часто работаю с ASM, и вот цифры, с которыми я работаю:

-Глобальное устройство памяти? около 300-800 часов. (установленные на материнской плате графические процессоры, такие как ноутбуки, использующие основную память, имеют более медленную память)

-Глобальная кэш-память второго уровня? около 100 тактов

-Текстура кеша (ов)? угадывание 50-100 тактов

Постоянный кэш (ы)? около 1-3 тактов, если он находится в кеше или кеше L2 (~50-100 тактов) или даже в глобальных мем 300-500 тактов. (в зависимости от того, ударил ли он по кешу или нет)

-Per-core (то есть Per-SMX/SMM в Kepler/Maxwell) кэш-память первого уровня? около 1-3 тактов

-Per-core (то есть Per-SMX/SMM в Kepler/Maxwell) разделяемая память? около 1-3 тактов

Я также сделал некоторые онлайн-поиски, чтобы увидеть, насколько близко я был и нашел это. Цифры отличаются от моих. http://lpgpu.org/wp/wp-content/uploads/2013/05/poster_andresch_acaces2014.pdf Я думаю, что фактическое время, затрачиваемое на то, с чем программист должен работать, это два разных числа из-за многопоточности. Надеюсь это поможет.

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