Инструмент или код для характеристик кэша и памяти

Я столкнулся с проблемой производительности на многоядерной архитектуре (8+) с программным обеспечением, написанным на С++/VistualStudio/WindowsXP.

Внезапно я понял, что понятия не имею о характеристиках моего кеша L1 и L2 и пропускной способности памяти CPU- > to- > .

Я тестировал несколько инструментов (включая VTune, Glowcode и т.д. и т.д.), но все они терпят неудачу при тестировании при загрузке в многоядерной архитектуре (именно по этой причине они мне нужны!).

Можете ли вы предложить какой-либо другой инструмент, который не настолько пригоден для выполнения графиков, но может дать мне хотя бы несколько указаний на производительность кеша/памяти или может предложить фрагменты кода для ручного приложения моего приложения?

Спасибо!

5 ответов

Вы уверены, что источник вашей проблемы с производительностью? Если нет, может быть хорошей идеей сначала взглянуть на другие вещи.

Там хорошая статья о многопоточном программировании и различные скрытые проблемы с ней, здесь. Может быть, это поможет?


вы можете использовать аппаратные счетчики для измерения частоты пропусков L1 и L2; однако я не слишком уверен, какой пакет библиотеки использовать с платформой Windows.


Я считаю, что набор тестов EVEREST проверяет производительность вашей памяти/процессора/кеша. Вы можете посмотреть этот сайт. Страница Everest Lavalys


Вы пробовали cachegrind? Конечно, это симулятор, но все же, это позволит вам уловить большинство реальных проблем.


Возможно Memtest86 + - это то, что вы ищете.

licensed under cc by-sa 3.0 with attribution.