Главная » Хабрахабр » Biostar Racing P1: холодный выхлоп

Biostar Racing P1: холодный выхлоп

Знакомясь с аналогичным устройством от Biostar, ожидания были не самые оптимистические. Не мы первые заметили, что компактные компьютеры типа Intel Compute Stick недостаточно хороши в плане производительности. Впрочем, выбранный компанией Biostar чип x5-Z8350 пусть на одну ступеньку, но продуктивнее своего младшего собрата. Как и младшие модели стик-компьютеров, Racing P1 работает на одном из самых сла­бень­ких процессоров семейства Atom Z8000. Попробуем оценить про­из­во­ди­тель­ность данной платформы, которая стараниями Biostar уже не стик, но, правда, еще и не ноутбук.

Рис 1. Разъемы USB 3.0/2.0, слот для SD-карты, контакты подсветки, гнездо для наушников и кнопка включения поместились на лицевой панели

Используемые инструменты — банчмарк NCRB (NUMA CPU and RAM Benchmarks) для Win64 и кроссплатформенная утилита для идентификации процессора JavaCPUID.

Процессор

Его штатная частота равна 1. Инструкция CPUID подтверждает, что на платформе Biostar Racing P1 установлен процессор Intel Atom x5-Z8350. Даже при непродолжительном знакомстве с этой платформой очевиден па­ра­докс: ее работа в диапазоне от 1,44 до 1,92 — скорее правило, чем исключение из него. 44 ГГц, что, однако, не мешает ему при необходимости законно разгоняться до 1,92 ГГц.

Рис 2. Заводские характеристики процессора Intel Atom x5-Z8350

Рамки SDP (Scenario Dissipated Power) определяют типичное энергопотребление устройства. Принятие решения процессором x5-Z8350 о выборе минимальной или штатной тактовой частоты и запуске режима Turbo выполняется на основании анализа нагрузки и рабочей температуры. Возможность включить режим Turbo является функцией температуры, поэтому результаты летних и зимних тестов могут отличаться. Механизмы уп­рав­ле­ния самостоятельно оценивают ситуацию, и в случае «легкой» нагрузки снижают энергопотребление чипа. В общем, Racing P1 тоже «переобувается» к сезону.

Крейсерский режим Racing P1 уменьшает это значение приблизительно вполовину, режим сна требует чуть более 2 Вт от сети переменного тока (мониторинг потребления выполнялся обычным бытовым ваттметром). Выходя за рамки исследования отметим, что форсаж приводит к потреблению до 7 Ватт на силовых линиях ~220 В.

Рис 3. CPUID о функциональных возможностях Intel Atom x5-Z8350

Современные функциональные расширения AVX 256/512 не поддерживаются. Intel Atom x5-Z8350 работает с данными, максимальная разрядность которых составляет 128 бит. Это значит, что нашим измерительным инструментом будет набор векторных инструкций SSE 128, а объектом измерений — кэш-память и динамическое ОЗУ.

Рис 4. Окно системной информации и выбора режима тестирования утилиты NCRB: меню слева отображает наборы инструкций, включая функциональные расширения, поддерживаемые процессором

Так, ряд процессоров AMD в конструктиве до AM2 вклю­чи­тель­но обрабатывают две 64-битных загрузки классическими инструкциями MOV быстрее, чем одну 128-бит­ную SSE-загрузку инструкцией MOVAPD. Здесь уместно важное отступление: в общем случае максимальная разрядность операндов не оз­на­ча­ет максимальную производительность. Вспомнив об этом, мы до начала измерений экс­пе­ри­мен­таль­но убедились — использование SSE для Atom x5-Z8350 действительно является наиболее про­из­во­ди­тель­ным сценарием.

Кэш-память L1

На первом уровне производитель старается равномерно распределить ее между инструкциями и данными. Обычно, объем кэш-памяти — величина, кратная степени двойки. У каждого из четырех его ядер 32 килобайта кэш-па­мя­ти для инструкций и 24 килобайта — для данных. Все эти каноны не со­блю­да­ют­ся архитектурой процессора x5-Z8350.

Рис 5. Классификация уровней кэш-памяти

Официальная страничка по традиции умалчивает о кэш-памяти L1, во всяком случае, на момент написания этой статьи. В ряде источников приводится произведение размера кэш-памяти одного ядра на их количество, что дает более впечатляющее представление: 128KB кэш инструкций и 96KB кэш данных.

Проверка ее наличия и анализ функционирования достойны отдельной публикации. Отметим, кэш-память нулевого уровня (подобная L1 Trace Cache), хранящая декодированные команды и повышающая эффективность коротких циклов, не декларируется инструкцией CPUID.

Теории и практика: производительность кэш-памяти

Фактически, выбор целевого объекта (L1, L2 cache или DRAM) оп­ре­де­ля­ет­ся размером обрабатываемого блока данных. Измерение скорости кэш-памяти состоит в циклических операциях чтения или записи блока, размер которого меньше размера исследуемого уровня кэш, а потому операции доступа к данным являются кэш-попаданиями (cache hits).

