VeriGPU նախագիծը մշակում է բաց GPU Verilog լեզվով

VeriGPU նախագիծը նպատակ ունի ստեղծել բաց GPU, որը մշակվել է Verilog էլեկտրոնային համակարգերի նկարագրության և մոդելավորման լեզվով: Սկզբում նախագիծը մշակվում է Verilog սիմուլյատորի միջոցով, սակայն այն պատրաստության հասցնելուց հետո այն կարող է օգտագործվել իրական չիպեր արտադրելու համար։ Ծրագրի մշակումները բաշխվում են MIT լիցենզիայի ներքո:

VeriGPU-ն դիրքավորված է որպես հավելվածի հատուկ մշակման միավոր (ASIC), որը օպտիմիզացված է մեքենայական ուսուցման համակարգերի հետ կապված հաշվարկներն արագացնելու համար: Ծրագրերում նշվում է PyTorch խորը մեքենայական ուսուցման շրջանակի հետ համատեղելիության ապահովումը և VeriGPU-ի համար հավելվածների մշակման հնարավորությունը՝ օգտագործելով HIP (Հետերոգեն-Հաշվարկային ինտերֆեյս) API: Հետագայում չի բացառվում աջակցության ավելացումը այլ API-ների համար, ինչպիսիք են SYCL-ը և NVIDIA CUDA-ն։

GPU-ն զարգանում է RISC-V հրահանգների հավաքածուի հիման վրա, սակայն GPU-ի հրահանգների հավաքածուի ներքին ճարտարապետությունը վատ է համատեղելի RISC-V ISA-ի հետ, քանի որ այն իրավիճակներում, երբ GPU-ի դիզայնը չի տեղավորվում RISC-V ներկայացման մեջ: , RISC-V-ի հետ համատեղելիությունը պահպանելու խնդիր դրված չէ: Մշակումը կենտրոնացած է մեքենայական ուսուցման համակարգերի համար անհրաժեշտ հնարավորությունների վրա, հետևաբար, չիպի մատրիցի չափն ու բարդությունը նվազեցնելու համար օգտագործվում է միայն BF16 լողացող կետի ձևաչափը, և միայն լողացող կետով գործողություններ, որոնք պահանջարկ ունեն մեքենայական ուսուցման համար, ինչպիսիք են. exp, log, tanh and sqrt, հասանելի են։

Արդեն հասանելի բաղադրիչներից GPU կարգավորիչը, APU (արագացված մշակման միավոր) ամբողջ թվով գործողությունների համար («+», «-», «/», «*»), լողացող կետով գործողությունների բլոկ («+», «*»): ) և ճյուղավորվող միավոր։ Հավելվածներ ստեղծելու համար առաջարկվում է assembler և աջակցություն LLVM-ի վրա հիմնված C++ կոդի կազմման համար։ Նախատեսված հատկանիշներից առանձնանում են հրահանգների զուգահեռ կատարումը, տվյալների և հրահանգների հիշողության քեշավորումը, SIMT գործողությունները (Single instruction multiple thread):

VeriGPU նախագիծը մշակում է բաց GPU Verilog լեզվով


Source: opennet.ru

Добавить комментарий