ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ VeriGPU Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ GPU Π½Π° языкС Verilog

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ VeriGPU Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° созданиС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ GPU, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° языкС описания ΠΈ модСлирования элСктронных систСм Verilog. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ разрабатываСтся с использованиСм симулятора Verilog, Π½ΠΎ послС довСдСния Π΄ΠΎ готовности смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для производства Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ². Наработки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

VeriGPU позиционируСтся ΠΊΠ°ΠΊ спСциализированный процСссор (ASIC), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для ускорСния вычислСний, связанных с систСмами машинного обучСния. Π’ ΠΏΠ»Π°Π½Π°Ρ… упоминаСтся обСспСчСниС совмСстимости с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Π³Π»ΡƒΠ±ΠΈΠ½Π½ΠΎΠ³ΠΎ машинного обучСния PyTorch ΠΈ рСализация возмоТности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для VeriGPU с использованиСм API HIP (Heterogeneous-Compute Interface). Π’ дальнСйшСм Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… 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 (Single instruction multiple thread).

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ VeriGPU Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ GPU Π½Π° языкС Verilog


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