В нашем эксперименте используется развернутый цикл из шестнадцати SSE2-инструкций MOVAPD, каждая из которых передает 128-битный операнд между памятью и одним из XMM-регистров. Задав тестируемую сущность, переходим к рассмотрению операции на уровне машинных команд. В итоге за одну итерацию цикла полностью загружаются 16 регистров XMM0…XMM15.

Максимальную производительность обес­пе­чи­ва­ет обязательное для инструкции MOVAPD требование выравнивания: адрес операнда должен быть кратным 16 байтам (128 битам). Для полноты изложения заметим, что инструкция MOVAPD может использоваться и для передачи данных между двумя XMM-регистрами, но в нашем случае регистровые операции не дадут пред­став­ле­ние о производительности объектов памяти.

Бенчмарки кэш-памяти L1

Как только блок выходит за пределы L1 — возникают кэш-промахи и скорость падает. Пока читаемый или записываемый блок меньше размера кэш-памяти L1 (на графике это ось X), скорость обмена высокая. Очевидно, что при оценке производительности, информативной является «верхняя ступенька», соответствующая левому участку графика.

Рис 6. График зависимости скорости чтения блока данных от его размера;
окрестность X = Размер L1

Максимальная скорость в мегабайтах в секунду (MBPS) соответствует минимальному количеству тактов на инструкцию (CPI, Clocks Per Instruction) и составляет около 30 GBPS.

Рис 7. График зависимости скорости записи блока данных от его размера;
окрестность X = Размер L1

Для записи, примененную в данном процессоре политику кэширования характеризует «раннее падение» скорости, что станет темой отдельного исследования. Как видно из графиков, точка перегиба для чтения L1 соответствует теоретической величине в 24 килобайта. Но уже сейчас можно отметить — эта политика не способствует рекордным показателям скорости записи, хотя в ряде случаев, возможно, и позволяет избежать засорения L1 ненужными данными.

Ряд тестов, в частности AIDA64, показывают суммарную производительность всех ядер. В полученных результатах отображается скорость, развиваемая одним ядром процессора Atom x5-Z8350.

Для ис­сле­ду­е­мо­го CPU тактовая частота в режиме Turbo составляет 1920 МГц. Проведем небольшой теоретический расчет, смоделировав пиковую пропускную способность. За один такт передается 128 бит или 16 байт:

  • 1920 * 16 = 30720 (около 30 Гигабайт в секунду)

Поскольку ядро процессора и TSC в общем случае тактируются асинхронно, значения тактов TSC на инструкцию являются дробными величинами. В качестве источника образцовых интервалов времени используется счетчик TSC (Time Stamp Counter).

Один такт форсированной частоты ядра 1920 МГц составляет примерно 0,521 наносекунды. Убедимся, что процессор работает в режиме Turbo, опираясь на значения частот, указанные в до­ку­мен­та­ции. Для инструкций, выполняемых за один такт, теоретическое значение количества тактов TSC на инструкцию (CPI) должно составлять
Один такт номинальной частоты 1440 МГц, на которой работает регистр Time Stamp Counter составляет примерно 0,694 наносекунды.

  • 0,521 / 0,694 = 0,750

Отображаемые измеренные значения Minimum CPI в пределах 0,759…0,767 достаточно близки к этому значению.

Кэш-память L2

Общий размер кэш-памяти L2 составляет 2 МБ и поровну разделен между ними. Четыре ядра исследуемого процессора разделены на две группы, по два ядра в каждой. Вывод очевиден: каждому ядру до­сту­пен 1 мегабайт кэш-памяти L2, доступ к которому делится с соседом по группе.

Бенчмарки кэш-памяти L2

Скорость L2-кэш — это центральная «ступенька», возникающая при соблюдении двойного неравенства 24 КБ < X < 1 МБ, — когда обрабатываемый блок данных уже не помещается в L1, но еще помещается в L2.

Рис 8. График зависимости скорости чтения блока данных от его размера;
окрестность X = Размер L2

Возможность «одолжить» кэш у соседней группы, передвинув момент спада ско­рос­ти к точ­ке 2 МБ, не обнаружена. Как видно из графиков, снижение скорости, обусловленное исчерпанием L2, происходит при пре­вы­ше­нии лимита в 1 МБ.

Рис 9. График зависимости скорости записи блока данных от его размера;
окрестность X = Размер L2

Теоретические предпосылки такого результата рассмотрим в следующей публикации. Оценка производительности L2-кэш по записи близка к показателям чтения: 12 против 11,5 GBPS.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Из песочницы] Разбор Memory Forensics с OtterCTF и знакомство с фреймворком Volatility

Привет, Хабр! Именно ее я хочу разобрать в этом посте, всем кому интересно — добро пожаловать под кат. Недавно закончился OtterCTF (для интересующихся — ссылка на ctftime), который в этом году меня, как человека, достаточно плотно связанного с железом откровенно ...

Манекен на турбореактивно-электрическом коптере-гибриде

Очередное свидетельство, что 2019 год будет годом хайпа турбореактивных штуковин. Американский стартап ElectraFly и вояки в 2019 на ракетном полигоне в Юте планируют испытания индивидуального квадрокоптера с турбореактивным двигателем. При наборе высоты турбореактивный движок будет помогать винтам, а потом давать ...