Даступны выпуск праекта 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.
Крыніца: opennet.ru
