Как стать автором
Обновить

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

Интересно, что в тесте Ray tracing ARM/MacOS обходит ARM/Linux примерно на 24%. При этом в абсолютных "попугаях" Rosetta и Exagear почти равны. Откуда такая разница?

Ответ на второй вопрос проще - ExaGear лучше оптимизирует код, поэтому итоговая цифра оказывается близкой к Rosetta 2. А вот на первый вопрос точно ответить сложно, для этого надо существенно глубже залезть в MacOSовскую версию и разобраться, что там компилятор наделал. Скорее всего различие возникло из-за различия стандартных библиотек на MacOs и Linux, но это гипотеза

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

В exagear в данных запусках нет никакой офлайн трансляции. Все затраты на трансляцию увеличивают время работы теста. То есть тут только runtime трансляция.

В Rosetta 2, насколько я знаю, гибрид SBT/DBT, это учитывалось при сравнении?

Exagear использовал только DBT. Rosetta бралась как есть. Если она и использует SDT, то это только ей в плюс дало бы.

Для arm64 в линуксе еще есть box64, который позволяет запускать программы для amd64. Или эта программа из другого разряда?

Будет ли хуавеевская программа доступна для других платформ арм? Или может быть даже открыты исходники?

Или эта программа из другого разряда?

Да, можно и так сказать. box64 исторически был заточен на запуск игр на ARM платформе. Там применяются немного другие подходы. Т.е. это в целом в ту же степь, но всё же отличия существенные. Я не уверен, что там те же Spec CPU 2017 можно нормально запустить по итогу.

Будет ли хуавеевская программа доступна для других платформ арм? Или может быть даже открыты исходники?

В перспективе такой вариант возможен. Но пока только для платформ от Huawei.

Не особо много я и понял из данной статьи. Но меня смущает то, что ExaGear "от Huawei" не работает на андроид устройствах от Huawei. Подскажите, с чем связано такое ограничение?

Маленькое замечание. Не хватает теста 403.gcc из SPEC CPU 2006.

Результаты ExaGear удивляют, что так прилично превзошли Rosetta. Но если эффективность ExaGear уже 90% на SPEC 2017 для M1, тогда существенного потенциала для дальнейшего роста эффективности там уже нет.

Маленькое замечание. Не хватает теста 403.gcc из SPEC CPU 2006.

Зоркий глаз!) Там на сборке под MacOS вылез сегфолт из-за баги коде самого теста. Не стали с этим заморачиваться и просто выкинули.

 тогда существенного потенциала для дальнейшего роста эффективности там уже нет

Если разговор про Розетту, то потенциал там примерно к 100% стремится. Но это очень сложная задача, конечно же, так как каждый следующий процент перфа будет даваться всё сложнее и сложнее

Любопытные результаты. Спасибо за статью.


Смущает только выборочное приведение тестов SPEC, что наводит на мысли о черрипикинге (хотя этим страдают абсолютно все обзоры), и большая разница эффективности между ARM64 Linux (VM) и ARM64 WSL, которой, на мой дилетанский взгляд, не должно быть вообще.


Ну и было бы интересно увидеть, какое решение (Rosetta 2 vs. ExaGear) потребляет больше памяти для одних и тех же задач, а также посмотреть на производительность JIT, например в браузерных тестах. Если такие сравнения уже делались, поделитесь, пожалуйста ссылками.

Смущает только выборочное приведение тестов SPEC, что наводит на мысли о черрипикинге

Вопрос о чём, о том, что фортрановские тесты исключены? Там причина единственная- их надо было отдельно собирать через flang. Ковыряться с этим и тратить время просто посчитали излишним, нам же ещё и работать надо. На том же Anandtech'e точно такие же результаты приведены без фортрановских тестов. Так что всё честно, никакого черрипикинга.

Ну и было бы интересно увидеть, какое решение (Rosetta 2 vs. ExaGear) потребляет больше памяти для одних и тех же задач, а также посмотреть на производительность JIT, например в браузерных тестах.

