Целью теста STREAM является не измерение максимальной пропускной способности памяти (т. Е. Максимальной пропускной способности памяти, которая может быть достигнута в системе), а измерение «пропускной способности памяти» ряда ядер (COPY, SCALE, SUM и TRIAD), которые важны для сообщества HPC.Поэтому, когда пропускная способность, о которой сообщает STREAM, выше, это означает, что приложения HPC, вероятно, будут работать быстрее в системе.
Также важно понимать значение термина «пропускная способность памяти» в контексте эталонного теста STREAM, который объясняется в последнем разделе документации.Как уже упоминалось в этом разделе, существует как минимум три способа подсчета количества байтов для эталонного теста.В тесте STREAM используется метод STREAM, который считает количество прочитанных и записанных байтов на уровне исходного кода.Например, в ядре SUM (a (i) = b (i) + c (i)) два элемента читаются, а один элемент записывается.Следовательно, при условии, что все обращения осуществляются в память, число байтов, к которым обращаются из памяти за одну итерацию, равно количеству массивов, умноженному на размер элемента (который составляет 8 байтов).STREAM вычисляет пропускную способность путем умножения общего количества элементов, к которым был получен доступ (подсчитано с использованием метода STREAM), на размер элемента и деления его на время выполнения ядра.Чтобы учесть различия между прогонами, каждое ядро запускается несколько раз, и сообщается среднее арифметическое, минимальное и максимальное значения пропускной способности.
Как видите, пропускная способность, сообщаемая STREAM, не является реальнойпропускная способность памяти (на аппаратном уровне), поэтому даже не имеет смысла говорить, что это пиковая пропускная способность.Кроме того, он почти всегда намного ниже максимальной пропускной способности.Например, эта статья показывает, как страницы ECC и 2 МБ влияют на полосу пропускания, сообщаемую STREAM.Написание эталона, который фактически обеспечивает максимально возможную пропускную способность памяти (на аппаратном уровне) на современных процессорах Intel, является серьезной проблемой и может быть хорошей проблемой для всего кандидата наук.Тезис.Однако на практике пиковая пропускная способность менее важна, чем пропускная способность STREAM в домене HPC.(Связано: см. мой ответ для получения информации о проблемах, связанных с измерением пропускной способности памяти на аппаратном уровне.)
Относительно вашего первого вопроса, обратите внимание, что STREAM просто предполагает, что все чтение и записьудовлетворены основной памятью, а не кешем.Выделение массива, который намного больше, чем размер LLC, помогает повысить вероятность того, что это так.По сути, сложные и недокументированные аспекты LLC, включая политику замены и политику размещения, должны быть побеждены.Это не должно быть точно в 4 раза больше, чем LLC.Насколько я понимаю, это то, что доктор Bandwidth нашел, чтобы работать на практике.