Опубліковано Vortex 3.0, відкритий GPGPU на базі архітектури RISC-V

Доступний випуск проекту 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 з реалізацією умовних операцій.
  • Інтегровано керування тактовою частотою (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.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster