Projekt VeriGPU razvija odprt GPU v jeziku Verilog

Namen projekta VeriGPU je ustvariti odprt GPU, razvit v jeziku za opis in modeliranje elektronskih sistemov Verilog. Sprva se projekt razvija s simulatorjem Verilog, ko pa ga pripravimo, ga lahko uporabimo za izdelavo pravih čipov. Razvoj projekta se distribuira pod licenco MIT.

VeriGPU je postavljen kot aplikacijsko specifična procesna enota (ASIC), optimizirana za pospeševanje izračunov, povezanih s sistemi strojnega učenja. Načrti omenjajo zagotavljanje združljivosti z ogrodjem globokega strojnega učenja PyTorch in možnost razvoja aplikacij za VeriGPU z uporabo HIP (heterogenega računalniškega vmesnika) API-ja. V prihodnosti ni izključena dodana podpora za druge API-je, kot sta SYCL in NVIDIA CUDA.

GPE se razvija na podlagi nabora ukazov RISC-V, vendar je nastala notranja arhitektura nabora ukazov GPE slabo združljiva z RISC-V ISA, saj v situacijah, ko zasnova GPE ne ustreza predstavitvi RISC-V, , naloga vzdrževanja združljivosti z RISC-V ni postavljena. Razvoj je osredotočen na zmožnosti, potrebne za sisteme strojnega učenja, zato se za zmanjšanje velikosti in kompleksnosti matrike čipa uporablja samo format s plavajočo vejico BF16 in samo operacije s plavajočo vejico, ki so potrebne za strojno učenje, kot npr. exp, log, tanh in sqrt so na voljo.

Od komponent, ki so že na voljo, krmilnik GPU, APU (Accelerated Processing Unit) za celoštevilske operacije (“+”, “-”, “/”, “*”), blok za operacije s plavajočo vejico (“+”, “*”). ) in enoto za razvejanje. Za ustvarjanje aplikacij je na voljo asembler in podpora za prevajanje kode C++, ki temelji na LLVM. Od načrtovanih lastnosti izstopajo vzporedno izvajanje ukazov, predpomnjenje podatkov in pomnilnika ukazov, SIMT operacije (Single instruction multiple thread).

Projekt VeriGPU razvija odprt GPU v jeziku Verilog


Vir: opennet.ru

Dodaj komentar