Достъпен е 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 за активиране на фронтовете на инструкциите и потоките в тях (wavefront, набор от нишки, изпълнявани паралелно от 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