Vortex 3.0, GPGPU с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° RISC-V, бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Vortex 3.0, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° GPGPU с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ инструкции RISC-V ΠΈ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ изчислСния, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ OpenCL API ΠΈ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° изпълнСниС SIMT (Single Instruction, Multiple Threads), Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π·Π° 3D Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ изслСдвания ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ GPU Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ. Π‘Ρ…Π΅ΠΌΠΈΡ‚Π΅, описанията Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ във Verilog, ΡΠΈΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ ΡΡŠΠΏΡŠΡ‚ΡΡ‚Π²Π°Ρ‰Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Π° докумСнтация сС разпространяват ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0.

GPGPU Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° стандартния RISC-V ISA, Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ инструкции Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° GPU ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° нишки. ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° RISC-V Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ инструкции са свСдСни Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ инструкции сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ възмоТно. Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ инструкции Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚: "tex" Π·Π° ускоряванС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° тСкстури; vx_rast Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° растСризацията; vx_rop Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ, Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π° ΠΈ прозрачност; vx_imadd Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅; vx_wspawn, vx_split, vx_join, vx_tmc ΠΈ vx_bar Π·Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€ΡƒΠΏΠΈ ΠΎΡ‚ нишки (вълнови Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ²Π΅), изпълнявани ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΎΡ‚ SIMD Engine.

Разработваният GPGPU ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° 32- ΠΈ 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈ RISC-V RV32IMF ΠΈ RV64IMAFD Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ с Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ инструкции ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»Π½Π° сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚, L1, L2 ΠΈ L3 кСш ΠΏΠ°ΠΌΠ΅Ρ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ Π±Ρ€ΠΎΠΉ ядра, warp-ΠΎΠ²Π΅ ΠΈ нишки. Всяко ядро ​​моТС ΡΡŠΡ‰ΠΎ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ Π±Ρ€ΠΎΠΉ ALU, FPU, LSU ΠΈ SFU. FPGA Π½Π° Xilinx ΠΈ Altera ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° създаванС Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ, Π° Verilator (Verilog симулатор), RTLSIM (RTL симулация) ΠΈ SimX (софтуСрна симулация) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° симулация Π½Π° Ρ‡ΠΈΠΏΠΎΠ²Π΅.

Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° прилоТСния сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ към Vortex вСрсии Π½Π° PoCL (ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ ΠΈ срСда Π·Π° изпълнСниС Π½Π° OpenCL), LLVM/Clang, GCC ΠΈ Binutils. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° спСцификацията OpenCL 1.2 ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡ‚ΠΎ прСдставянС Π½Π° ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈΡ‚Π΅ SPIR-V Ρ‡Ρ€Π΅Π· транслация към OpenCL.

ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ във Vortex 3.0 Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚:

  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ стСк, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° растСризация, ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π΅ Π½Π° тСкстури ΠΈ сливанС Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄ΠΈ (OM). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π΅ Vulkan Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, vortexpipe, Π·Π° Mesa, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° имплСмСнтирания Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ стСк ΠΈ софтуСрния растСризатор lavapipe.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Tensor Core, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π΄Π° ускорят ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, са Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° структурирана разрСдСност Π·Π° компрСсиранС Π½Π° Ρ‚Π΅Π³Π»ΠΎΠ²Π½ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†ΠΈ.
  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ‚Π° WGMMA (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ warpgroup) Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π·Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†ΠΈ Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ DXA (Data Transfer Acceleration) Π΅Π½Π΄ΠΆΠΈΠ½ Π·Π° ускоряванС Π½Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π³Π»ΠΎΠ±Π°Π»Π½Π°Ρ‚Π° към Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚.
  • Π’Π½Π΅Π΄Ρ€Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ процСсор (CP) ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π΅Π½ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ Π½Π° изчислитСлни ядра (KMU - Kernel Management Unit), която позволява диспСчиранСто Π½Π° изчислитСлни нишки към страната Π½Π° Ρ‡ΠΈΠΏΠ°.
  • ΠŸΡ€Π΅Π΄Π»Π°Π³Π° сС Π½ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° изпълнСниС, която Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ ΠΈ прСдоставя абстракции, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² асинхронно изпълнявани Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС опашки, ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ синхронизация, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° асинхронни Π±Π°Ρ€ΠΈΠ΅Ρ€ΠΈ със сСмантика β€žΠΏΡ€ΠΈΡΡ‚ΠΈΠ³Π°Π½Π΅/Ρ‡Π°ΠΊΠ°Π½Π΅/ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅β€œ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΈ инструкции (RVC) Π½Π° RISC-V.
  • Π’Π½Π΅Π΄Ρ€Π΅Π½Π° Π΅ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π°Ρ‚ΠΎΠΌΠ½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Hardware Atomics).
  • FPU Π΅ напълно ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΈ са въвСдСни Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Wallace-tree, Folded-radix) ΠΈ сумиранС (Kogge-Stone).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ стСк ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° (MMU) с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° 32-Π±ΠΈΡ‚ΠΎΠ²Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΎ адрСсиранС SV32.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ RISC-V Zicond с имплСмСнтация Π½Π° условни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΎ синхронизиранС Π½Π° часовника.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Π΅Π·ΠΈΠΊΠ° HIP (Heterogeneous Interface for Portability) Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Ρ‡Ρ€Π΅Π· Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° chipStar, която ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π° HIP Π² SPIR-V.
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ пълна интСграция със симулатора GEM5 ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° симулатора SimX Π²ΡŠΡ€Ρ…Ρƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° TLM (ΠœΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° инструмСнтариуми Synopsys ΠΈ Yosys Π·Π° логичСски синтСз Π·Π° производство Π½Π° Ρ‡ΠΈΠΏΠΎΠ²Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ със стандартни Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ASAP7 (7nm), SAED14 (14nm) ΠΈ NanGate (15nm).
  • РСфСрСнтният инструмСнтариум Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΄ΠΎ LLVM 20 ΠΈ POCL 7.0.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с DDoS Π·Π°Ρ‰ΠΈΡ‚Π°, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΡƒΠ΅Π± хостинг със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS Π°Ρ‚Π°ΠΊΠΈ, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster