"Глобальная эффективность нагрузки" более 100%
У меня есть программа CUDA, в которой потоки блока читают элементы длинного массива за несколько итераций и обращения к памяти практически полностью объединены. При профилировании общая эффективность нагрузки превышает 100% (от 119% до 187% в зависимости от входных данных). Описание Global Load Efficiency - "Соотношение пропускной способности глобальной памяти к требуемой пропускной способности глобальной памяти". Означает ли это, что я сильно бью кеш L2, и доступ к моей памяти от этого выигрывает?
Мой графический процессор - GeForce GTX 780 (архитектура Kepler).
1 ответ
Я задал этот вопрос на форуме NVIDIA здесь. Я цитирую ответ, который я получил:
"Глобальная эффективность загрузки и глобальная эффективность хранилища описывают, насколько хорошо работает объединение DRAM-доступа и (L2?) Доступа к кэшу. Если они на 100 процентов, то вы получаете идеальное объединение. Поскольку эффективность выше 100 процентов не дает В любом случае (вы не можете быть лучше оптимального) это должно быть ошибкой. Эта ошибка вызвана Visual Profiler, который подсчитывает аппаратные события для вычисления некоторых абстрактных метрик. Но у GPU нет "правильных" событий для точного рассчитать все эти метрики, таким образом, Visual Profiler должен оценить эти метрики, используя некоторую сложную формулу и "неправильные" события. Есть некоторые метрики, которые являются просто приблизительными оценками, и Global Load Efficiency и Global Store Efficiency - два из них. Таким образом, если такой эффективность больше 100%, это ошибка оценки. Насколько я наблюдал, глобальная эффективность загрузки и глобальная эффективность хранилища увеличились выше 100% в некоторых из моих ядер различий в регистрах. Поэтому я предполагаю, что Visu al-Profiler использует некоторые события, которые также могут быть вызваны доступом к локальной памяти, для расчета этих двух показателей эффективности. Кроме того, GPU просто использует 32-битные счетчики. Таким образом, долго работающее ядро имеет тенденцию переполнять эти счетчики, что также приводит к тому, что Visual Profiler отображает неправильные метрики ".