Vortex 3.0 նախագիծը, որը մշակում է բաց կոդով GPGPU՝ հիմնված RISC-V հրահանգների հավաքածուի ճարտարապետության վրա և նախատեսված է զուգահեռ հաշվարկների համար՝ օգտագործելով OpenCL API-ը և SIMT (մեկ հրահանգ, բազմակի թել) կատարման մոդելը, այժմ հասանելի է: Նախագիծը կարող է նաև օգտագործվել եռաչափ գրաֆիկայի հետազոտության և նոր GPU ճարտարապետությունների մշակման համար: Verilog-ում սխեմաները, սարքավորումների բլոկների նկարագրությունները, սիմուլյատորը, դրայվերները և ուղեկցող նախագծային փաստաթղթերը տարածվում են Apache 2.0 լիցենզիայի ներքո:
GPGPU-ն հիմնված է RISC-V ISA ստանդարտի վրա, որը ընդլայնվել է լրացուցիչ հրահանգներով՝ GPU-ի գործառույթները և թելերի կառավարումը աջակցելու համար: RISC-V հրահանգների հավաքածուի ճարտարապետության փոփոխությունները նվազագույնի են հասցվում, և հնարավորության դեպքում օգտագործվում են առկա վեկտորային հրահանգները: Լրացուցիչ հրահանգների թվում են՝ «tex»՝ տեքստուրայի մշակումը արագացնելու համար, vx_rast՝ ռաստերիզացման կառավարման համար, vx_rop՝ ֆրագմենտների, խորության և թափանցիկության մշակման համար, vx_imadd՝ բազմապատկման և գումարման գործողությունների համար, vx_wspawn, vx_split, vx_join, vx_tmc և vx_bar՝ SIMD շարժիչի կողմից զուգահեռաբար կատարվող թելերի խմբերի (ալիքային ճակատների) ակտիվացման համար:

Մշակվող GPGPU-ն աջակցում է 32 և 64-բիթանոց RISC-V RV32IMF և RV64IMAFD հրահանգների հավաքածուի ճարտարապետությունները և կարող է ներառել լրացուցիչ համատեղ օգտագործվող հիշողություն, L1, L2 և L3 քեշեր, ինչպես նաև կարգավորելի թվով միջուկներ, warps և threads: Յուրաքանչյուր միջուկ կարող է նաև ներառել կարգավորելի թվով ALU-ներ, FPU-ներ, LSU-ներ և SFU-ներ: Xilinx և Altera FPGA-ները կարող են օգտագործվել նախատիպերի ստեղծման համար, իսկ Verilator-ը (Verilog սիմուլյատոր), RTLSIM-ը (RTL սիմուլյացիա) և SimX-ը (ծրագրային սիմուլյացիա)՝ չիպերի սիմուլյացիայի համար:
Ծրագրերի մշակման համար առաջարկվում է գործիքակազմ, որը ներառում է PoCL-ի (OpenCL կոմպիլյատոր և գործարկման միջավայր), LLVM/Clang, GCC և Binutils-ի Vortex-հարմարեցված տարբերակները: Նախագիծը աջակցում է OpenCL 1.2 սպեցիֆիկացիային և իրականացնում է շեյդերների SPIR-V միջանկյալ ներկայացման աջակցություն՝ OpenCL թարգմանության միջոցով:
Vortex 3.0-ի փոփոխությունները ներառում են.
- Ավելացվել է ապարատային գրաֆիկական կույտ, որը ներառում է ռաստրացման, հյուսվածքային քարտեզագրման և ելքային միաձուլման (OM) բլոկներ: Mesa-ի համար մշակվել է Vulkan դրայվեր՝ vortexpipe-ը, որը հիմնված է իրականացված գրաֆիկական կույտի և lavapip ծրագրային ռաստրիզատորի վրա:
- Մեքենայական ուսուցման մոդելների կատարումը արագացնելու համար նախատեսված Tensor Core-ի հնարավորությունները ընդլայնվել են՝ ներդնելով կառուցվածքային նոսրության աջակցություն կշիռների մատրիցների սեղմման համար։
- WGMMA (warpgroup-level matrix multiplication) գործողությունը իրականացվել է մատրիցային բազմապատկման համար ասինխրոն ռեժիմում։
- Ավելացվել է DXA (տվյալների փոխանցման արագացման) շարժիչ՝ գլոբալ հիշողությունից տեղական հիշողություն տվյալների փոխանցումը արագացնելու համար։
- Ներդրվել է նոր ճարտարապետություն՝ հիմնված հրամանային պրոցեսորի (CP) և հաշվողական միջուկների ապարատային ժամանակացույցի (KMU - Kernel Management Unit) վրա, որը թույլ է տալիս հաշվողական թելերը ուղարկել չիպի կողմը։
- Առաջարկվում է նոր գործարկման ժամանակի գրադարան, որը գործում է ոչ արգելափակող ռեժիմով և ապահովում է աբստրակցիաներ, որոնք վերածվում են ասինխրոն կերպով կատարված սարքային հրամանների: Աջակցվում են հերթեր, իրադարձություններ, մոդուլներ և ասինխրոն արգելքների վրա հիմնված համաժամեցում՝ ժամանման/սպասման/իրադարձության սեմանտիկայով:
- Ավելացվել է RISC-V կրճատված հրահանգների (RVC) աջակցությունը։
- Ատոմային գործողությունների համար (Hardware Atomics) սարքային աջակցություն է ներդրվել։
- FPU-ն ամբողջությամբ վերաձևավորվել է, և ներդրվել են նոր բազմապատկիչ (Wallace-tree, Folded-radix) և գումարիչ (Kogge-Stone) բլոկներ։
- Ավելացվել է վիրտուալ հիշողության կույտ՝ հիմնված հիշողության կառավարման միավորի (MMU) վրա՝ 32-բիթանոց SV32 վիրտուալ հասցեավորման ճարտարապետության աջակցությամբ։
- Աջակցություն RISC-V Zicond ընդլայնման համար՝ պայմանական գործողությունների իրականացմամբ։
- Ինտեգրված ժամացույցի դարպաս:
- HIP (Heterogeneous Interface for Portability) լեզվի աջակցությունը իրականացվել է chipStar շրջանակի միջոցով, որը HIP-ը թարգմանում է SPIR-V-ի։
- Ապահովվել է GEM5 սիմուլյատորի հետ լիարժեք ինտեգրում, և ավելացվել է SimX սիմուլյատորի աջակցություն TLM (Transaction-Level Modeling) ճարտարապետության վրա։
- Ավելացվել է Synopsys և Yosys գործիքակազմերի աջակցությունը չիպերի արտադրության համար տրամաբանական սինթեզի համար, ինչպես նաև աջակցությունը ASAP7 (7 նմ), SAED14 (14 նմ) և NanGate (15 նմ) ստանդարտ տարրերի գրադարանների օգտագործման համար։
- Հղման գործիքակազմը թարմացվել է մինչև LLVM 20 և POCL 7.0։
Source: opennet.ru
