Согласно этому, http://www.nvidia.co.uk/content/PDF/isc-2011/Ziegler.pdf, Я понимаю, что повторы в литературе по графическим процессорам означают сериализации. Но каковы факторы, влияющие на количество сериализаций?
Для этого я провел несколько экспериментов. Профилировать несколько ядер и найти количество повторов (= выданные инструкции - выполненные инструкции). Иногда количество банковских конфликтов должно быть равно количеству повторов. В некоторых других случаях число банковских конфликтов меньше. Это подразумевает, что количество банковских конфликтов всегда является фактором. А как насчет другого?
Согласно слайдам выше (из слайдов 35), есть и другие:
. Кеш инструкций отсутствует
. Постоянная память банка конфликтов
Насколько я понимаю, может быть два других:
. Количество ветвей расхождения. Поскольку оба пути выполнены, есть повторы. Но я не уверен, что на количество выданных инструкций влияют расхождения или нет?
. Количество пропущенных кешей. Я слышал, что запросы памяти с большим временем ожидания будут воспроизводиться иногда. Но в моих экспериментах пропуски кэша L1 часто превышают повторы.
Может ли кто-нибудь подтвердить, что эти факторы способствуют сериализации? Что не так и я что-то упускаю?
Спасибо