ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ VeriGPU Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ GPU Π½Π° Π΅Π·ΠΈΠΊΠ° Verilog

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ VeriGPU ΠΈΠΌΠ° Π·Π° Ρ†Π΅Π» Π΄Π° създадС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ GPU, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° описаниС ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΈ систСми Verilog. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° симулатора Verilog, Π½ΠΎ слСд ΠΏΡ€ΠΈΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π² готовност ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° производство Π½Π° Ρ€Π΅Π°Π»Π½ΠΈ Ρ‡ΠΈΠΏΠΎΠ²Π΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространяват ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT.

VeriGPU Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ спСцифично Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ процСсорно устройство (ASIC), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π·Π° ускоряванС Π½Π° изчислСнията, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със систСмитС Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ спомСнават осигуряванС Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π·Π° дълбоко машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ PyTorch ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° прилоТСния Π·Π° VeriGPU с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° HIP (Heterogeneous-Compute Interface) API. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Π½Π΅ сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° добавянСто Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ API, ΠΊΠ°Ρ‚ΠΎ SYCL ΠΈ NVIDIA CUDA.

GPU сС Ρ€Π°Π·Π²ΠΈΠ²Π° въз основа Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ инструкции RISC-V, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°Ρ‚Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ инструкции Π½Π° GPU Π΅ слабо ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с RISC-V ISA, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² ситуации, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½ΡŠΡ‚ Π½Π° GPU Π½Π΅ сС вписва Π² прСдставянСто Π½Π° RISC-V , Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с RISC-V Π½Π΅ Π΅ поставСна. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π΅ фокусирана Π²ΡŠΡ€Ρ…Ρƒ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° систСмитС Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, слСдоватСлно, Π·Π° Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ ΠΈ слоТността Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ‚Π° Π½Π° Ρ‡ΠΈΠΏΠ°, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° само Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая BF16 ΠΈ само ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚ΡŠΡ€ΡΠ΅Π½ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€. exp, log, tanh ΠΈ sqrt са Π½Π°Π»ΠΈΡ‡Π½ΠΈ.

ΠžΡ‚ Π²Π΅Ρ‡Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, GPU ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, APU (Accelerated Processing Unit) Π·Π° цСлочислСни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (β€œ+”, β€œ-β€œ, β€œ/”, β€œ*”), Π±Π»ΠΎΠΊ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая (β€œ+”, β€œ*” ) ΠΈ Ρ€Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. Π—Π° създаванС Π½Π° прилоТСния сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° асСмблСр ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° C++ ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° LLVM. ΠžΡ‚ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сС открояват ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС Π½Π° инструкции, ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° инструкции, SIMT ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Π° инструкция с мноТСство нишки).

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ VeriGPU Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ GPU Π½Π° Π΅Π·ΠΈΠΊΠ° Verilog


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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€