Тестируем производительность КОМПАС-3D на Linux

Привет! С вами Станислав Ермохин, руководитель группы методического обеспечения в команде КОМПАС-3D.

Наша команда продолжает разработку КОМПАС-3D под ОС на базе ядра Linux. Мы всё ближе и ближе к релизу, который состоится в этом году. Правда, пока нам есть над чем работать, но система уже находится в наиболее стабильном состоянии, когда можно производить нагрузочное тестирование. Окончательными результатами тестирования мы поделимся чуть позже, добавив к ним результаты тестирования от наших пользователей после бета-тестирования.

Дальше будут данные сравнительного тестирования, полученные на тестовом стенде.

Особенность данного сравнения заключается в том, что тестировать мы будем не разное оборудование на одной ОС, а разные ОС на одном оборудовании.

Аппаратная часть:
CPU: Intel Core i9–10900K
RAM: 32 Gb
GPU: NVIDIA Quadro P2200 [GP106GL]
видеокарта у нас не сильно новая, но не потерявшая актутальности

Операционные системы:
Альт Рабочая станция 11 Бета
Astra Linux SE 1.8
РЕД ОС 8.0
Windows 10

КОМПАС-3D v24 TR (технический релиз)

Быстродействие мы будет сравнивать по FPS, и тут есть такой момент, что найти кроссплатформенную утилиту для считывания этого самого FPS нам не удалось, поэтому:

  • для ОС Windows будем использовать утилиту Fraps

  • для ОС на ядре Linux приложение MangoHud.

Если вы знаете кроссплатформенное приложение для снятия показаний FPS, то напишите нам его название в комментария. Заранее большое спасибо!

А для сбора информации о системе Linux используем утилиту inxi (правда, её нет в Astra Linux, но мы возьмём этот пакет из Debian).

Что нам inxi-S говорит об установленных системах:

Альт 11 Бета

System:

Host: host-57 Kernel: 6.12.12–6.12-alt1 arch: x86_64 bits: 64
Desktop: GNOME v: 47.4 Distro: ALT Workstation 11.0beta2

Astra Linux SE 1.8

System:
Host: astra-61484 Kernel: 6.1.90–1-generic arch: x86_64 bits: 64
Desktop: N/A Distro: Astra Linux 1.8_x86–64

РЕД ОС 8.0

System:
Host: localhost Kernel: 6.6.51–1.red80.x86_64×86_64 bits: 64
Desktop: MATE 1.28.1 Distro: RED OS release (8.0)

Команда inxi-G позволит нам получить данные по графической подсистеме. Данные по всем системам приводить не будем, там всё +/- одинаково и выглядит так:

Graphics:
Device-1: Intel CometLake-S GT2 [UHD Graphics 630] driver: i915 v: kernel
Device-2: NVIDIA GP106GL [Quadro P2200] driver: nouveau v: kernel
Display: x11 server: X.Org v: 1.21.1.7 driver: dri: nouveau gpu: nouveau
note: X driver n/a resolution: 1920×1080~75Hz
API: OpenGL v: 4.3 Mesa 22.3.6 renderer: NV136

Немного упорядочим данные:

Версия Linux

Графическая оболочка

Графический сервер

Альт 11 Бета

Kernel: 6.12.12–6.12-alt1

GNOME v: 47.4

X.Org v: 1.21.1.14

Astra Linux SE 1.8

6.1.90–1-generic arch

Fly

X.Org v: 1.21.1.7

РЕД ОС 8.0

6.6.51–1.red80.x86_64

MATE 1.28.1

X.Org 1.20.14

У нас разные ядра и разные графические оболочки. Интересно, как это повлияет на производительность графики?!

При этом, самое важное, что «из коробки» везде используется драйвер видеокарты nouveau — проект по созданию свободных драйверов для видеокарт компании Nvidia с поддержкой ускорения трёхмерной графики. Сейчас посмотрим, как он поддерживает видеокарты.

В качестве модели для тестирования используем сборку Двигателя АИ-14, на котором наши пользователи осваивают инструменты работы с системой КОМПАС-3D.

Рис. 1
Рис. 1

Компоненты всех уровней = 1706
Подсборки (*.a3d) = 122
Детали (*.m3d) = 1029
Библиотечные компоненты = 555

Оцениваем производительность и получаем такие данные, FPS:

Критерий

Альт 11 Бета

Astra Linux SE 1.8

РЕД ОС 8.0

Скорость вращения сборки

13

12

18–19

Скорость перемещения сборки

13

12

18

Скорость масштабирования сборки

12

10

13–16

Скорость перебора компонентов в Дереве модели

2–3

1–2

1–2

Скорость перемещения сборочного чертежа (6 видов)

3

3

3

Скорость масштабирования сборочного чертежа (6 видов)

3–4

2

3

