Железо и софт для тестов
Для оценки производительности векторных расширений RISC-V использовалась плата SpacemiT K3 Pico ITX. Это 16-ядерный чип, поддерживающий профиль RVA23, с ядрами X100/A100. Система была оснащена 16 ГБ ОЗУ и работала под управлением дистрибутива Bianbu 4.0 на базе ядра Linux 6.18 и компилятора GCC 15.2. Целью исследования стало измерение влияния активации расширения RVV 1.0 на скорость выполнения различных программных пакетов.
Проблема с отключением векторных инструкций
Изначально планировалось сравнить производительность с включенным и выключенным RVV через интерфейс sysfs /proc/sys/abi/riscv_v_default_allow. Однако на практике это оказалось невозможным: при отключении поддержки векторных инструкций система становилась полностью неработоспособной. Библиотеки libc в сборке Bianbu 4.0 содержат безусловные инструкции RVV, что приводит к ошибкам выполнения (illegal instructions) при попытке запустить любые бинарные файлы без поддержки векторов. В результате исследователям пришлось вручную отключать RVV в коде конкретных программ на этапе компиляции.
Методология и ограничения
В отличие от тестов AVX-512 для x86, где достаточно сбросить бит в идентификаторе процессора, здесь потребовалась ручная модификация патчей сборки. Также важно отметить, что статья не содержит данных об энергопотреблении. SoC SpacemiT K3 на данный момент не предоставляет метрик питания через стандартные интерфейсы Linux (sysfs, HWMON, PowerCap), поэтому анализ ограничен исключительно вычислительной производительностью.
Результаты производительности
Несмотря на сложности с методологией «вкл/выкл», тесты выявили существенный прирост скорости в приложениях, оптимизированных под RVV 1.0. Векторные инструкции позволяют обрабатывать большие объемы данных за такт, что критично для научных вычислений и обработки медиа. Ниже приведена сводка ключевых параметров тестовой конфигурации:
| Параметр | Значение |
|---|---|
Значение для экосистемы RISC-V
Эти тесты демонстрируют, что RISC-V перешел от базовой совместимости к высокопроизводительным вычислениям. Поддержка RVV 1.0 на SpacemiT K3 показывает, что архитектура способна конкурировать с традиционными решениями в задачах, требующих векторной обработки. Однако отсутствие инструментов для легкого отключения инструкций в пользовательском пространстве указывает на необходимость доработки системных библиотек и инструментов отладки для более гибкого управления производительностью.
Источник: Phoronix ↗
