Vortex 3.0, เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” GPGPU เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ RISC-V, เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ

ะ”ะพัั‚ัƒะฟะตะฝ ะฒั‹ะฟัƒัะบ ะฟั€ะพะตะบั‚ะฐ 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

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster