Доступний Vortex 2.0, відкритий GPGPU на базі архітектури RISC-V

Опубліковано другу редакцію проекту Vortex, що розвиває відкритий GPGPU на базі архітектури набору команд RISC-V, розрахований на виконання паралельних обчислень з використанням API OpenCL та моделі виконання SIMT (Single Instruction, Multiple Threads). Проект також може використовуватися при проведенні досліджень в області 3D-графіки та розробки нових архітектур GPU. Схеми, опис апаратних блоків на мові Verilog, симулятор, драйвери та супутня проектна документація поширюються під ліцензією Apache 2.0.

Основу GPGPU складає типовий ISA RISC-V, розширений деякими додатковими інструкціями, необхідними для підтримки функцій GPU та управління потоками. При цьому зміни в архітектурі набору команд RISC-V зведені до мінімуму і по можливості використовуються векторні інструкції. Схожий підхід застосовується у проекті RV64X, який також розвиває відкритий GPU на базі технологій RISC-V.

Доступний Vortex 2.0, відкритий GPGPU на базі архітектури RISC-V

Для графіки на технологіях Vortex розвивається відкритий GPU Skybox, який підтримує графічний API Vulkan. Прототип Skybox, створений на базі FPGA Altera Stratix 10 і включає 32 ядра (512 потоків), дозволив при частоті 230 MHz досягти продуктивності заливки в 3.7 гігапікселів в секунду (29.4 гігатранзакції в секунду). Зазначається, що це перший відкритий GPU з програмною та апаратною реалізацією, що підтримує Vulkan.

Основні особливості Vortex:

  • Підтримка 32- та 64-розрядних архітектур набору команд RISC-V RV32IMF та RV64IMAFD.
  • Кількість ядер, блоків завдань (warps) і потоків, що настроюється.
  • Кількість ALU, FPU, LSU і SFU для кожного ядра.
  • Ширина видачі конвеєра (pipeline issue width), що настроюється.
  • Опціональна пам'ять, що розділяється, і кеші рівнів L1, L2 і L3.
  • Підтримка специфікації OpenCL 1.2.
  • Можливість реалізації на базі FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 та Xilinx Versal VCK5000.
  • Розширені інструкції: «tex» для прискорення обробки текстур, vx_rast для керування розтеризацією, vx_rop для обробки фрагментів, глибини та прозорості, vx_imadd для виконання операції «помножити і скласти», vx_wspawn, vx_tmc та vx_bar для активації фронтів інструкцій та потоків у них (wa , набір ниток, паралельно виконуваних SIMD Engine), vx_split та vx_join.
  • Підтримка проміжного подання шейдерів SPIR-V реалізована через трансляцію OpenCL.
  • Для розробки програм пропонується інструментарій, що включає адаптовані для роботи з Vortex варіанти PoCL (компілятор та runtime OpenCL), LLVM/Clang, GCC та Binutils.
  • Підтримується симуляція роботи чіпа за допомогою Verilator (Verilog-симулятор), RTLSIM (симуляція RTL) та SimX (програмна симуляція).

Серед змін у версії Vortex 2.0:

  • Проведено оптимізацію мікроархітектури.
  • Додано підтримку 64-розрядної архітектури набору команд RISC-V RV64IMAFD.
  • Додана можливість реалізації на базі FPGA Xilinx.
  • Додана підтримка LLVM 16 та Ubuntu 20.04.
  • Проведено рефакторинг та внесено виправлення недоробок, виявлених при оцінці якості.

Джерело: opennet.ru

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