Я не знаю ни одного отдельного инструмента, который бы это делал, но только для чипов Intel, если вы знаете «URL-адрес ARK» для чипа, вы можете получить максимальную пропускную способность, используя комбинацию инструментов для запроса ARK, например curl
, и что-то для анализа возвращаемого HTML, например xmllint --html --xpath
.
Например, для моего i7-6700HQ работает следующее:
curl -s 'https://ark.intel.com/products/88967/Intel-Core-i7-6700HQ-Processor-6M-Cache-up-to-3_50-GHz' | \
xmllint --html --xpath '//li[@class="MaxMemoryBandwidth"]/span[@class="value"]/span/text()' - 2>/dev/null
Это возвращает 34.1 GB/s
, что является максимальной теоретической пропускной способностью моего чипа.
Основная трудность заключается в определении URL-адреса ARK, который не соответствует очевидным образом строке бренда ЦП. Одним из решений может быть поиск модели процессора на проиндексируйте страницу, подобную этой, и перейдите по ссылке.
Это дает вам максимальную теоретическую пропускную способность, которая может быть рассчитана как (number of memory channels) x (trasfer width) x (data rate)
. data rate
— это количество передач в единицу времени, и обычно это число, указанное в названии типа памяти, например, DDR-2133
имеет скорость передачи данных 2133 миллиона передач в секунду. В качестве альтернативы вы можете рассчитать его как произведение скорости шины (в данном случае 1067 МГц) и множителя скорости передачи данных (2 для технологий DDR).
Для моего процессора этот расчет дает 2 memory channels * 8 bytes/transfer * 2133 million transfers/second = 34.128 GB/s
, что соответствует цифре ARK.
Обратите внимание, что теоретический максимум, сообщаемый ARK, может быть ниже или выше теоретического максимума в вашей конкретной системе по разным причинам, в том числе:
- Заполнено меньше каналов памяти, чем максимальное количество каналов. Например, если бы я заполнил только один канал в своей двухканальной системе, теоретическая пропускная способность сократилась бы вдвое.
- Не используется максимальная скорость поддерживаемой оперативной памяти. Мой процессор поддерживает несколько типов оперативной памяти (DDR4-2133, LPDDR3-1866, DDR3L-1600) с разной скоростью. Рисунок ARK предполагает, что вы используете максимально быструю поддерживаемую оперативную память, что верно в моем случае, но может быть неверно в других системах.
- Разгон или разгон шины памяти относительно номинальной частоты.
Как только вы получите правильную теоретическую цифру, вы на самом деле не достигнете этой цифры на практике из-за различных факторов, включая следующие:
- Невозможность насыщения интерфейса памяти одним или несколькими ядрами из-за ограниченного параллелизма для невыполненных запросов, как описано в разделе «Платформы с привязкой к задержке» в этот ответ.
- Скрытое удвоение пропускной способности, подразумеваемое операциями записи, которым необходимо прочитать строку перед ее записью.
- Различные низкоуровневые факторы, связанные с интерфейсом DRAM, который предотвращает 100% использование, такие как стоимость открытия страниц, время обработки чтения/записи, циклы обновления и т. д.
Тем не менее, используя достаточное количество ядер и нетермпоральных хранилищ, вы часто можете приблизиться к теоретической пропускной способности, часто 90% или более.
person
BeeOnRope
schedule
03.11.2018
time dd if=/dev/zero of=/dev/null bs=1g count=200
или что-то в этом роде? Если нет, то тег[benchmarking]
не имеет смысла. - person Peter Cordes   schedule 27.10.2018[benchmarking]
. - person einpoklum   schedule 28.10.2018