Нельзя сказать, что это выдающиеся результаты, но они такие, какие есть на самом деле. Выбиваются здесь только данные для РЕД ОС: они для случаев вращения и перемещения модели выше в 1,5 раза, чем у Альт и Astra Linux.

После получения данных производим установку проприетарного драйвера NVIDIA. Здесь стоит отметить положительный момент, что качать его с сайта NVIDIA не нужно, все необходимые пакеты драйвера есть в репозиториях наших целевых ОС.

Процесс установки драйвера описывать не будем, так как если вы выбрали работу в Linux, то и с установкой драйвера тоже разберётесь. Установив драйвер, видим такую картину:

Graphics:
Device-1: Intel CometLake-S GT2 [UHD Graphics 630] driver: i915 v: kernel
Device-2: NVIDIA GP106GL [Quadro P2200] driver: nvidia v: 550.54.14
Display: x11 server: X.Org v: 1.21.1.7 driver: gpu: nvidia, nvidia-nvswitch
note: X driver n/a resolution: 2560×1440~60Hz
API: OpenGL v: 4.6.0 NVIDIA 550.54.14 renderer: Quadro P2200/PCIe/SSE2

В первую очередь для gpu используется драйвер nvidia, для поддержки OpenGL вместо MESA используется компонент из драйвера, и нас это полностью устраивает.

Повторно выполняем оценку производительности на нашей модели Двигателя АИ-14.

Рис. 2
Рис. 2

Добавим результаты к предыдущей таблице. Также в эту таблицу добавим данные по работе КОМПАС-3D в ОС Windows 10.

Критерий

Альт 11 Бета

Альт 11 Бета

Astra Linux SE 1.8

Astra Linux SE 1.8

РЕД ОС 8.0

РЕД ОС 8.0

Win 10

nouveau

nvidia

nouveau

nvidia

nouveau

nvidia

nvidia

Скорость вращения сборки

13

123

12

123

18–19

125

125

Скорость перемещения сборки

13

123

12

125

18

125

125

Скорость масштабирования сборки

12

18

10

18–22

13–16

18

19

Скорость перебора компонентов в Дереве модели

2–3

2–3

1–2

2–3

1–2

1–2

2

Скорость перемещения сборочного чертежа (6 видов)

3

53

3

46

3

41

34

Скорость масштабирования сборочного чертежа (6 видов)

3–4

18

2

18

3

18

20

Результат прироста производительности виден «невооруженным взглядом». Но если вы всё же взяли инструмент для анализа данных — калькулятор и прикинули, то получаем что:

  • рост скорости при вращении/перемещении модели сборки составил 6–8 раз;

  • рост скорости при перемещения чертежа в 12–15 раз.

Обратим внимание, что при масштабировании изображения модели и чертежа значение зафиксировалось на числе 18. Объяснить это достаточно просто. Со стандартными настройками КОМПАС-3D (как для модели, так и для чертежа) изменение масштаба изображения происходит с коэффициентом 1.2. То есть у нас изображение приближается/отдаляется каждый раз на 20%, скачкообразно. Если коэффициент изменить на 1.05, то изображение будет масштабироваться более плавно (и как следствие подрастет FPS), но при этом крутить колесо прокрутки мыши придётся дольше. Тут сразу становится актуальной фраза: вам шашечки или ехать?

Какие можно сделать выводы:

  1. Система КОМПАС-3D является аппаратно-зависимым приложением, в том числе и по видеокарте. Не стоит радоваться, если после установки ОС на ядре Linux монитор вам показывает цветное изображение графического интерфейса. Драйвера от сообщества могут подойти только для работы офисных приложений, а для работы КОМПАС-3D вам потребуется проприетарный драйвер от разработчика графического чипа.

  2. Как видно из последней таблицы, скорость работы версии под Linux равна работе версии под Windows. Чудес не бывает! Быстрее в Linux КОМПАС-3D работать не стал, но главнее тут то, что нет просадки по скорости в сравнении с Windows.

  3. А потому стоит проверить, поддерживается ли ваша «старенькая» или «очень новая» видеокарта драйверами от разработчика. Иначе вам придётся работать в режиме низкой производительности.

P.S. Мы в курсе, что в Linux-сообществе есть отдельные предубеждения относительно выбор видеокарты между AMD и NVIDIA и лучше выбирать AMD, потому что драйвер ampgpu встроен в ядро Linux.

Но придётся вас расстроить. Как показала практика, этот драйвер работает крайне нестабильно. Падает и тянет за собой КОМПАС-3D. В случае, если установить драйвер с сайта AMD, то такая ситуация не происходит. Там драйвер работает стабильно и производительно.

Возможно, это связано с тем, что, как и для видеокарт NVIDIA, по умолчанию используется MESA. А после установки проприетарного драйвера он заменятся на компонент от разработчиков AMD. Но, пока это только предположение, и наше тестирование продолжается в полной мере.

© Habrahabr.ru