Доступен выпуск проекта Vortex 3.0, развивающего открытый GPGPU на базе архитектуры набора команд RISC-V, рассчитанный на выполнение параллельных вычислений с использованием API OpenCL и модели выполнения SIMT (Single Instruction, Multiple Threads). Проект также может быть использован при проведении исследований в области 3D-графики и при разработке новых архитектур GPU. Схемы, описания аппаратных блоков на языке Verilog, симулятор, драйверы и сопутствующая проектная документация распространяются под лицензией Apache 2.0.
Основу GPGPU составляет типовой ISA RISC-V, расширенный дополнительными инструкциями для поддержки функций GPU и управления потоками. Изменения в архитектуре набора команд RISC-V сведены к минимуму и по возможности используются уже имеющиеся векторные инструкции. Среди дополнительных инструкций: «tex» для ускорения обработки текстур; vx_rast для управления растеризацией, vx_rop для обработки фрагментов, глубины и прозрачности; vx_imadd для выполнения операции «умножить и сложить»; vx_wspawn, vx_split, vx_join, vx_tmc и vx_bar для активации групп потоков (wavefront), параллельно выполняемых SIMD Engine.

Развиваемый GPGPU поддерживает 32- и 64-разрядные архитектуры набора команд RISC-V RV32IMF и RV64IMAFD, и может включать опциональную разделяемую память, кэши уровней L1, L2 и L3, а также настраиваемое число ядер, блоков задач (warps) и потоков. В свою очередь для каждого ядра предусмотрена возможность включения настраиваемого числа ALU, FPU, LSU и SFU. Для создания прототипов могут использоваться FPGA Xilinx и Altera, а для симуляции работы чипа применяться Verilator (Verilog-симулятор), RTLSIM (симуляция RTL) и SimX (программная симуляция).
Для разработки приложений предлагается инструментарий, включающий адаптированные для работы с Vortex варианты PoCL (компилятор и runtime OpenCL), LLVM/Clang, GCC и Binutils. Проектом поддерживается спецификация OpenCL 1.2 и через трансляцию в OpenCL реализована поддержка промежуточного представления шейдеров SPIR-V.
Среди изменений в Vortex 3.0:
- Добавлен аппаратный графический стек, включающий блоки для растеризации, наложения текстур и слияния вывода (OM — Output Merger). Для Mesa на базе реализованного графического стека и программного растеризатора lavapipe подготовлен Vulkan-драйвер vortexpipe.
- Расширены возможности тензорного ядра, предназначенного для ускорения выполнения моделей машинного обучения, в котором реализована поддержка структурной разрежённости (structured sparsity) для сжатия весовых матриц.
- Реализована операция WGMMA (warpgroup-level matrix multiplication) для умножения матриц в асинхронном режиме.
- Добавлен движок DXA (Data Transfer Acceleration) для ускорения передачи данных из глобальной в локальную память.
- Реализована новая архитектура на базе процессора команд (CP, Command Processor) и аппаратного планировщика вычислительных ядер (KMU — Kernel Management Unit), позволяющая вынести на сторону чипа операции диспетчеризации вычислительных потоков.
- Предложена новая runtime-библиотека, работающая в неблокирующем режиме и предоставляющая абстракции, транслируемые в аппаратные асинхронно выполняемые команды. Поддерживаются очереди, события, модули и синхронизация на базе асинхронных барьеров с семантикой arrive/wait/event.
- Добавлена поддержка укороченных инструкций RISC-V (RVC).
- Реализована аппаратная поддержка атомарных операций (Hardware Atomics).
- Полностью переработан FPU и предложены новые блоки умножителей (Wallace-tree, Folded-radix) и сумматоров (Kogge-Stone).
- Добавлен стек виртуальной памяти на базе блока управления памятью (MMU) с поддержкой 32-битной архитектуры виртуальной адресации SV32.
- Поддержка RISC-V расширения Zicond c реализацией условных операций.
- Интегрировано управление тактовой частотой (clock gating).
- Реализована поддержка языка HIP (Heterogeneous Interface for Portability) через фреймворк chipStar, транслирующий HIP в SPIR-V.
- Обеспечена полноценная интеграция с симулятором GEM5 и добавлена поддержка симулятора SimX на архитектуре TLM (Transaction-Level Modeling).
- Добавлена поддержка инструментариев Synopsys и Yosys для синтеза логики для производства чипов, а также поддержка использования библиотек стандартных элементов ASAP7 (7nm), SAED14 (14nm) и NanGate (15nm).
- Эталонный инструментарий обновлён до LLVM 20 и POCL 7.0.
НОВОСТИ В КЫРГЫЗСТАНЕ