Для тестов памяти надо отдельно заморачиваться. А т.к. обычно она не является главной проблемой, то особо нет интереса для такого рода замеров нет. Все статьи по бинарке обычно именно про перформанс кода, т.к. это самое сложное.

Что касается JIT и браузерных тестов - это, безусловно, интересные сравнения. Тут правда возникают опять проблемы с идентичностью окружений (даже для спеков вылезло немало проблем), но они в каком-то приближении решаемы. Возможно, в будущем опубликуем результаты таких замеров.

Для тестов памяти надо отдельно заморачиваться. А т.к. обычно она не является главной проблемой, то особо нет интереса для такого рода замеров нет. Все статьи по бинарке обычно именно про перформанс кода, т.к. это самое сложное.

Это может быть важным параметром, если ExaGear, допустим, потребляет 2x RAM от нативного приложения, когда стоит выбор поставить x86-сервер или более дешёвый ARM-сервер с транслятором.


А по поводу разницы эффективности в Linux VM под macOS и WSL, у вас нет идей, что к этому приводит? Разница самих процессоров?

Вопрос про разницу не очень понял, там вроде результаты достаточно похожи. Или имеется ввиду, что большие различия на Mac Mini и Huawei MateBook E ? Так там 2 разных процессора стоят совершенно, понятно что цифры разные.

Я про вот эту разницу.
Exagear efficiency (Geekbench, SPEC2017int, SPEC2017fp) под Linux VM на M1:
82.4%, 91.6%, 86.1%
Под WSL (тут же тестируется WSL2, который по факту тот же Linux VM?) на Qualcomm:
70.9%, 81.9%, 74.3%


Всё-таки больше 10% дополнительного провала производительности при переходе на Windows-хост.

А, ну так там есть в тексте по этому поводу следующая ремарка:

В запусках ExaGear в окружении WSL обнаружилась проблема, что WSL не предоставляет используемые нами для профилирования таймеры, из-за чего не включается режим дооптимизации кода и ExaGear не демонстрирует максимальные цифры производительности. Потери скорости в таком случае можно оценить в 10-20% в зависимости от бенчмарка

Т.е. у нас под WSL не работает последний уровень оптимизации из-за этого. А так цифры должны быть примерно такими же, как и на M1, конечно же.

Вот этот момент проигнорировал, потому что не понял, что за дооптимизация.
Можете чуть подробнее рассказать, про эту функциональность? Это оффлайн-режим вроде PGO, отрабатывыающий между запусками, или перекомпиляция (перетрансляция) кусков кода "на лету" по рантайм-метрикам?

Это второе. На основе профиля выделяются горячие участки кода и они перекомпилируются с помощью самого последнего уровня оптимизатора с максимальными настройками.

А давно exagear продали huawei? Толком нигде информации нет, что с eltech?

Макбук можно в любом городе купить, microsoft эмуляцию можно даже на raspberry pi 4 запустить.

Как дела с доступностью вашей технологии для конечного пользователя?

Спасибо!

@Armmasterприветсвую! Будет ли Huawei развивать мобильную ветку Exagear? Т.е. Exagear Windows/Exagear RPG/Exagear Strategy? Сейчас опенсоурсное комьюнити пытется создать эмулятор x86 (к примеру box86/box64), но работают они очень сыро, и в целом принцип работы другой. Очень хотелось бы увидеть реально стоящии эмулятор Windows среды на Android.

К сожалению, таких планов пока нет.

ArmV8.7, которая официально была принята и опубликована только осенью 2020-го года. Причём существенная часть этого расширения является ничем иным, как аппаратной поддержкой двоичной трансляции, призванной упростить трансляцию некоторых операций из архитектуры x86

Не подскажите, какие именно это расширения? Enhanced Translation Synchronization?

Например, FEAT_AFP

Зарегистрируйтесь на Хабре, чтобы оставить комментарий