RADV Vulkan վարորդը փոխվել է ACO shader կոմպիլյացիայի հետնամասն օգտագործելու համար

Mesa 20.2 թողարկումը ձևավորելու համար օգտագործվող կոդերի բազայում, իրականացվել է միացնելով RADV-ն՝ Vulkan դրայվերը AMD չիպերի համար, որպեսզի օգտագործի լռելյայն հետնամասը շեյդերների կազմման համար:ACO«, որը մշակվում է Valve-ի կողմից՝ որպես LLVM shader կոմպիլյատորի այլընտրանք: Այս փոփոխությունը կբերի խաղի կատարողականի բարձրացման և գործարկման ժամանակի կրճատման: Հին հետնամասը վերադարձնելու համար տրամադրվում է «RADV_DEBUG=llvm» միջավայրի փոփոխականը:

RADV դրայվերը նոր հետին պլանի անցնելը հնարավոր դարձավ այն բանից հետո, երբ ACO-ն ֆունկցիոնալության մեջ հավասարեցրեց AMD-ի կողմից մշակված հին հետին պլանի հետ AMDGPU դրայվերի համար, որը շարունակում է օգտագործվել RadeonSI OpenGL դրայվերում: Փորձարկում Valve-ի կողմից ցույց տվեցոր ACO-ն կոմպիլյացիայի արագությամբ գրեթե երկու անգամ ավելի արագ է, քան AMDGPU shader կոմպիլյատորը և ցույց է տալիս FPS-ի աճ որոշ խաղերում, երբ աշխատում է RADV դրայվերով համակարգերում:

RADV Vulkan վարորդը փոխվել է ACO shader կոմպիլյացիայի հետնամասն օգտագործելու համար

RADV Vulkan վարորդը փոխվել է ACO shader կոմպիլյացիայի հետնամասն օգտագործելու համար

ACO backend-ը միտված է ապահովելու կոդերի ստեղծում, որը հնարավորինս օպտիմալ է խաղային հավելվածների շեյդերների համար, ինչպես նաև հասնելու շատ բարձր կոմպիլյացիայի արագության: ACO-ն գրված է C++-ով, նախագծված է JIT կոմպիլյացիան մտքում և օգտագործում է արագ կրկնվող տվյալների կառուցվածքներ՝ խուսափելով ցուցիչի վրա հիմնված կառուցվածքներից: Կոդի միջանկյալ ներկայացումն ամբողջությամբ հիմնված է SSA-ի (Static Single Assignment) վրա և թույլ է տալիս ռեգիստրի տեղաբաշխում՝ ճշգրիտ նախապես հաշվարկելով ռեգիստրը՝ կախված ստվերից:

Հավելում. Այս պահին ACO-ն աշխատում է միայն Mesa RADV Vulkan վարորդի համար: Բայց ACO մշակողները հաստատեց, որ նրանց հաջորդ քայլը կլինի սկսել աշխատանքը ACO-ի հնարավորությունների ընդլայնման ուղղությամբ՝ աջակցություն տրամադրելու RadeonSI OpenGL դրայվերին, որպեսզի ապագայում այս դրայվերի համար ACO-ն կարողանա փոխարինել լռելյայն LLVM shader կոմպիլյատորին:

Source: opennet.ru

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