With LLVM 15 branched at pangunahing bukas na ngayon para sa LLVM 16, isa sa mga maagang pagbabago para sa susunod na ikot ng paglabas ng compiler na ito ay ang pagpapagana ng scalable vectorization bilang default para sa RISC-V na may mga sinusuportahang target para sa mga tagubilin ng RISC-V vector.

Binago ng developer ng LLVM na si Philip Reames ang scalable vectorization bilang default para sa mga sinusuportahang target na RISC-V na may mga extension ng Zve o V. Ipinaliwanag niya sa pagbabago:

Ang pagbabagong ito ay nagbibigay-daan sa vectorization (gamit lang ang scalable vectorization, ang mga fixed vector ay hindi pa pinapagana) para sa RISCV kapag ang mga tagubilin sa vector ay available para sa target na configuration.

Sa puntong ito, ang resultang configuration ay dapat na parehong stable (hal. walang mga pag-crash), at kumikita (ibig sabihin, ilang mga kaso kung saan ang mga scalar loops ay natalo sa mga vector), ngunit hindi magiging partikular na mahusay na nakatutok (ibig sabihin, naglalabas kami ng pinakamahusay na posible vector loop). Ang layunin ng pagbabagong ito ay ihanay ang pagsubok sa mga organisasyon at tiyaking tumutugma ang default na configuration sa kung ano ang ginagamit ng mga downstream nang mas malapit hangga’t maaari.

Ito ay naglalantad ng malaking halaga ng code na kung hindi man ay hindi naka-on bilang default, at sa gayon ay maaaring hindi pa ganap na naisagawa. Dahil doon, hindi inaasahan ang pagkakaroon ng mga isyu. Kung makakita ka ng mga isyu, pakitiyak na magsama ng maraming impormasyon hangga’t maaari kapag ibinabalik ang pagbabagong ito.

Dalawang araw na ang lumipas at hanggang ngayon ay wala pang nababalik, kaya sana ay maganda ito. Higit pang mga detalye para sa mga interesado sa pamamagitan ng reviews.llvm.org. Dahil ang pagbabagong ito ay nasa simula ng siklo ng pag-unlad ng LLVM 16, mayroon pa ring maraming oras upang pahusayin ang suporta ng RISC-V vectorization ng compiler bago ang matatag na paglabas hanggang sa bandang Marso.

Ang RISC-V”V”ay ang kumpletong vector math extension para sa royalty-free na arkitektura ng CPU na ito habang ang Zve ay isang”katamtaman”na subset nito na nilayon para sa mas maliliit na core sa loob ng mga naka-embed na device at micro-controller. Ang Vector Extension 1.0 ng RISC-V ay na-freeze mula noong nakaraang taon at itinuturing na sapat na matatag upang simulan ang software work. Ang RISC-V V 1.0 spec para sa mga interesado ay makikita sa pamamagitan ng GitHub.

Categories: IT Info