У миниатюрного компьютера типа Biostar Racing P1 каждый мегагерц на счету. Это диктуется компактностью и низким уровнем энергопотребления. Процессор Intel Atom x5-Z8350 здесь на своем месте. И ждать от него особых рекордов производительности не приходится. Особенно, с учетом провальных характеристик по записи кэш-памяти L1-уровня.
Тем не менее, этот «уже не стик, но еще и не ноутбук» своего потребителя всё же найдет. Залог тому – четыре ядра простенького, казалось бы, CPU. Стоит возлагать на них надежды?
В предыдущей статье мы анализировали результаты тестов кэш-памяти выполненные в одном потоке, что дает представление об «изолированной» производительность отдельно взятого ядра. Какой будет интегральная оценка многоядерного процессора? Итак, устанавливаем чекбокс Use parallel operations в утилите NCRB и выполняем аналогичную серию измерений.
Рис 1. Выбор сценария многопоточного тестирования платформы средствами утилиты NCRB
В процессоре Intel Atom x5-Z8350 кэш-память первого уровня является приватным ресурсом каждого из четырех ядер. Это означает, что при обработке блока данных, размер которого меньше размера L1 (в нашем примере это 24 килобайта), каждое из ядер использует собственную кэш-память, конкуренция при доступе практически отсутствует, значит, мы вправе ожидать кратного прироста производительности в соответствии с количеством ядер. Расхожая фраза «а вот и не подеретесь» достаточно точно характеризует данный измерительный сценарий.
Рис 2. График зависимости скорости чтения блока данных от его размера для одновременно работающих 4 процессорных ядер; окрестность X = размер L1
Контраргументами могут стать такие факторы, как уменьшение верхнего лимита динамического оверклокинга при реализации заданного сценария энергопотребления и термального режима, а также ограничение процессорного времени, выделяемого операционной системой приложению в рамках многозадачной среды.
Напомним, пиковая производительность в однопоточном тесте (см. «Biostar Racing P1: холодный выхлоп») составляла чуть более 30 GBPS. Задействовав 4 ядра, получаем результат около 107 GBPS, который довольно близок к теоретическому значению 120 GBPS.
Рис 3. График зависимости скорости записи блока данных от его размера для одновременно работающих 4 процессорных ядер; окрестность X = размер L1
При исследовании L1 важен левый участок графика, соответствующий блоку размером до 24KB. Здесь мы видим две фракции производительности: быстрый участок на малоразмерных транзакциях (более 105 GBPS), и медленный участок для данных, размер которых превышает 6.4KB, но еще «влезающих» в игольное ушко L1-кэш. С первым все понятно: он, как и в случае с тестом чтения, близок к учетверенному для одного ядра значению 120 GBPS. Почему с записью данных в L1 снова «провал»? Об этом можно только догадываться.
Вероятно, инженеры Intel, проектируя эконом-вариант процессора, сместили акцент кэширования данных с L1 на L2. Кэширование инструкций на первом уровне по-прежнему остается эффективным, и с этим у Atom x5-Z8350 все в порядке. В условиях дефицита ресурсов процессор скупится бесшабашно расходовать статическую память для обслуживания потоков данных, более полагаясь на возможности второго кэш-уровня.
Здесь приходит на ум общепринятый подход по формированию профиля нагрузок для обработки транзакций в реальном времени. Общепринятым стандартом считается соотношение чтения к записи в пропорции 70% к 30%. Приблизительно так и соотносится объем, выделенный для «быстрой» записи, к оставшемуся месту в кэш-памяти L1. Можно ли на основании этого предполагать, что Intel нацеливает процессоры Atom в частности на обработку потоковой информации, например, медиаконтента?
Очевидно же, что сдержанность процессора в кэшировании записи приносит пользу в том случае, если к только что записанной информации не будет повторного доступа: кэширование «ненужных» данных засоряет память, вытесняя из нее «нужные» данные. Запись в память, выполняемая при распаковке медиаконтента, на первый взгляд, является операцией, кэшировать которую не выгодно. Обращение к ранее записанным данным при отказе от кэширования, напротив, проиграет.
Кэш-память второго уровня, общим объемом 2 Мегабайта, разделена на две равные части по 1 MB, каждая из которых обслуживает группу из двух ядер. Это означает, что в многопоточном тесте на каждое ядро приходится 512 килобайт кэш-памяти L2 в отличие от 1 Мегабайта в однопоточном. Следовательно, на графике зависимости скорости обработки блока от его размера, точку перегиба следует ожидать в окрестности X=512 KB, а не X=1024 KB, как это имело место в однопоточном тесте (см. «Biostar Racing P1: холодный выхлоп»). Рассмотренные топологические особенности кэш-памяти L2 также оказывают влияние на масштабирование скорости доступа к ней.
Рис 4. График зависимости скорости чтения блока данных от его размера для одновременно работающих 4 процессорных ядер; окрестность X = размер L2
Производительность L2 характеризует участок графика, удовлетворяющий двойному неравенству 24 KB < X < 512 KB, что соответствует блоку данных, который уже не помещается в L1, но еще помещается в L2.
Рис 5. График зависимости скорости записи блока данных от его размера для одновременно работающих 4 процессорных ядер; окрестность X = размер L2
Напомним, скорость чтения L2 в однопоточном тесте составляет около 11.5 GBPS. Результат масштабирования — около 39 GBPS. Очень неплохо! Скорость записи L2 в однопоточном тесте составляет около 12 GBPS. Результат масштабирования — около 31 GBPS.
Можно констатировать неплохой уровень многопоточной производительности исследуемой платформы. Архитектура процессора Intel Atom x5-Z8350, определяющая приватную кэш-память L1 и частично-разделяемую L2, ожидаемо отразилась на результатах бенчмарок.
Рис 6. Мониторинг загрузки процессора средствами ОС Windows 10: момент увеличения загрузки ядер до 100 процентов соответствует моменту запуска теста
При запуске многопоточного теста, загрузка каждого из четырех ядер процессора возрастает до 100 процентов. А что при этом происходит с температурами и потребляемой мощностью?
Рис 7. Мониторинг температуры и потребляемой мощности средствами утилиты AIDA64
Результат получен с помощью популярной информационно-диагностической утилиты AIDA64 по прошествии примерно 20 минут после запуска многопоточного теста NCRB.
Пытаясь повторить выше описанные опыты на своем компьютере, необходимо выполнить резервное копирование данных, убедиться в эффективности системы охлаждения процессора, надежности блока питания и импульсного регулятора Vcore. Стресс-тест может повредить разогнанную или нестабильную систему.А лучше всего экспериментировать на казенном оборудовании.
Тем не менее, этот «уже не стик, но еще и не ноутбук» своего потребителя всё же найдет. Залог тому – четыре ядра простенького, казалось бы, CPU. Стоит возлагать на них надежды?
В предыдущей статье мы анализировали результаты тестов кэш-памяти выполненные в одном потоке, что дает представление об «изолированной» производительность отдельно взятого ядра. Какой будет интегральная оценка многоядерного процессора? Итак, устанавливаем чекбокс Use parallel operations в утилите NCRB и выполняем аналогичную серию измерений.
![](https://habrastorage.org/getpro/habr/post_images/549/5a0/583/5495a058356091100a62c05907e6b3c3.png)
Многопоточный тест L1-кэш
В процессоре Intel Atom x5-Z8350 кэш-память первого уровня является приватным ресурсом каждого из четырех ядер. Это означает, что при обработке блока данных, размер которого меньше размера L1 (в нашем примере это 24 килобайта), каждое из ядер использует собственную кэш-память, конкуренция при доступе практически отсутствует, значит, мы вправе ожидать кратного прироста производительности в соответствии с количеством ядер. Расхожая фраза «а вот и не подеретесь» достаточно точно характеризует данный измерительный сценарий.
![](https://habrastorage.org/getpro/habr/post_images/5f6/6ab/cf4/5f66abcf4818698af1099ba24a521528.png)
Контраргументами могут стать такие факторы, как уменьшение верхнего лимита динамического оверклокинга при реализации заданного сценария энергопотребления и термального режима, а также ограничение процессорного времени, выделяемого операционной системой приложению в рамках многозадачной среды.
Напомним, пиковая производительность в однопоточном тесте (см. «Biostar Racing P1: холодный выхлоп») составляла чуть более 30 GBPS. Задействовав 4 ядра, получаем результат около 107 GBPS, который довольно близок к теоретическому значению 120 GBPS.
![](https://habrastorage.org/getpro/habr/post_images/dee/e1c/e9b/deee1ce9b7431e8bb4c00bbb216bc07a.png)
При исследовании L1 важен левый участок графика, соответствующий блоку размером до 24KB. Здесь мы видим две фракции производительности: быстрый участок на малоразмерных транзакциях (более 105 GBPS), и медленный участок для данных, размер которых превышает 6.4KB, но еще «влезающих» в игольное ушко L1-кэш. С первым все понятно: он, как и в случае с тестом чтения, близок к учетверенному для одного ядра значению 120 GBPS. Почему с записью данных в L1 снова «провал»? Об этом можно только догадываться.
Вероятно, инженеры Intel, проектируя эконом-вариант процессора, сместили акцент кэширования данных с L1 на L2. Кэширование инструкций на первом уровне по-прежнему остается эффективным, и с этим у Atom x5-Z8350 все в порядке. В условиях дефицита ресурсов процессор скупится бесшабашно расходовать статическую память для обслуживания потоков данных, более полагаясь на возможности второго кэш-уровня.
Здесь приходит на ум общепринятый подход по формированию профиля нагрузок для обработки транзакций в реальном времени. Общепринятым стандартом считается соотношение чтения к записи в пропорции 70% к 30%. Приблизительно так и соотносится объем, выделенный для «быстрой» записи, к оставшемуся месту в кэш-памяти L1. Можно ли на основании этого предполагать, что Intel нацеливает процессоры Atom в частности на обработку потоковой информации, например, медиаконтента?
Очевидно же, что сдержанность процессора в кэшировании записи приносит пользу в том случае, если к только что записанной информации не будет повторного доступа: кэширование «ненужных» данных засоряет память, вытесняя из нее «нужные» данные. Запись в память, выполняемая при распаковке медиаконтента, на первый взгляд, является операцией, кэшировать которую не выгодно. Обращение к ранее записанным данным при отказе от кэширования, напротив, проиграет.
Многопоточный тест L2-кэш
Кэш-память второго уровня, общим объемом 2 Мегабайта, разделена на две равные части по 1 MB, каждая из которых обслуживает группу из двух ядер. Это означает, что в многопоточном тесте на каждое ядро приходится 512 килобайт кэш-памяти L2 в отличие от 1 Мегабайта в однопоточном. Следовательно, на графике зависимости скорости обработки блока от его размера, точку перегиба следует ожидать в окрестности X=512 KB, а не X=1024 KB, как это имело место в однопоточном тесте (см. «Biostar Racing P1: холодный выхлоп»). Рассмотренные топологические особенности кэш-памяти L2 также оказывают влияние на масштабирование скорости доступа к ней.
![](https://habrastorage.org/getpro/habr/post_images/32d/0bf/667/32d0bf667955936d72c8ae602efe135a.png)
Производительность L2 характеризует участок графика, удовлетворяющий двойному неравенству 24 KB < X < 512 KB, что соответствует блоку данных, который уже не помещается в L1, но еще помещается в L2.
![](https://habrastorage.org/getpro/habr/post_images/f48/4ad/53b/f484ad53b5b1b50ad83a3223ede29042.png)
Напомним, скорость чтения L2 в однопоточном тесте составляет около 11.5 GBPS. Результат масштабирования — около 39 GBPS. Очень неплохо! Скорость записи L2 в однопоточном тесте составляет около 12 GBPS. Результат масштабирования — около 31 GBPS.
Вместо резюме
Можно констатировать неплохой уровень многопоточной производительности исследуемой платформы. Архитектура процессора Intel Atom x5-Z8350, определяющая приватную кэш-память L1 и частично-разделяемую L2, ожидаемо отразилась на результатах бенчмарок.
![](https://habrastorage.org/getpro/habr/post_images/cd6/1cb/486/cd61cb486a2bed7ec62ec9376bc48217.png)
При запуске многопоточного теста, загрузка каждого из четырех ядер процессора возрастает до 100 процентов. А что при этом происходит с температурами и потребляемой мощностью?
![](https://habrastorage.org/getpro/habr/post_images/f8a/20c/d00/f8a20cd00400d40452410df5dd944fc3.png)
Результат получен с помощью популярной информационно-диагностической утилиты AIDA64 по прошествии примерно 20 минут после запуска многопоточного теста NCRB.
Важное предостережение
Пытаясь повторить выше описанные опыты на своем компьютере, необходимо выполнить резервное копирование данных, убедиться в эффективности системы охлаждения процессора, надежности блока питания и импульсного регулятора Vcore. Стресс-тест может повредить разогнанную или нестабильную систему.