Как мы переносили современные игры на процессор Эльбрус-8С

    Мы в Gaijin уже много лет работаем с самыми разными игровыми платформами — от ПК и мобильных устройств до Nintendo Switch, PlayStation 5 и Xbox Series X|S. На этот раз мы решили провести эксперимент — скомпилировали и запустили наши игры War Thunder, Enlisted и CRSED: F.O.A.D. на рабочей станции Эльбрус 801-РС, чтобы проверить, можно ли её превратить в развлекательную систему.



    До этого на Эльбрусе компилировали и запускали только старые игры с открытым исходным кодом, так что давно уже назрели вопросы: насколько сложно перенести современные проекты, как они поведут себя и достаточно ли производительности процессора, чтобы поддерживать в них играбельную частоту кадров?

    Игры, выбранные для тестирования, разработаны для PC и консолей, включая PlayStation 5 и Xbox Series X|S. Это онлайн-игры, где геймеры сражаются друг с другом, но наши эксперименты мы проводили исключительно в однопользовательском режиме — для оценки производительности этого вполне достаточно. Портирование проводилось двумя программистами в свободное от работы время, с нами на связи были разработчики ОС Эльбрус и разработчики, которые пишут и портируют программы для этого процессора (привет Рамилю из сообщества энтузиастов «e2k-dev team»).

    Процесс компиляции не представляет собой что-то сложное, это не новая консоль, и здесь не надо писать свои драйверы. Наши игры запускаются на Линуксе, операционная система от МЦСТ похожа на Debian, а компилятор LCC умело прикидывается компилятором GCC.

    image alt
    Скриншот из игры War Thunder, по состоянию на май 2020 года, игра запущена на Эльбрус 801-РС

    После того как удалось скомпилировать и запустить несколько простых приложений, мы собрали и запустили War Thunder c драйвером OpenGL 3. Запустить с Vulkan поначалу не смогли, так как компилятор шейдеров в драйвере вулкана зависал на коде больших шейдеров. В результате War Thunder выдавал с OpenGL примерно 25 кадров в секунду, а Enlisted и CRSED не работали, т.к. требовали Vulkan.

    При этом больше всего тормозил рендер, так что мы надеялись получить приемлемый FPS, если в МЦСТ улучшат скорость работы драйверов Vulkan и OpenGL. Графический стек в операционной системе давно не обновлялся за ненадобностью, с системой поставлялась старая Mesa 17.2.8, этой версии хватало для запуска нетребовательных приложений, и даже каких-то игр, но для наших продуктов этого было недостаточно.

    По нашей просьбе разработчики МЦСТ обновили графический стек, обновили Mesa до версии 2019 года (Mesa 19.3.5).

    С обновлённым Vulkan количество кадров в секунду в игре War Thunder возросло в разы по сравнению с OpenGL и держалось в районе 60-70. А ещё, после того, как Vulkan привели в рабочее состояние, стало возможным запустить две другие наших игры — Enlisted и CRSED: F.O.A.D. Они после сборки показали 30 кадров в секунду.

    Спустя некоторое время МЦСТ сами дополнительно обновили Mesa до версии 2020 года (Mesa 20.1.8). Это дало возможность использовать открытый компилятор шейдеров ACO (развиваемый компанией Valve), что значительно ускорило компиляцию шейдеров в Vulkan.

    Всё это время мы экспериментировали на майской версии исходников игры CRSED: F.O.A.D, а когда обновились до более новых, в надежде улучшить быстродействие, нас ждал неприятный сюрприз: в игре получили 15 FPS.

    Почему же в более ранней, майской версии, FPS был в два раза выше? Запустили профайлер, посмотрели — оказалось что время тратится на работу внутриигровых скриптов. Внутриигровые системы как раз всё лето переводили с С++ на daScript (это такой язык программирования, который может интерпретироваться и преобразовываться в C++ для Ahead-of-Time компиляции). Так вот, по умолчанию в не релизной сборке компиляция скриптов была отключена, на x86 это было не очень заметно, а вот для Эльбруса интерпретатор работал медленно из-за невозможности процессора предсказать переходы в ветвлениях.

    После включения компиляции Ahead-of-Time для скриптов производительность вернулась к 30 кадрам в секунду. А после вынесения ботов и физики в отдельный процесс, средний FPS стал в районе 40 — то есть, уже достаточно, чтобы играть.

    Потенциал для ускорения ещё есть. У компилятора LCC есть режим оптимизации с использованием профиля выполнения программы. На двух синтетических тестах он давал прирост скорости 4% для парсера выражений, и 270% для гранулярного синтеза звука. Но, к сожалению, мы так и не добрались попробовать его на играх.

    Скриншот из игры Enlisted, игра запущена на Эльбрус 801-РС

    А теперь факты и результаты тестов


    Замеры проводились на компьютерах:
    • Эльбрус 801-РС (32 GB DDR3, Эльбрус-8С 1.3 ГГц, SSD, AMD Radeon R9 380, Vulkan), ОС Эльбрус 6-rc3, компилятор LCC 1.25.09
    • PC (16 GB DDR3, Intel i5-3570 3.4 ГГц, SSD, GeForce GTX 960, Vulkan), Windows 8.1, Clang 10.0.0

    Видеокарты по тестам показывают ± одинаковые результаты, с разницей на пару процентов, поэтому будет считать их влияние для наших целей незначительным.

    Объём кода который пришлось поменять в игровом движке Dagor 6 и в играх War Thunder, CRSED: F.O.A.D. и Enlisted в начале года (версия ядра 4.9, ОС Эльбрус 4.0-rc5, компилятор 1.23.19):
    45 файлов, 450 строк.

    Объём кода который пришлось поменять в октябре (версия ядра 5.4, ОС Эльбрус 6.0-rc3, компилятор 1.25.09):
    25 файлов, 120 строк.

    По-моему, 120 строк из 2,7 миллионов при переходе на новый компилятор и новую архитектуру — это неплохой результат. Уменьшение количества изменений связано с тем, что новый компилятор LCC стал поддерживать стандарт С++17, и больше не надо было переписывать фрагменты кода, которые его использовали.

    Время компиляции игрового движка Dagor 6 и игры CRSED: F.O.A.D.

    Компилировалось 4100 файлов, ~84 MB исходников:
    PC Эльбрус
    -O3 (релизная сборка) 0:31:20 2:09:05
    -O0 (отладочная сборка) 0:24:22 1:02:07

    Почему скорость компиляции ниже? При компиляции для архитектуры VLIW компилятор занимается принудительным дублированием кода, чтоб некоторые ветки программы частично выполнялись спекулятивно. Это позволяет сильнее загрузить исполнительные устройства процессора. Кроме замедлении скорости компиляции, это увеличивает размер кода.

    Размер исполняемого файла:
    PC Эльбрус
    -O3 (релизная сборка) 45 MB 263 MB
    -O0 (отладочная сборка) 925 MB (.exe + .pdb) 3719 MB (exe + debuginfo)

    Игры запускались со следующими настройками:

    • War Thunder: оконный режим, разрешение 1908x1040, использовались настройки графики «Maximum», настройка «Tire/tracks marks» была выставлена в «None».
    • Enlisted, CRSED: оконный режим, разрешение 1908x1040, использовались настройки графики по умолчанию, отключен «Global Illumination».

    Среднее количество кадров в секунду:
    PC Эльбрус
    War Thunder, тестовый выезд на танке* ~70** ~82
    Enlisted, игрок и 3 бота ~75 ~30
    CRSED, бенчмарк 90.5 43.6
    CRSED, игрок и 5 ботов*** ~95 ~35

    * — замер проводился сразу после загрузки, без движения техники.
    ** — на PC игра работает медленнее, чем на Эльбрусе. Это очень неожиданный результат; мы подозреваем что драйвер Vulkan для Windows работает медленнее, но подробные исследования ещё не проводили.
    *** — в этом тесте боты, физика и рендер в одном процессе. В обычном режиме, физикой и ИИ занимается сервер.

    Использование ресурсов в War Thunder в пробном выезде на танке:



    Использование ресурсов в CRSED: F.O.A.D., одиночная игра с пятью ботами:



    Видео





    Что представлял из себя процесс портирования?


    Про портирование уже есть несколько докладов и статей, например вот https://bit.ly/3nbnNfF, или вот https://bit.ly/3oL5G0q. Кратко опишу основные моменты, через которые пришлось пройти нам.

    На компьютере с ОС Эльбрус мы собирали проект теми же скриптами сборки, которые используются для Linux. В системе есть псевдонимы для GCC и G++, которые указывают на компилятор LCC, и большая часть ключей компиляции GCC была понята компилятором LCC. За исключением нескольких ключей компиляции, в файле сборки исправлять ничего не пришлось.

    Далее основная работа состояла в добавлении нового процессора в конфигурационные файлы проекта и библиотек. Вот например, как это выглядит для EASTL:

           #elif defined(__e2k__)
                    #define EA_PROCESSOR_ELBRUS 1
                    #define EA_SYSTEM_LITTLE_ENDIAN 1
                    #define EA_PLATFORM_DESCRIPTION "OS Elbrus on E2K"

    Вот ещё примеры патчей в библиотеки с открытым исходным кодом: https://www.altlinux.org/Эльбрус/upstream

    Отдельно проверяли, не проверяется ли в коде наличие макроса __LCC__ (его определяет компилятор для Эльбруса LCC и компилятор языка С https://ru.wikipedia.org/wiki/LCC, вот такой вот конфликт). Некоторые библиотеки (например, c-ares) ошибочно полагали что они компилируются для 32-битного процессора с архитектурой Intel (пример патча для библиотеки curl: https://bit.ly/3oKh9h6).

    Что касается платформозависимого кода, то обычно в библиотеках была реализация функций на чистом C/C++, и мы использовали её.

    Итог


    Мы удовлетворили свой интерес и запустили игры собранные под Эльбрус-8С. В игре War Thunder даже получили FPS в районе 60. В CRSED: F.O.A.D. и Enlisted количество кадров в секунду, по современным меркам с трудом можно назвать хорошим, но чтобы поиграть против ботов, 30-40 FPS вполне достаточно.

    В общем, 8С уже можно считать подходящим для запуска современных игр, с интересом будем ждать следующий процессор — Эльбрус-8СВ.

    Посмотреть как это работает на живом компьютере Эльбрус 801-РС можно в московском музее Яндекса https://yandex.ru/museum/, с 17 декабря и как минимум до конца января.

    P.S.


    Спасибо МЦСТ — они выдали нам на время экспериментов одну рабочую станцию.
    Ещё спасибо Дмитрию из музея Яндекса, очень пригодились его знания про установку операционной системы.
    Gaijin Entertainment
    Компания

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

      +10

      Интересно, спасибо. Но почему вы сравнивали с виндой? Даже на одном и том же железе между компиляцией в винде и компиляцией в линуксе будут существенные отличия, потому что, ну, компилируются разные вещи. Объективнее было бы сравнить с линуксом со схожими версиями системных библиотек.

        +8
        Я бы сказал потому что винда куда более игровая платформа. А изначальный вопрос был: можно ли поиграть на эльбрусах.
          +9
          Большинство игроков играет на Windows или на консолях, и ещё у нас большинство разработчиков использует Windows; поэтому взяли эту ОС, как точку отсчёта.
          По поводу компиляции — компиляция на Windows и Linux на IA почти не отличаются между собой по сравнению с компиляцией при помощи LCC на Эльбрусе, это совсем другой компилятор.
            +7

            По опыту знаю, что производительность игр на винде и на линуксе часто отличается безо всяких эльбрусов. Так что не понятно, сколько в ваших результатах замедления от эльбруса и сколько от линуксового графического стека и проч.

              +1
              А где лучше производительность игр — на винде или на линукс?
                +1

                Требовательные игры — особенно ААА — делаются и оптимизируются под винду, так что… В лучшем случае они кроссплатформенные и специфичные виндовс оптимизации могут быть или не быть, в худшем портированы посредством прикладывания прокладки, которая, конечно, жрёт производительность.

              +3

              Просто шокирует экзешник на 4Гб против 1Гб. Может, там вкомпилировано внутрь то, что в винде динамически линкуется, например.

                +6
                Те большие exe — это для отладки с отладочной информацией, в рельности у игроков 45 MB и 263 MB.
                +5
                Но проблема в том, что если бы был линукс и одинаковые видики, то можно было бы сравнивать в лоб, плюс не стоял бы вопрос о драйверах тех же. А сейчас больше получается, что на двух разных наборах железа (кроме архитектуры процессора — там же ещё nvidia под виндой против amd под линуксом) и двух принципиально разных ОС — результат которые не говорит ничего, кроме факта, что игра работает и на наших эльбрусах…
                  +7
                  результат которые не говорит ничего, кроме факта, что игра работает и на наших эльбрусах…

                  Задача именно в том и состояла — минимальными усилиями запустить игру с играбельным фреймрейтом на Эльбрусе, а вовсе не в сравнении видях / стеков между собой. Сравнением видеокарт занимаются соответствующие издания.

                  Данные с PC можете рассматривать просто как референс для удобства, чтобы было понятно какие требования к железу предъявляет игра.
                    +1
                    Ну не знаю, все же комп в дебианом с тем же видиком был бы вообще эталоном в плане так же понимать, что полученный фреймрейт упирается именно в заточку под эльбрус сам по себе.
              +5

              достаточно очевидно, что портированная под эльбрус игра не будет продаваться даже на сайте этого гайджина. Hо раз у конторы столько портов, то какого, спрашивается, нет порта enlisted под обычный linux?

                +4

                enlisted ещё в закрытом бетатесте же. Может и подвезут линукс.

                  +3

                  Вот как? Спасибо. Буду ждать ebuild'ов :)

                  +4

                  linux + соревновательный мультиплеер + античит несовместимые вещи

                    +2
                    WarThunder имеет нативный Linux-клиент.
                      0

                      Нативный EAC под Linux давно есть и работает, проблемы только с запуском виндовой версии под Proton/Wine. Но с ядром 5.11, говорят, ситуация станет сильно лучше.

                        0
                        а что там в 5.11 такого появится?
                          +1

                          Syscall User Dispatch появится. Я как раз недавно размышлял, возможно ли создать виндовую программу, которую принципиально будет невозможно запустить на линуксе в вайне из-за каких-то фундаментальных несовместимостей. Правда, я предполагал, что это будет скорее связано с памятью, а не сисколлами. Могу ошибаться, но вроде как сейчас ситуация такая: сисколлы у ядер разных операционок отличаются (разные номера привязаны к разным функциям), но они абстрагированы с помощью местной реализации libc (msvcrt на винде, например), и т.к. все программы на эту реализацию опираются, то вайн заменяет её своей, которая вызывает уже линуксовые сисколлы. Программы этого не замечают и работают как надо. Античиты работают с сисколлами напрямую, вызывая их по номеру, и в линуксе эти номера другие, в результате античит не работает. С помощью вот этой новой механики в ядре, по-видимому, появляется возможность перехватывать и эмулировать в том числе и сисколлы на самом низком уровне, причём, очень быстро.


                          Это не означает, что EAC мгновенно заработает на 5.11, поддержка со стороны вайна всё равно нужна, и пока она не готова. Но с этим механизмом появляется возможность сделать высокопроизводительную реализацию, которая не будет требовать явной поддержки со стороны античита. Например, я видел пару месяцев назад специальные пропатченные библиотеки EAC (вроде как даже от самих разработчиков античита), которые работали уже сейчас, в современном вайне и на текущем ядре. Только эти патчи, разумеется, отваливались при обновлении игры, так что кроме как для экспериментов они не годились ни на что.

                        0
                        Все там совместимо. Проблема просто в том, что игростроители в массе не хотят полноценно портировать игры под линукс, а в режиме эмуляции античит, понятно, будет препятствовать работе. Но Валв работает с издателями, так что ожидаем в скором времени совместимости виндовых античитов с протоном/вайном.
                          0

                          Ну, античитов уровня драйвера, полагаю, в линуксе не будет.

                        +11
                        Проблема в том, что нет такой ОС как «обычный линукс». Есть куча разных ОС с ядром GNU/Linux, но различным окружениям и множеством WM/DE со своей спецификой, а также зоопарком видео-драйверов, зачастую не самой высокой свежести.
                        Поэтому тестирование линукс клиента получается затратнее чем на других платформах, так как надо протестировать хотя бы на десятке дистрибутивов, а не только на убунте.
                        Если однопользовательскими игры тестировать надо редко, то в онлайн играх этот процесс постоянный. Так как патчи не только фиксят баги, но и привносят новые фичи.
                          –1

                          А всякие новомодные АppImage не решение?

                            +3
                            Потому что AppImage это просто архив.

                            Проблема с играми в том, что не все библиотеки можно положить внутрь AppImage. Насчёт OpenGL(к Vulkan это кстати тоже относится) у меня уже была дискуссия с автором этой утилиты, что нельзя их притащить с собой просто потому что положить все возможные драйвера невозможно вообще, а местами и нелегально (например, закрытый драйвер от NVIDIA).

                            И казалось бы, да можно же использовать системный OpenGL/Vulkan, но это не так. Если внутри AppImage приложение несёт свой libc, то при попытке обратиться к любой GL/VK функции в худшем случае скорее всего произойдет краш, в лучшем случае библиотека просто не загрузится, ссылаясь на разные версии libc.

                            Выход из ситуации — брать дистрибутив как можно старее, собирать приложение на нём, по необходимости обновляя отдельные зависимости, получившиеся бинари складывать в AppImage. На том что новее заработает… наверное. Steam кстати делает подобное решение и далеко не всегда работает.
                            0
                            Согласен, но ведь с точки зрения маркетинга — лучше иметь хотя бы один релиз, жёстко прибитый гвоздями к конкретному дистрибутиву, нежели вообще иметь ноль пингвино-совместимых релизов?
                              +3
                              Стим свой «дистрибутив» с собой носит. Там получится, примерно, как и на винде: разное железо, разные драйвера.
                                0

                                Угу, причём дистрибутив успел изрядно устареть за время своей жизни, так что игры сами частенько тащат .soшки с собой.

                                  +1
                                  Да это всё решаемо. Проблема в большой гетерогенности платформы. У разработчиков может всё прекрасно работать под линуксом, а у игроков на какой-нибудь DE будет чёрный экран или мышка как-то не так обрабатывается. С вукланом тоже хватает веселья, учитывая что дрова от одного известного производителя видеокарт написаны так, что можно запросто повесить всю ОС локом в userspace коде.
                                  0
                                  А как вариант — контейнер с требуемым окружением, по типу докера, решает проблему?
                                    0

                                    Ну какой контейнер, если основные затыки всегда около хардвари. Графика, звук, контроллеры. В основном, конечно, графика. Под винду вендоры драйверы обновляют с фиксами под свежие игры. Ну какие тут контейнеры?

                                      0
                                      Может сработать, но есть несколько моментов. Во-первых, дрова должны быть в контейнере. То есть, дрова для нвидии всё равно придётся скачивать. Во-вторых, контейнер должен быть совместим с хостом, так что поставить новый контейнер на древнюю систему не получится. Плюс ещё реализация апи, так grim работает в sway, но не работает в gnome 3 wayland(или не работал ранее).
                                        0
                                        Плюс ещё контейнер не работает с ядром напрямую
                                  +3
                                  Спасибо. Очень интересно.
                                  По видео вроде как видно, что fps уперся в возможности видеокарты. Я прав?
                                  Или есть другие ограничения: движок игры/процессор/драйвера/чтотоеще?
                                    +4
                                    К сожалению, на загрузку GPU смотреть бесполезно, как оказалось, это известная особенность в связке утилиты MangoHud + драйвера AMDGPU
                                    github.com/flightlessmango/MangoHud/issues/233
                                    github.com/flightlessmango/MangoHud/issues/329
                                      +3
                                      Тогда вопрос, почему не использовать оверлей из состава Mesa?
                                      gitlab.freedesktop.org/mesa/mesa/-/tree/master/src/vulkan/overlay-layer

                                      По идее он в отличии от MangoHud должен показывать более адекватные результаты, да и в целом давать больше статистики (он в меса с версии 19.1)
                                        +4
                                        Спасибо, что подсказали про оверлей, надо будет попробовать.
                                          0
                                          Я им сам не пользовался, но вроде бы он работает и на AMD. Покажет не совсем FPS, но среднее время рассчета кадра в средний-же FPS прекрасно конвертируется. К тому же там вроде бы можно включить логгирование и провести корректные рассчеты перцентилей и посмотреть не только на FPS, но на стабильность FPS, что в соревновательных играх, на мой взгляд, чуть ли не важнее среднего значения.
                                    +2
                                    А почему такие разные конфигурации? Неужелие невозможно было поставить один и тот же объем оперативки и одинаковые видеокарты на оба стенда?
                                      +7
                                      Объём оперативной памяти не играл большой роли, игры использовали до 3 GB, компилятор — до 4 GB. Да, остальная память при компиляции использовалась для кеширования файлов, но чтение занимало доли процента от времени по сравнению с работой компилятора.
                                      Видеокарты практически одинаковы по производительности, судя по различным тестам. При разности FPS в 1.5 раза для наших целей это не так критично.
                                        +3
                                        Судя по различным тестам (например wccftech.com/nvidia-evga-gtx-960-ssc-amd-xfx-r9-380-oc), эти видеокарты могут, в зависимости от теста, отличаться процентов на 15 (см. Ashes of the Singularity, например), так что в целом честно было бы взять везде R9 380 и посмотреть уже на нем, иначе конечно разницу в 1.5 раза не объяснить, а вот 83 против 70 фпс — вполне можно было бы.
                                          0

                                          R9 380 Имеет теоретическую производительность 3.5Тфлопс, против 2.3Тфлопс у GTX 960. Так что в этом плане у Эльбруса была даже фора.

                                            +4
                                            Упор в частоту процессора. Надо бы потестить на Э8СВ и инженернике 16С.
                                              +1
                                              Ну ТФлопсы в играх не всегда играют решающую роль, но лишний признак неравенства карт и некорректности сравнения. Я бы в данном случаи, если честно, на обе системы поставил что-нибудь в духе хотя бы RX480/RX580, чтоб шанса что оно упирается в видеокарту было около нуля. И да, одинаковая ОС тоже важна в случаи vulkan рендера и AMD карт.
                                        +3
                                        Я впечатлен Вашим трудом, так как работа с отечественными процессорами это действительно сакральные знания. Надо не мало сил, чтобы получить такой положительный результат.
                                          +1
                                          Меня впечатляет разница в размере кода.
                                            +3
                                            VLIW имеет ширину до 512 бит, плюс раскрутка циклов.
                                              +2
                                              плюс раскрутка циклов.

                                              Да, на -O3 компилятор может немало понараскручивать. Встречал мнения, что -O2 может быть иногда быстрее, чем -O3 как раз из-за менее раздутого кода.

                                                +3
                                                Кстати, на Эльбрусах есть ещё O4. Там он может глубоко пройтись, но размер резко возрасти.
                                                  +1
                                                  Как и время компиляции. А выхлоп может быть не всегда таким полезным.
                                                    +1
                                                    Можно попробовать только для «горячих» модулей применить дополнительные оптимизации сборки
                                                      +3
                                                      Хорошая идея. на Эльбрус 8СВ ещё куски подтюнить для использования SIMD 128 bit.
                                                  0
                                                  то, что раскрутка плодит кучу кода это мне знакомо, но порой это говорит, что либо в процессоре плохо поддерживаются циклы на аппаратном уровне, либо компилятор не умеет хорошо настроить цикл под конкретную архитектуру.
                                                    +3
                                                    Циклы аппаратно поддерживаются. Есть одна инструкция с счётчиком цикла и loop_mode. Компилятор, да, может. Там с кодом и флагами играться надо.
                                                      +1
                                                      У E2K код рыхлый не потому что он раскручивает циклы, а потому что кодировка такая. В книге от 2013-ого года (можно на сайте МЦСТ бесплатно скачать) на словах описано как кодируется один bundle.

                                                      К тому же компилятор не особо заморачивается с размером кода и выдаёт что получилось.
                                                        +6
                                                        У e2k код «рыхлый» потому что для оптимизации необходимо делать много подстановок функций, а также иметь много версий одного цикла и много вариаций кода для предикатного режима (if-conversion). Тем не менее, обычно в горячих участках код получается нормальным, а «рыхлость» — это среднее по больнице.

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

                                                        Компилятор довольно сильно заботится о размере кода. Так, например в режиме -O3 действует специальная система СНОП, которая при возможности понижает линейку оптимизации для экономии времени компиляции и размера. Но сам по себе -O3 подразумевает что размер кода не является главной целью сборки.
                                                          +2
                                                          Спасибо за ответ!
                                                  +4
                                                  А у вас есть какие либо планы на Эльбрусы в будущем? В каком случае будете его полноценно поддерживать? Сколько для этого надо потенциальных игроков?
                                                    +7
                                                    Я не смогу ответить. Пока планов конкретных нет, но вообще это скучное бизнес-решение, я занимался увлекательной инженерной задачей :)
                                                      +3
                                                      А вообще планируете развивать эти свои проекты под Эльбрус дальше? Хотя бы на всякий случай что бы было. Вдруг будут санкции из-за которых иного выбора у граждан кроме как Эльбрус и не останется. Или может Эльбрусы в массы пойдут со временем, и что бы вы уже были наготове. Ну или хотя бы поглядеть что можно получить на Эльбрусе при достаточно хороших оптимизациях.
                                                        +2
                                                        Бизнесово в данный момент это в данный момент супер-бесполезная задача, гарантированно невозвратные деньги, никто не станет на это тратиться прямо сейчас.

                                                        Инженерам, конечно, интересно поразвлекаться — новая архитектура, прикольные новые железки. Но нет никакого клиента, который эти развлечения оплатит.

                                                        Сейчас скорее актуально спрашивать, что они думают про M1 от эпла, чем про Эльбрус)
                                                          +3
                                                          Мне было бы очень интересно запустить эти проекты на новом процессоре Эльбрус-8СВ, ещё попробовать оптимизацию с профилем выполнения, детально всё посмотреть с профайлером. Возможно, тормозные места потребуют изменения подходом и некоторых алгоритмов. Вот бы ещё времени на всё хватило.
                                                            +3
                                                            Да! С 8СВ хотелось бы ещё одну статейку от вас. А с 16С, когда он к вам попадёт, расскажите ещё и про вариант двоичной трансляции(когда он прикидывается Интелом). Хотелось бы знать на что способен этот процессор в таком режиме с вашими проектами. Интересно какая будет разница. Походу в случае санкций как я описал или если Эльбрусы пойдут в массы, то все геймеры на них будут ваш!
                                                              +2
                                                              На 8СВ правда игра потребует пересборки. Там очень много чего вкусного в ISA добавили, не зря подняли версию. :)
                                                              –1
                                                              Вдруг будут санкции из-за которых иного выбора у граждан кроме как Эльбрус и не останется.
                                                              Мне кажется, что в этом случае и имеет смысл портировать. При этом ведь санкции должны быть такие, чтоб китайцы на алике нам тоже ничего не отгружали (что реально, если не отгружать им, а в этом случае, боюсь все будет настолько плохо, что и эльбрусы нам не отгрузят)
                                                                0
                                                                Да достаточно перекрыть доступ к TSMC/Samsung/etc и всё будет готово. Останется только старый младший Эльбрус на 90/65нм.
                                                                  +1

                                                                  Есть китайцы еще (SMIC), там 40 нм есть и вроде как 28 нм запускают.

                                                                    +2
                                                                    Как вариант, но все заготовки под TSMC надо будет перекроить под SMIC, а это прилично времени займёт.
                                                                    +1
                                                                    Ещё раз, пока нет запретов, то ввозить частникам будут, а значит портировать игру (!) в ожидании возможных санкций под архитектуру, которая в ближайшем будущем наблюдаться будет только в каких-нибудь бизнесах (типа в схдшках) и/или госах — смысл не несёт. Это преждевременная оптимизация, как она есть.
                                                                    Второе, нужно такие санкции ввести, чтоб частникам не отгружал обычные процы вообще никто. Даже китайцы с своего алика. Кроме как перекрыть доступ самого китая к этим процам — я другого варианта не особо вижу.
                                                                    Да достаточно перекрыть доступ к TSMC/Samsung/etc и всё будет готово.
                                                                    У китайцев, кстати, 14 нм вроде есть, так что на уровне оном вполне себе получится заказать при сохранении отношений с Китаем (а так как ему нужного много чего, то вариант разрыва очень слабый). Вот 32 ядер на 7 нм тогда не будет в ближайшем будущем, да.
                                                                  0
                                                                  Если наступят такие санкции, что даже азиаты не смогут поставлять процессоры, то вам никакие Эльбрусы не помогут. Придется завозить все тайно «по-советски», что чревато провалами. Сегодня в информационном мире спецслужбам гораздо проще отслеживать левак, чем в 80-е.

                                                                  Причина этого, как мне кажется, проста: санкциями ударят по Микрону (TSMC сам откажется от производства, если настанут «суперадские» санкции) в плане поставки оборудования. Т.е. практически задушат саму линию, чтобы она не смогда вырасти на порядки для замещения азиатов, а большего и не надо.
                                                              +3
                                                              Очень круто, что заморочились, спасибо большое!

                                                              Но для научной достоверности, конечно, надо брать максимально одинаковое окружение — память, видеокарта, ОС, как тут уже отметили выше. Результат может сильно отличаться и в ту и в другую сторону.
                                                                +1
                                                                Я почему-то изначально полагал, что вы переписали часть математики под E2K packed инструкции или ручками набивали ШК.

                                                                Но, я так понимаю, вы подобных оптимизаций не проводили и полагались исключительно на компилятор?
                                                                  +3
                                                                  Мы компилировали код почти без изменений, с интринсиками SSE2, компилятор сам преобразовывал их во машинный код для VLIW.
                                                                    +3
                                                                    Это очень здорово. SSE как раз транслируется в нативные packed инструкции.
                                                                      0
                                                                      А есть ли аналогичные инструкции у E2K? Можно переписать под них и какой будет прирост? E2K packed это что?
                                                                    +1
                                                                    Мне кажется пока статьи о разработке и портировании, чего то под эльбрус не избавятся от дополнений в виде:
                                                                    Спасибо МЦСТ — они выдали нам на время экспериментов одну рабочую станцию.

                                                                    Смысла в этих статьях не много, т.е. пока процессоры не станут хоть чуть чуть массовыми, а не уделом избранных и личной гордости чиновников за «наше» производство, эти статьи только будут добавлять скепсиса.
                                                                    Хотим, что бы свой камень занял достойную нишу? Ну так субсидируйте производство, что бы такой камень стоил вменяемых денег, да хотя бы был просто доступен, ведь сейчас его не купить даже если есть деньги. А без этого, сорян это просто кусок военного кремния, по баснасловной цене.
                                                                      –1

                                                                      Возможно моя точка зрения не очень популярна, но делать процессоры только для того, чтобы запускать на них игры — это бесполезная трата потенциала технологий.


                                                                      Пусть лучше сделают датацентр с этими процессорами и тогда мы заменим всех чиновников на скрипт!

                                                                        –4
                                                                        Процессоры надо делать, что бы запускать на них все, что понадобится запускать, в том числе и игры. В данном случае, процессор делают для того, что бы на нем запускать подъем ЧСВ нации во главе с топ чиновниками.
                                                                      +1
                                                                      Надо было ставить одинаковые видеокарты. И попробовать i7 с 8 потоками, тогда бы тест был бы более объективным. И почему не windows 10? Ну и для чистоты эксперимента одинаковый размер памяти.
                                                                        0

                                                                        Потому что никто не собирал Windows 10 под Эльбрусы, конечно же

                                                                          +1
                                                                          Под x86 за то собирали. Сиcтема на x86 была под windows 8.1. Или вообще не читаем статью? А только комментируем? Можно было кстати и на линуксе протестировать x86. Но это все же не целевое сравнение с учетом большой разнице в производительности игр под линукс и windows при различном сочетании железа и настроек. Это уже будет тест непонятно чего.
                                                                            0

                                                                            Я думал ваш вайн был почему на эльбрусе не было Win 10, на что собственно и ответил. Про 8.1 не увидел, видел что какая-то windows. Ну и разница Win8 и Win10 в контексте едва ли заметная — драйвер то у них одинаковый, сомневаюсь что в графичских подсистемах ядра ОС там что-то настолько отличается, что это имеет влияние на погрешность измерения. А так да, почему не два линукса непонятно.

                                                                              +1
                                                                              Да тут дальше вопрос к тому, что тестирование очень непрофессиональное. За 20 больше чем 20 лет тестирования железа на ПК сформировались определенные требования. Да что то может не влиять на результат. Но все факторы как правило стараются исключить. Фактически тут только показали, что на Эльбрусе уже можно хоть как то играть. Тест виндовой машины это больше попытка оправдаться, что мы не хуже. Но я до сих не понимаю зачем? Это просто разные сегменты x86 и эльбрус. Или уж тогда какой нить тест запустили, который легко доступен большинству, что бы народ сравнил свою производительность с эльбрусом. Но опять тест игр это сомнительно, ибо там больший упор в видеокарту. Поэтому есть свои механизмы тестирования и сравнения разных платформ.
                                                                              Да вообще думаю много где эльбрус возможно сможет уделать x86. Но пока я не видел ни одного цельного большого и подробного материала. Что бы подробно все протестировали показав где он лучше, где хуже.
                                                                                +1
                                                                                Много сравнительных тестов Эльбрусов с компами на других архитектурах есть на Эльбрус/тесты/результаты. Это неофициальные постоянно пополняемые результаты бенчей.
                                                                                  0
                                                                                  Спасибо, не знал.
                                                                        +2
                                                                        А тем, кто может щупать Эльбрус дадут бинарники для тестов?
                                                                          +2
                                                                          War Thunder грузит только 2 потока на 100%, остальные простаивают.
                                                                          Enlisted и CRSED — все потоки, но 50%.

                                                                          Это как объяснить можно?
                                                                            +1
                                                                            На сколько я знаю, там сейчас в проектах разная политика по поводу того, какие системы должны занимать какие ядра. Но подробности не помню.
                                                                            +1
                                                                            Почему вдруг нельзя было использовать одинаковую видеокарту (Радеон) и одинаковое количество оперативной памяти (16 гигов)?
                                                                              +2
                                                                              Чуть выше уже писал:
                                                                              Объём оперативной памяти не играл большой роли, игры использовали до 3 GB, компилятор — до 4 GB. Да, остальная память при компиляции использовалась для кеширования файлов, но чтение занимало доли процента от времени по сравнению с работой компилятора.
                                                                              Видеокарты практически одинаковы по производительности, судя по различным тестам. При разности FPS в 1.5 раза для наших целей это не так критично.

                                                                              У нас не было планов делать бенчмарк процессора, мы преследовали другие цели, и поэтому сравнивали хоть с чем-то похожим по году выхода процессора и производительности видеокарты.
                                                                                +3
                                                                                Просто взяв одну и ту же видеокарту, можно было бы так сказать бесплатно получить статью полезную в том числе для тех кто хочет увидеть бенчмарк процессора. Замена видеокарты на эталонном ПК просто выглядит как операция на 15 минут времени…
                                                                              +3

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

                                                                                +2
                                                                                > Энтузиасты найдутся.

                                                                                Очень небольшое количество энтузиастов. За текущую цену нейдется меньше сотни любителей, которые готовы купить. Это количество для производства крупной партии — ни о чем. А по сравнимым с Intel/Amd ценам потребитель будет смотреть на возможность запуска нужного ему ПО, и тут тоже Эльбрус стоит далеко не в мейнстриме.

                                                                                Эльбрус — это нишевое решение, явно не для потребительского сектора персональных компьютеров. Главное, чтобы он развивался для своей ниши, и в России находился центр компетенций. Если будет настоящая а не искусственная потребность в Эльбрусах в его нише, это уже будет очень хорошо.
                                                                                  +1

                                                                                  Справедливое замечание. Но я больше про то, что МЦСТ стоит стать более открытой. Опубликовать полную документацию по ISA, в идеале ещё сделать эмулятор, раздавать компилятор.


                                                                                  Я уже устал повторять это в темах про Эльбрус. Я помню как ARMv8 появлялась — ещё до выхода первого чипа в железе, на неё уже было портировано куча софта и ОС. Т.к. полноценная документация, эмулятор, поддержка в компиляторах и т. д.


                                                                                  RISC-V или Power сейчас тоже не купишь за дёшево, тем не менее вокруг них образовалось сообщество и т.д. И это большой плюс.


                                                                                  Даже если цена у Эльбруса станет вменяемой, то что с ним делать? Реверс-инжинирнг проводить? На каждый чих бегать на поклон к МЦСТ?

                                                                                    +1
                                                                                    Им сверху не разрешают. Почему? Не понятно. МЦСТ хотят.
                                                                                      +1

                                                                                      Последние слухи, что я слышал, так это про то, что им внезапно РАН палки в колёса вставляет, даже не вояки.


                                                                                      С другой стороны, предыдущее обсуждение, где была ссылка на интервью генерального директора АО «МЦСТ» Александра Кима в интервью журналу «Эксперт», вызвало у меня сомнение, что что-то поменяется в лучшую сторону.

                                                                                        +1
                                                                                        А причём тут РАН? Как это? хммм.
                                                                                          0
                                                                                          Примерно так:
                                                                                          Эльбрус» — процессорная архитектура и одноимённое семейство универсальных VLIW-микропроцессоров, разрабатываемых российской компанией МЦСТ при участии ИНЭУМ
                                                                                          Институт электронных управляющих машин (ИНЭУМ), ныне — ПАО «ИНЭУМ им. И. С. Брука» — один из первых отечественных научных центров, олицетворяющих эпоху начала разработки и применения компьютеров в СССР
                                                                                            0
                                                                                            А им то что с того, что откроют Эльбрусы и начнут массово покупать? Денег не хотят? ИНЭУМ мамки пилит для МЦСТ.
                                                                                              +2

                                                                                              Ну от того, что откроют ISA, их массово не начнут покупать. Мамки кстати и другие пилят.


                                                                                              Тут сложно что-то сказать, т.к. всё очень закрыто. Поэтому чёрт там ногу сломит, что кто хочет. Остаётся только налить кофейка, выпить и гадать.

                                                                                                +1
                                                                                                Условно, права какие-то могут принадлежать в итоге академии наук/минобру (так как их ведомственное учреждение участвовало), значит решения принимать должны не только товарищи майоры, но и товарищи чиновники из этого министерства. Как говорится, удачи найти крайнего, который захочет помочь и принять решение, дать разрешение. Коммент про то, что военных проще уговорить, чем чиновников на хабре года 2-3 назад был, уж не знаю, насколько истинный.
                                                                                                Однако с учетом, что в этом году много чего открыли — процесс идёт. Так что удачи МЦСТ на этой стезе)
                                                                                                  +1
                                                                                                  Ждём, а энтузиасты не дремлют)
                                                                                        +1
                                                                                        МЦСТ не может взять и просто так сразу всё сделать. Однако:
                                                                                        www.opennet.ru/opennews/art.shtml?num=53071
                                                                                          +1

                                                                                          Я уже в прошлой теме высказался.


                                                                                          Хотя, процессор интересный и на мой взляд вполне достойный для нашего текущего уровня.

                                                                                    0
                                                                                    Это что бы вояки на посту во время дежурства не скучали или где там этот Эльбрус используют?
                                                                                      +1

                                                                                      Это не "чтобы вояки". Это инженеры улиток развлекаются. Имеют право.

                                                                                      0
                                                                                      Любопытно было узнать, что Эльбрус работал с
                                                                                      AMD Radeon R9 380
                                                                                      Как там вообще с поддержкой видеокарт? И есть ли какая-нибудь встройка, чтобы работать только с всецело отечественными компонентами?
                                                                                          0
                                                                                          При учёте того, что в РФ не производится DRAM/FLASH пригодная к использованию в железе хотя-бы уровня 80486, говорить о работе с всецело отечественными компонентами бессмысленно.
                                                                                            +2
                                                                                            А что вы понимаете под словом «отечественный»? Айфон для американца — «отечественный»? А мерседес, собранный в есипово, он для кого «отечественный»? Для России? Или для Германии?
                                                                                              0
                                                                                              Отечественный компонент — компонент разработанный в РФ. Айфон — это не компонент, это уже устройство, а вот к примеру его процессор — вполне себе будет отечественным для жителя США.
                                                                                              Поэтому фраза «отечественная память» для меня это что-то типа К555РУ7. И да, ничего в Калининградских SSDшках для меня не является отечественным.
                                                                                                +1
                                                                                                Процессоры Apple для Айфонов вполне себе производятся на тайваньском фабе TSMC. Так что не нужно тут про «отечественность» заливать.
                                                                                                  0
                                                                                                  Прочитайте внимательнее коммент, на который вы ответили, и найдите там фразу «произведённый», если что она была только в ещё более верхнем. HDL/RTL и далее у яблочного процессора вполне себе сделано компанией Apple. И при требовании оное может быть перенесено (с гораздо меньшим матом, чем в случае с e2k) на локальное производство, благо не такая адова пропасть по технормам плюс политический рычаг давления на TSMC, который ИМХО вынудил её начать строительство фабрики в США.
                                                                                          +1

                                                                                          Спасибо за статью.


                                                                                          Вопрос про оформление статьи: для чего давать ссылку на GitHub через сокращалку:


                                                                                          пример патча для библиотеки curl: https://bit.ly/3oKh9h6

                                                                                          Это даёт какой-то бонус для SEO? Или стабильность ссылки (но я скорее поверю, что адрес на GitHub дольше проживёт, чем адрес на bit.ly или сам bit.ly)?


                                                                                          Просто стало любопытно. Отвык уже видеть эти сокращалки, и даже уже забыл зачем их вообще придумывали.

                                                                                            +2
                                                                                            Там были две большие ссылки, я посчитал что это занимать 3 строки ссылками — это перебор, а если делать ссылки из участка текста, то они не так заметны, «https://» сразу настраивает на нужный контекст.
                                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                                              +4
                                                                                              А вы какой процессор использовали, чтобы оставить этот комментарий? На какой фабрике он был напечатан?
                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                  +2
                                                                                                  Ты в состоянии ответить на вопрос, на каком ты сейчас процессоре, и на какой фабрике он был произведён?
                                                                                                +1
                                                                                                Сейчас вполне себе можно выпустить одну модель Эльбруса, которая будет и разработана в РФ и произведена в РФ.
                                                                                                +1
                                                                                                Как я рад продвижению нашей архитектуре — только очень медленно, только слишком мало людей занимаются продвижением и интеграцией с производителями современного ПО и Игр.
                                                                                                Я считаю на такие нужды нужно закупить не пожалев денег 20-30 машин и раздать их в ВЕДУЩИИ студии ИГРОДЕВА и ПО! Эти деньги себя окупят СТОКРАТ! Учитывая как много денег вливается в пустой пиар и потемкинских деревень, можно выделить несколько миллионов на такую важную отрасль.
                                                                                                  +2
                                                                                                  Так что вам мешает это сделать? Или за чей счёт банке организовывать?
                                                                                                    +1
                                                                                                    Причем тут я? Как сказал чубайс «денег у нас не просто много, а очень много...».Как минимум можно выделить пару миллионов на продвижение платформы — 20-30 машин это копейки для гос бюджета, а вот сколько они пользы и медийности дадут.
                                                                                                    С про-хайтек просили машинку хотя бы на время у МЦСТ.Не дали.А канал помоему почьти миллионник.200-300к просмотров под видео регулярно.Плюс люди не просто продажники, а тесты пилят пусть и не мега профессионалы.
                                                                                                    Бачило просил — так и не дали, а дали сторонние вендоры которые делют СХД на эльбрусах.
                                                                                                    Никто же не просит супсидировать на миллиарды долларов здесь и сейчас как это делают амеры.
                                                                                                  0
                                                                                                  А есть возможность собрать бинарники для других эльбрусов и сказать какого они размера?
                                                                                                    0
                                                                                                    Сейчас пока нет такой возможности.
                                                                                                    0
                                                                                                    Насколько мне помнится с первого публичного релиза, который я гонял на виртуалке, ОС Эльбрус же и является Debian, только заточенным под наше, а не под apt?
                                                                                                      +1
                                                                                                      Это небольшой subset всех пакетов debian'а, вроде бы еще с патчами от МЦСТ сверху. Небольшой — потому что судя по официальным спискам там 2.3 тысячи пакетов доступно, а в Debian Stable — 60 с небольшим тысяч.

                                                                                                      Так как это Debian-based, то apt там вроде бы вполне себе на месте, ведь apt это все же CLI для удобной работы с пакетами.
                                                                                                        0
                                                                                                        А, точно. Забыл, что apt был, но стандартных реп не было, и почему то они у меня не захотели добавляться… Хотя наверно потому же, почему и в Deepin репы от Debian/Ubuntu если и добавить в список, то устанавливать из них без танцев с музыкой не получится.
                                                                                                          0
                                                                                                          Да не то чтоб танцев с музыкой, просто репозиторий не от твоего дистрибутива получает более низкий приоритет и нужно всего лишь добавить правильный pinning. Логика apt'а в это месте очень хорошо документирована на самом деле и добавление файлика — дело пары минут буквально.
                                                                                                      0
                                                                                                      Интересно, через какое время он потянет киберпанк с ртх на приемлемом уровне
                                                                                                        –2
                                                                                                        Примерно никогда. Ну или к 2077 году.
                                                                                                        –5
                                                                                                        какой бред 25 кадров, непонятны все эти пустые потуги когда есть готовые процессоры от amd и intel за ними ещё не удастся угнаться минимум пять лет, а через 8 лет уже надо будет на 16 лет ориентироваться…
                                                                                                          0
                                                                                                          Спасибо за статью!
                                                                                                          С обновлённым Vulkan количество кадров в секунду в игре War Thunder возросло в разы по сравнению с OpenGL и держалось в районе 60-70

                                                                                                          Интересная информация.

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

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