Vortex 2.2 beschikbaar, een open GPGPU op basis van de RISC-V-architectuur

De release van het Vortex 2.2-project is gepubliceerd, dat een open GPGPU ontwikkelt op basis van de RISC-V-architectuur, ontworpen voor het uitvoeren van parallelle berekeningen met behulp van de OpenCL API en het SIMT (Single Instruction, Multiple Threads) uitvoeringsmodel. Het project kan ook worden gebruikt voor onderzoek op het gebied van 3D-grafiek en bij het ontwikkelen van nieuwe GPU-architecturen. Schema's, beschrijvingen van hardwarecomponenten in Verilog, simulators, drivers en bijbehorende documentatie worden verspreid onder de Apache 2.0-licentie.

De basis van GPGPU bestaat uit een typische ISA RISC-V, aangevuld met enkele extra instructies die nodig zijn voor het ondersteunen van GPU-functies en het beheren van threads. Hierbij zijn de wijzigingen in de architectuur van de RISC-V-instructieset tot een minimum beperkt en worden waar mogelijk bestaande vectorinstructies gebruikt. Enkele opmerkelijke extra instructies zijn: 'tex' voor het versnellen van textuurverwerking, vx_rast voor het beheren van rasterisatie, vx_rop voor het verwerken van fragmenten, diepte en transparantie, vx_imadd voor de operatie 'vermenigvuldigen en optellen', vx_wspawn, vx_tmc en vx_bar voor het activeren van instructie- en threadfronten (wavefront, een set van draden die parallel uitgevoerd worden door de SIMD Engine), vx_split en vx_join.

Vortex 2.2 beschikbaar, een open GPGPU op basis van de RISC-V-architectuur

De ontwikkelde GPGPU ondersteunt de 32- en 64-bits RISC-V-instructiesets RV32IMF en RV64IMAFD, en kan optioneel gedeeld geheugen, caches van niveau L1, L2 en L3 bevatten, evenals een instelbaar aantal kernen, taakblokken (warps) en threads. Voor elke kern is er de mogelijkheid om een instelbaar aantal ALU, FPU, LSU en SFU in te schakelen. Voor prototyping kunnen FPGA's van Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 en Xilinx Versal VCK5000 worden gebruikt. Voor het simuleren van chipwerking kunnen Verilator (Verilog-simulator), RTLSIM (RTL-simulatie) en SimX (software-simulatie) worden toegepast.

Voor de ontwikkeling van toepassingen is er een toolkit beschikbaar, inclusief aangepaste versies van PoCL (compiler en runtime OpenCL) die zijn aangepast voor gebruik met Vortex, evenals LLVM/Clang, GCC en Binutils. Het project ondersteunt de OpenCL 1.2-specificatie en biedt ondersteuning voor de tussentijdse representatie van shaders SPIR-V via transformatie naar OpenCL. Voor grafische toepassingen op Vortex-technologieƫn wordt de open GPU Skybox ontwikkeld, die de grafische API Vulkan ondersteunt. Het prototype Skybox, gebouwd op de FPGA Altera Stratix 10 en voorzien van 32 kernen (512 threads), heeft bij een frequentie van 230 MHz een vulprestaties van 3,7 gigapixels per seconde (29,4 gigatransacties per seconde) behaald.

Onder de wijzigingen in versie Vortex 2.2:

  • De API vx_spawn_taskgroups is toegevoegd voor het starten van kernen die segmentierte uitvoering van 3D-taken ondersteunen.
  • Ondersteuning voor ZICOND is toegevoegd, een uitbreiding van de RISC-V-instructiesetarchitectuur die voorwaardelijke uitvoering van bewerkingen zonder vertakkingen mogelijk maakt.
  • De OpenCL-compiler is omgeschakeld naar taakplanning op het niveau van afzonderlijke threads (thread-level, elke thread voert zijn eigen taak onafhankelijk van andere threads uit) in plaats van taakgroepen (warp-level), zoals voorheen.
  • Ondersteuning voor JIT-compilatie en 64-bits kernen is toegevoegd in OpenCL.
  • Ondersteuning voor dynamische laadoperatie van Vortex-runtime is gerealiseerd.
  • Nieuwe documentatie voor de configuratie van Xilinx FPGA is aangeboden.
  • Synthetisering van logica is getest met behulp van Yosys-toolkit.
  • In hiĆ«rarchische flush-operaties en in write-back-modus is ondersteuning voor caches gerealiseerd.
  • De snelheid van scoreboard-verificatie en het werken met operanden op registeroverdrachtsniveau (RTL, Register Transfer Level) is geoptimaliseerd.
  • Ondersteuning voor de DRAM-simulator Ramulator 2.0 is toegevoegd.
  • De overgang naar nieuwe versies van Verilator 5.0 (SystemVerilog-simulator) en LLVM 18.0 is uitgevoerd, evenals de update van de toolkit op basis van CentOS 7.9.
  • In plaats van het continue integratiesysteem Travis CI is de GitHub CI-service gebruikt.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster