Глобальная эффективность нагрузки более 100%

У меня есть программа CUDA, в которой потоки блочного чтения элементов длинного массива в несколько итераций и обращения к памяти почти полностью объединены. Когда я профилирую, Global Load Efficiency превышает 100 % (от 119 % до 187 % в зависимости от входных данных). Описание для Global Load Efficiency: "Отношение пропускной способности глобальной загрузки памяти к требуемой пропускной способности глобальной памяти". доступы извлекают выгоду из этого?

Мой графический процессор — GeForce GTX 780 (архитектура Kepler).


person Farzad    schedule 29.10.2013    source источник


Ответы (1)


Я задал этот вопрос на форуме NVIDIA здесь. Цитирую полученный ответ:

«Глобальная эффективность загрузки и глобальная эффективность хранилища описывают, насколько хорошо работает объединение доступа к DRAM и (L2?) кэш-памяти. Если они равны 100 %, то у вас идеальное объединение. не имеет никакого смысла (вы не можете быть лучше оптимального) это должно быть ошибкой. Эта ошибка вызвана визуальным профилировщиком, который подсчитывает аппаратные события для расчета некоторых абстрактных показателей. Но у графического процессора нет «правильного» события, чтобы точно вычислить все эти показатели, поэтому Visual Profiler должен оценивать эти показатели, используя некоторую сложную формулу и "неправильные" события. Есть некоторые показатели, которые являются лишь приблизительными оценками, и двумя из них являются Global Load Efficiency и Global Store Efficiency. Таким образом если такая эффективность больше 100 процентов, это ошибка оценки. Насколько я заметил, глобальная эффективность загрузки и глобальная эффективность хранилища увеличились выше 100 процентов в некоторых из моих ядер с разливом регистра. Вот почему я предполагаю, что Visual-Profiler использует некоторые события, которые также могут быть вызваны доступом к локальной памяти, для расчета этих двух показателей эффективности. Кроме того, графические процессоры просто используют 32-битные счетчики. Таким образом, долго работающее ядро ​​имеет тенденцию к переполнению этих счетчиков, что также приводит к тому, что Visual Profiler отображает неверные показатели."

person Farzad    schedule 31.10.2013