Обявена е версия Vortex 2.1, отворен GPGPU, базиран на архитектурата RISC-V

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

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

Обявена е версия Vortex 2.1, отворен GPGPU, базиран на архитектурата RISC-V

Основни характеристики на 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 се развива отворен GPU Skybox, който поддържа графичния API Vulkan. Прототипът Skybox, създаден на базата на FPGA Altera Stratix 10 и включващ 32 ядра (512 потока), е постигнал производителност при честота 230 MHz от 3.7 гигапиксела в секунда (29.4 гигатранзакции в секунда). Забелязва се, че това е първият отворен GPU с софтуерна и хардуерна реализация, който поддържа Vulkan.

Сред промените в версия Vortex 2.1:

  • Добавен е API spawn_taskgroups за стартиране на ядра, използващи локална памет и поддържащи поставянето на бариери в паметта.
  • Предложено е ново разширение за създаване на преносими (relocatable) бинарни ядра.
  • В API за управление на паметта са добавени извиквания vx_mem_reserve, vx_mem_access и vx_mem_address.
  • Добавен е нов runtime API vx_check_occupancy.
  • В драйвера за GPU е добавена опция за проверка на OpenCL тестовете на локалния GPU.
  • Добавени са OpenCL тестове, използващи локална памет (psum, sgemm2, sgemm3).
  • Добавени са специално адаптирани за Vortex редакции на библиотеките libc и librt.
  • Добавена е поддръжка за сливане на съседни свободни блокове памет (memory coalescing).
  • Извършена е оптимизация на микроархитектурата.
  • Добавен е нов скрипт за изграждане, който отделя изходните файлове от каталога за изграждане.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster