เป‚เบ„เบ‡เบเบฒเบ™ 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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™