В чем разница: пропускная способность DRAM и глобальная пропускная способность памяти

Фактическая пропускная способность, достигнутая ядром, сообщается профилировщиком CUDA с использованием четырех показателей:

  • Глобальная пропускная способность загрузки памяти
  • Глобальная пропускная способность хранилища памяти
  • Чтение DRAM пропускная способность
  • Пропускная способность записи DRAM

CUDA C Best Practices Guideописывает пропускную способность загрузки/сохранения глобальной памяти как фактическую пропускную способность и не говорит ничего конкретного о пропускной способности чтения/записи DRAM.

Руководство пользователя CUPTIопределяет:

  • Глобальная пропускная способность загрузки памяти как ((128*global_load_hit) + (l2_subp0_read_requests + l2_subp1_read_requests) * 32 - (l1_cached_local_ld_misses * 128))/(gputime)
  • Пропускная способность хранилища глобальной памяти как (l2_subp0_write_requests + l2_subp1_write_requests) * 32 - (l1_cached_local_ld_misses * 128))/(gputime)
  • Пропускная способность чтения DRAM как (fb_subp0_read + fb_subp1_read) * 32 / gputime
  • Запись DRAM пропускная способность как (fb_subp0_write + fb_subp1_write) * 32 / gputime

Я понимаю пропускную способность чтения/записи DRAM, поскольку счетчики fb_subp* сообщают о количестве обращений к DRAM (увеличивается на 1 для доступа к 32 байтам) и собираются для всех SM. . Поэтому для меня ясно, что пропускная способность рассчитывается как функция gputime и количества байтов, к которым осуществляется доступ.

Я не понимаю определение пропускной способности глобальной памяти.Нет определения global_load_hit и счетчика. Я не понимаю, почему l1_cached_local_ld_misses вычитается в обоих случаях.

Является ли DRAM чем-то отличным от глобальной памяти в этом контексте?

Если я хочу узнать, какова фактическая пропускная способность моего ядра, следует ли мне использовать показатели пропускной способности DRAM или глобальной памяти?

6
задан kaiz.net 7 June 2012 в 08:12
поделиться