Наступает эпоха ARM-серверов?


    Материнcкая плата SynQuacer E-Series для 24-ядерного ARM-сервера на процессоре ARM Cortex A53 с 32 ГБ оперативной памяти, декабрь 2018 года

    Много лет процессоры ARM с сокращённым набором команд (RISC) доминируют на рынке мобильных устройств. Но им так и не удалось пробиться в дата-центры, где по-прежнему властвуют Intel и AMD с набором инструкций x86. Периодически появляются отдельные экзотические решения, такие как 24-ядерный ARM-сервер на платформе Banana Pi, но серьёзных предложений пока нет. Точнее, не было до этой недели.

    На этой неделе AWS запустила в облаке собственные 64-ядерные ARM-процессоры Graviton2 — это система-на-кристалле с ядром ARM Neoverse N1. Компания утверждает, что Graviton2 намного быстрее, чем ARM-процессоры предыдущего поколения в инстансах EC2 A1, а вот и первые независимые тесты.

    Инфраструктурный бизнес — это сравнение цифр. По сути, клиентам дата-центра или облачного сервиса не важно, какая архитектура у процессоров. Их волнует соотношение цены и производительности. Если работа на ARM дешевле, чем на x86, то их и выберут.

    До последнего времени нельзя было однозначно сказать о том, что вычисления на ARM будут выгоднее, чем на x86. Например, серверный 24-ядерный ARM Cortex A53 — это модель SocioNext SC2A11 стоимостью около $1000, которая могла поднять веб-сервер на Ubuntu, но по производительности сильно уступала процессором x86.

    Однако потрясающая энергоэффективность процессоров ARM заставляет снова и снова присматриваться к ним. Например, SocioNext SC2A11 потребляет всего 5 Вт. А ведь на электроэнергию приходится почти 20% затрат дата-центра. Если эти чипы покажут пристойную производительность, тогда у x86 не останется шансов.

    Первое пришествие ARM: инстансы EC2 A1


    В конце 2018 года AWS представила инстансы EC2 А1 на собственных ARM-процессорах. Определённо, это было сигналом для индустрии о потенциальных изменениях на рынке, но результаты бенчмарков оказались неутешительными.

    В таблице ниже показаны результаты стресс-тестирования инстансов EC2 A1 (ARM) и EC2 M5d.metal (x86). Для тестирования использовалась утилита stress-ng:

    stress-ng --metrics-brief --cache 16 --icache 16 --matrix 16 --cpu 16 --memcpy 16 --qsort 16 --dentry 16 --timer 16 -t 1m

    Как видим, A1 проявили себя хуже во всех тестах, кроме кэша. По большинству других показателей ARM уступали очень сильно. Эта разница в производительности больше, чем разница в цене 46% между А1 и M5. Другими словами, инстансы на процессорах x86 по-прежнему оставались выгоднее по соотношению цена/производительность:
    Test EC2 A1 EC2 M5d.metal Разница
    cache 1280 311 311,58%
    icache 18209 34368 -47,02%
    matrix 77932 252190 -69,10%
    cpu 9336 24077 -61,22%
    memcpy 21085 111877 -81,15%
    qsort 522 728 -28,30%
    dentry 1389634 2770985 -49.85%
    timer 4970125 15367075 -67,66%

    Конечно, микробенчмарки не всегда показывают объективную картину. Важна разница в реальной производительности приложения. Но и здесь картина оказалась не лучше. Коллеги из Scylla сравнили инстансы a1.metal и m5.4xlarge с одинаковым количеством процессоров. В стандартном тесте на чтение базы данных NoSQL в конфигурации с одним узлом первая показала 102 000 операций чтения в секунду, а вторая 610 000. В обоих случаях все доступные процессоры используются на 100%. Это соответствует снижению производительности примерно в шесть раз, что не компенсируется более низкой ценой.

    Кроме того, инстансы A1 работают только на EBS без поддержки быстрых устройств NVMe, как в других инстансах.

    В общем, A1 стал шагом в новом направлении, но не оправдал надежд на ARM.

    Второе пришествие ARM: инстансы EC2 M6




    Всё изменилось на этой неделе, когда AWS представила новый класс ARM-серверов, а также ряд инстансов на новых процессорах Graviton2, в том числе M6g и M6gd.

    Сравнение этих инстансов показывает уже совершенно другую картину. В некоторых тестах ARM проявляет себя лучше, а иногда намного лучше, чем x86.

    Вот результаты выполнения той же команды стресс-тестирования:
    Test EC2 M6g EC2 M5d.metal Разница
    cache 218 311 -29,90%
    icache 45887 34368 33,52%
    matrix 453982 252190 80,02%
    cpu 14694 24077 -38,97%
    memcpy 134711 111877 20,53%
    qsort 943 728 29,53%
    dentry 3088242 2770985 11,45%
    timer 55515663 15367075 261,26%

    Это уже совершенно другое дело: M6g в пять раз быстрее A1 при выполнении операций чтения из базы данных Scylla NoSQL, а в новых инстансах M6gd работают быстрые накопители NVMe.

    Наступление ARM по всем фронтам


    Процессор AWS Graviton2 — лишь один пример использования ARM в дата-центрах. Но сигналы поступают с разных сторон. Например, 15 ноября 2019 года американский стартап Nuvia привлёк $53 млн венчурного финансирования.

    Стартап основали три ведущих инженера, которые занимались созданием процессоров в Apple и Google. Они обещают разработать процессоры для дата-центров, которые составят конкуренцию Intel и AMD.

    По имеющейся информации, Nuvia спроектировала с нуля процессорное ядро, которое может быть построено «поверх» архитектуры ARM, но без получения лицензии ARM.

    Всё это указывает на то, что ARM-процессоры готовы покорить серверный рынок. В конце концов, мы живём в эпоху пост-ПК. Годовые поставки x86 упали почти на 10% с пикового 2011 года, в то время как чипы RISC взлетели до 20 миллиардов. Сегодня 99% 32- и 64-разрядных процессоров в мире — это RISC.

    Лауреаты премии Тьюринга Джон Хеннесси и Дэвид Паттерсон в феврале 2019 года опубликовали статью «Новый золотой век для компьютерной архитектуры». Вот что они пишут:
    Рынок урегулировал спор RISC и CISC. Хотя CISC выиграл более поздние этапы эпохи ПК, но RISC выигрывает сейчас, когда наступила эпоха пост-ПК. Новых ISA на CISC не создавалось в течение десятилетий. К нашему удивлению, общее мнение по лучшим принципам ISA для процессоров общего назначения сегодня по-прежнему склоняется в пользу RISC, спустя 35 лет после его изобретения… В экосистемах с открытым исходным кодом искусно разработанные чипы убедительно продемонстрируют достижения и тем самым ускорят коммерческое внедрение. Философией процессоров общего назначения в этих чипах, скорее всего, будет RISC, который выдержал испытание временем. Ожидайте таких же стремительных инноваций, как и во время прошлого золотого века, но на этот раз с точки зрения стоимости, энергии и безопасности, а не только производительности.

    «В следующем десятилетии произойдет кембрийский взрыв новых компьютерных архитектур, означающий захватывающие времена для компьютерных архитекторов в академических кругах и в индустрии», — такой вывод делают они в завершении статьи.
    Дата-центр «Миран»
    521,37
    Решения для аренды и размещения ИТ-инфраструктуры
    Поделиться публикацией

    Комментарии 49

      0
      Сейчас внутри почти всех CISC находятся ядра RISC, по сути борьба идет за то чтобы выкинуть прослойку преобразования x86 CISC в RISC, что должно дать выигрыш.
        +2
        Не из-за этой прослойки x86 потребляет в разы больше электричества. Там много чего другого есть. Один предсказатель ветвлений чего стоит.
          +6
          Можно подумать арму предсказатель ветвлений не нужен. Да и потребление декодера в легендах сильно преувеличено, термокарты процессоров есть в открытом доступе.
        0

        а кто управлять будет RISC ядрами?

          +4
          Классический RISC сейчас только в MIPS да в RISC-V. ARM сейчас это больше CISC с элементами RISC, не более. В RISC нет инструкций переменной длины, инструкций, которые читают/записывают несколько регистров (push/pop), загрузка/сохранение с автоматическим приращением, арифметика/логика со сдвигами. Зато это всё есть в ARM.
            –1

            По вашему определению и PDP11 получается CISC. Это так?

              +5
              PDP-11 всегда был CISC.
                0
                То что у PDP-11 ортогональная система команд, инструкции фиксированной длины, только регистровые операции и минимальный набор инструкций — делает его похожим на RISC. Но в то время ещё не было определения RISC, когда PDP-11 только вышел в продажу.
                  0
                  > только регистровые операции

                  По-моему, вы с прямым углом перепутали.
                  PDP-11 это где возможны операции типа ADD @6(R2), @-(R3).
                  Не может быть «похожим на RISC» процессор, у которого есть косвенный автодекрементный режим адресации (номер 5), косвенный индексный (номер 7) и т.п. — каждая такая особенность добавляет дополнительные сложности в декодер и такты в исполнение. И даже операции чтения-модификации-записи ячейки в памяти без прочих косвенных эффектов это уже уход от RISC.
                  «Похожий на RISC» это, например, базовые арифметические операции S/360, где второй источник ещё может быть в памяти, но первый источник и приёмник — только в регистре.
                  Ортогональность системы команд это как раз аргумент больше против RISC, чем за. RISC это простота одной команды, а не набора в целом.
                +1
                Если вы про соответствие логике классической линии RISC, где все команды исполняются за фиксированное количество тактов, то да, современные RISC все вылазят за неё. И дело не только в перечисленных вами вещах: классический RISC даже не мог содержать операций с плавающей точкой или целочисленного деления — они все выносились в сопроцессоры или строились циклами с поддержкой этих действий. (Не рассматриваем, конечно, вариант занизить тактовую частоту так, чтобы АЛУ мог выполнять такое за 1 такт — это невыгодно для всего остального.)
                Но с большей частью остального вы перегибаете.
                В современном мире с его требованием out-of-order нет смысла требовать соответствия пятитактной схеме Berkeley/MIPS или её аналогу, зато появляется возможность делать более длинные и сложные действия, где они нужны (как с плавучкой).
                Со сдвигами — нет никакой проблемы в операции типа a=b+(c shl d), если d — константа; это всего лишь несколько дополнительных вентилей на barrel shifterʼе. Но даже если это не константа, то это всего лишь участие 4 регистров вместо 3 в списках зависимостей.
                То же и с каким-нибудь LDP, STP, с автоинкрементом/автодекрементом.
                Зато нет команд типа MOVES (x86), EDMK (S/360)…
                ARM — RISC с элементами CISC, да. Но не наоборот, он продолжает сохранять простоту для управляющего устройства.
                  +1
                  В RISC нет инструкций переменной длины, инструкций, которые читают/записывают несколько регистров (push/pop)

                  Только вот в AArch64 ничего этого нет =)
                  Разве что ldp для загрузки регистровых пар.

                  загрузка/сохранение с автоматическим приращением

                  POWER

                  арифметика/логика со сдвигами

                  Itanium (shladd)
                +2
                RISC растёт большей частью за счет мобильных устройств. Точно такой же бурный рост CISC был в 2000-х. Сейчас такой рост не нужен, т.к. ОС неплохо работает на компах 5-8 летней давности. Мобилы восьмилетней давности были унылым говном, по сравнению с современными. Через несколько лет рынок насытится, и рост RISC тоже замедлится.
                  +1

                  Рынок сильно сдвигается в сторону IoT сейчас, в системах безопасности, умных домах, IP камерах, итд — везде будут энергоэффективные и шустрые RISC (скорее всего ARM) процессоры, так что до пика рынка еще имхо далеко. Требования к CPU только растут из-за новых возможностей и обязательности шифрования для каждого девайса. Количество АРМов на квадратный метр дома только растёт, и рядом пара одиноких x86 в ноуте и компе.

                    +1
                    IoT это все малопотребляющее и маломощное. Абсолютно другая ниша. В статье речь про сервера…
                      0

                      IoT тоже разные бывают и на месте не стоят, о том и речь была, что например в продвинутых IP камерах уже достаточно мощные процессоры, сжимают несколько потоков h265 на лету в разном разрешении, следят сами за зонами движения, сами отслеживают движущиеся объекты, скоро еще научат их распознавать образы и тд. Там для дополнительной мощности при малом потреблении применений море.

                        0
                        Уже научились и распознавать образы, и траекторию движения, и давать оценку — что делал объект и стоит ли давать аларм по данному поводу. Умные камеры Bosch например, и питаются по PoE. Правда стоят как самолет.
                  +1

                  Интересно, почему xeon phi стал мертвой веткой эволюции? Идея вставить 8 pcie карт в один сервер, и получить 480 полноценных x86 ядер (пусть и частично ограниченных в скорости операций с RAM и IO) и под 2000 потоков в 2011 году на первый взгляд кажется весьма заманчивой. Сразу возникает много идей, как это использовать, начиная от гипервизора, который тащит на себе 2000 сайтов-визиток и захудалых интернет магазинов на 100 покопателей в день в одной коробке, и заканчивая аналитическими СУБД, делающими в 2000 потоков аггрегации (что актуально для колоночных баз).

                    +5
                    Для того, чтобы потянуть 2000 сайтов-визиток на 200 тысяч юзеров суммарно, в общем-то, и не надо 480 полноценных х86 ядер. С этим и четыре полноценных ядра вполне себе справятся. Это надо для дата-майнинга, но рынок пока что невелик.
                      0
                      … а для дата-майнинга нужны RAM и IO. Back to square one.
                      0
                      Xeon Phi в первую очередь предназначен для параллельных вычислений (собственно, изначально он и разрабатывался как видеокарта). Для серверов от него толку мало.
                        +1

                        Прочитайте как общая шина памяти убивает производительность уже при 32х ядрах и сразу всё встанет на свои места. Потом смотреть в сторону NUMA архитектур и тд. Память и так очень часто уже узкое место, а для 480 ядер это убийство самой идеи. Имхо, гораздо более интересной была идея от SeaMicro, но тоже не взлетело.

                        +2
                        Ой, этой новости уже лет 15, если не 20. Все наступает, да не наступит никак.

                        ARM — это в первую очередь экономичность, а уже потом — производительность. А серверам чаще всего нужно ровно наоборот. Плюс для совсем тяжелых вычислений у x86 в рукаве есть козырь в виде GPGPU, с которым у альтернативных платформ все пока довольно грустно.
                          +1
                          Ой, этой новости уже лет 15, если не 20. Все наступает, да не наступит никак.

                          Врядли 15 лет назад можно было ARM брать в аренду и разворачивать там сервера.

                          ARM — это в первую очередь экономичность, а уже потом — производительность.

                          Это определяется исключительно дизайном конкретной модели, у интела есть процессоры также соответствующие этому определению.
                            0
                            Врядли 15 лет назад можно было ARM брать в аренду и разворачивать там сервера.

                            Их и сейчас на первом попавшемся хостинге не взять. Некоторые, ориентированные на специфическую аудиторию, за неадекватные производительности деньги.

                            Это определяется исключительно дизайном конкретной модели, у интела есть процессоры также соответствующие этому определению.

                            У арма вся цель существования заключена в этом, в отличие от интела.
                              +1
                              У арма вся цель существования заключена в этом, в отличие от интела.

                              Конкретно эти процессоры — нет.
                            0
                            x86 в рукаве есть козырь в виде GPGPU

                            50/50. Потому что есть ARM со специализированными блоками, ARM с FPGA, ARM с CUDA ядрами.

                              0
                              Все, перечисленное вами, — экзотика, а x86 с видеокартой — повседневная обыденность.
                                +1

                                Какая же эта экзотика, когда Huawei, Qualcomm, Apple представила процессоры с NPU блоками. А в Switch ARM с CUDA от NVidia.

                                  +1
                                  Массовому выпоску платформы Nvidia Tegra (начиная с Tegra 2) уже больше 10 лет.
                                  Успешных устройств кроме switch — 0. Неттопы--слив, планшеты слив и проч.
                                    0

                                    NVidia Shield

                                      0
                                      это которая из консоли переродилась в android tv то, от большого winа на области консолей?
                                      Данных по продажам чисто android tv версий shield я не нашел, когда будут можно будет обсудить
                                        0

                                        Она всегда была android tv продающая сервисы nvidia.В этом году линейка получила обновление. А еще так же пытается зайти на рынок серверов Arm Servers ThunderX2

                                          0
                                          Сорян перепутал с ShieldPad и Shield Portable т.к. именно их рекламу видел в 2013
                                0
                                «Я не скажу за всю Одессу», но в Raspberry Pi (ведущих родословную от ТВ/видео декодеров) или NVIDIA Jetson/Xavier — это скорее мощные DSP к которым сбоку приделан ARM исключительно для задач управления/UI. Скорость обмена между ARM и DSP там практически никакая, как и производительность самого ARM. У NVIDIA, правда, можно выбирать профиль мощности — но тогда нужно забыть о мобильности и пассивном охлаждении.
                                +1
                                для совсем тяжелых вычислений у x86 в рукаве есть козырь в виде GPGPU, с которым у альтернативных платформ все пока довольно грустно

                                Да щас.
                                CUDA, TensorFlow, и NGC прекрасно работают на NVidia Jetson, кои суть есть ARM. И если мне не изменяет — там есть PCI-E, куда можно воткнуть видеокарту. Вот вам и GPGPU.
                                В пределе от ARM-ядра требуется только просасывать сеть и координировать выполнение полезной нагрузки на GPU, т.е. по сути нужна компактная плата с двумя разъемами — GbE и PCI-E для сетевизации и скейлинга видеокарт.
                                А старшие NVidia афаик умеют подобный цирк без участия центральных процессоров.
                                  0
                                  Наличие PCI-E — это еще не залог доступности в GPGPU. Без нормальных открытых драйверов ловить нечего, а их (нормальных открытых драйверов) банально нет. Фирменные блобы, насколько я знаю, только под x86[-64], альтернативные архитектуры сосут лапу.
                                  0
                                  Все перечисленное вами действительно работает на Jetson/Xavier — только ARM там используется только для загрузки кода в отдельный проприетарный видеопроцессор. Если вы попробуете запустить тот же TF на ARMе — вашему разочарованию не будет предела, даже при настройках 100% мощности. А если вставить в конвейер DeepStream не-GPU компонент (чтобы данные гонялись туда-сюда) — все станет совсем печально…
                                    0
                                    Если вы попробуете запустить тот же TF на ARMе — вашему разочарованию не будет предела

                                    YOLOv3 на базе TF с удивлением смотрит на этот комментарий.
                                    А так — в общем, TF на видюхах и гоняют.
                                      0
                                      Я нигде не писал что TF не работает на ARM, встроенном в Jetson. Разумеется, работает — его разве что на тостеры еще не портировали…
                                      Речь идет о производительности — ведь даже Jetson Nano может принимать видео одновременно с 4х камер CSI-2. Но если вы попытаетесь это видео прогнать через YOLO или другую сравнимую сеть на ARM — c FPS будет совсем печально. Именно поэтому Nvidia рекомендует конвертировать сети в TensorRT и встраивать их в конвейер DeepStream так чтобы данные не покидали GPU.
                                        0
                                        Ну, это в случае, если вы работаете с реалтайм захватом видео.
                                        В моей практике нейровычисления — это как правило batch operation над картинками.
                                          0
                                          Я почитал тред выше — такое впечатление, что вы путаете Jetson с чем-то другим от Nvidia. Потому что Jetson — это семейство решений для встраиваемых систем, с довольно медленными внешними коммуникациями. Даже у старших моделей, скорость обмена сеть-ARM-GPU — десяток-другой мегабайт в секунду со всеми ухищрениями.
                                          Так что если у вас «картинок» больше чем несколько сотен — обычный x86 десктоп с 1060/1070/1080 будет гораздо дешевле и производительнее.
                                  0
                                  Глупо упоминать GPGPU и забывать о Power9. Не подскажете на какой платформе есть NVLink
                                  RAM <-> GPU? (hint не на x86)

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое