ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Vortex 2.1, ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ 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.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