ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ VeriGPU Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ процСсор Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Verilog

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ VeriGPU Π΅ насочСн ΠΊΠΎΠ½ создавањС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ процСсор Ρ€Π°Π·Π²ΠΈΠ΅Π½ Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Verilog Π·Π° ΠΎΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° СлСктронски систСми. ΠŸΡ€Π²ΠΈΡ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС Ρ€Π°Π·Π²ΠΈΠ²Π° со помош Π½Π° Verilog симулатор, Π½ΠΎ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС Π·Π°Π²Ρ€ΡˆΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° производство Π½Π° вистински Ρ‡ΠΈΠΏΠΎΠ²ΠΈ. Π Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° МИВ.

VeriGPU Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½ ΠΊΠ°ΠΊΠΎ процСсор спСцифичСн Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° (ASIC) ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° прСсмСткитС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со систСмитС Π·Π° машинско ΡƒΡ‡Π΅ΡšΠ΅. ΠŸΠ»Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ компатибилност со Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π·Π° Π΄Π»Π°Π±ΠΎΠΊΠΎ машинско ΡƒΡ‡Π΅ΡšΠ΅ Π½Π° PyTorch ΠΈ моТност Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° VeriGPU со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° HIP (Ρ…Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½-ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€ΡΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ) API. Π’ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ API, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС SYCL ΠΈ NVIDIA CUDA.

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

ΠœΠ΅Ρ“Ρƒ вСќС достапнитС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΎΡ‚ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ процСсор, APU (Π•Π΄ΠΈΠ½ΠΈΡ†Π° Π·Π° Π·Π°Π±Ρ€Π·Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°) Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со Ρ†Π΅Π»ΠΈ Π±Ρ€ΠΎΠ΅Π²ΠΈ (β€ž+β€œ,β€œ-β€œ,β€œ/,β€œ*β€œ) ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° Π·Π°ΠΏΠΈΡ€ΠΊΠ° (β€ž+,β€œ ,”*”) ΠΈ Π±Π»ΠΎΠΊ Π½Π° Ρ€Π°Π·Π³Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅. Π—Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎΡ˜ Π½ΡƒΠ΄ΠΈ асСмблСр ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° C++ ΠΊΠΎΠ΄ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° LLVM. ΠŸΠΎΠΌΠ΅Ρ“Ρƒ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ моТности сС истакнуваат ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° инструкции, ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ инструкциска ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ SIMT (Single instruction multiple thread).

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ VeriGPU Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ процСсор Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Verilog


Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€