LLVM նախագիծը ներկայացրեց HPVM 1.0-ը՝ CPU, GPU, FPGA և արագացուցիչների կոմպիլյատոր։

LLVM նախագծի մշակողները հրապարակել են HPVM 1.0 (հետերոգենական զուգահեռ վիրտուալ մեքենայի) կազմողի թողարկումը, որի նպատակն է պարզեցնել ծրագրավորման ծրագրավորման եւ CPUS- ի, GPUS, FPGAS եւ Domain- ի համար հատուկ ապարատային արագացուցիչների համար գործիքներ տրամադրելը (աջակցություն FGPA-ները և արագացուցիչները ներառված չեն 1.0 թողարկման մեջ): Ծրագրի կոդը բաշխվում է Apache 2.0 լիցենզիայի ներքո:

HPVM- ի հիմնական գաղափարը կազմել է զուգահեռ գործադիր ծրագրերի միասնական ներկայացում `կազմելու ժամանակ, որը կարող է օգտագործվել կատարման համար` օգտագործելով զուգահեռ հաշվարկներ, ներառյալ GPUS, վեկտորային ցուցումներ, FPGAS եւ տարբեր մասնագիտացված արագացուցիչ չիպեր: Ի տարբերություն այլ համակարգերի, HPVM- ն փորձել է համատեղել երեք հնարավորություններ, տարասեռական հաշվարկների կազմակերպման համար. Լեզուն եւ ապարատային անկախ միջանկյալ ներկայացուցչություն, վիրտուալ հրահանգներ սահմանված ճարտարապետություն (ISA) եւ գործարկման ժամանակացույց:

HPVM- ի թիրախային անկախ միջանկյալ ներկայացուցչությունը (IR) կառուցում է LLVM 9.0 միջանկյալ հրահանգների ներկայացուցչությունը եւ երկարացնում է այն հիերարխիկ տվյալների հոսքի գրաֆիկով `առաջադրանքների, տվյալների եւ խողովակաշարի մակարդակի զուգահեռ: HPVM միջանկյալ ներկայացումը ներառում է նաև վեկտորի հրահանգներ և ընդհանուր հիշողություն: Միջանկյալ ներկայացման օգտագործման հիմնական նպատակը կոդի արդյունավետ ստեղծումն է և տարասեռ համակարգերի օպտիմալացումը:

Վիրտուալ հրահանգների հավաքածու ճարտարապետությունը (ISA) թույլ է տալիս տեղափոխել զուգահեռ հաշվարկային ապարատների տարբեր տեսակների միջեւ եւ հնարավորություն է տալիս չկորցնել կատարումը, երբ տարբեր տարրեր օգտագործելիս տարբեր տարրեր օգտագործելիս: Վիրտուալ ISA-ն կարող է օգտագործվել նաև ունիվերսալ գործարկվող ծրագրի կոդ տրամադրելու համար, որը կարող է գործարկվել պրոցեսորների, GPU-ների, FPGA-ների և տարբեր արագացուցիչների միջոցով:

Զարգացման ներկա փուլում HPVM- ն առաջարկում է ծածկագրերի գեներատորներ, որոնք ունակ են թարգմանել դիմումների հանգույցները, օգտագործելով վիրտուալ ISA- ն, օգտագործելով NVIDIA GPUS (Cudnn and Opencl), Intel AVX վեկտորային հրահանգներ եւ Multi-Core X86 CPUS: Runtime- ում HPVM- ն կիրառում է հաշվողական գործընթացի պլանավորման ճկուն քաղաքականություն, որն իրականացվում է ինչպես ծրագրի տեղեկատվության (գրաֆիկական կառուցվածքի) հիման վրա, համակարգում առկա նպատակային հաշվարկային սարքերի կատարման համար կատարման համար անհատական ​​ծրագրի հանգույցների կազմման միջոցով:

Նշվում է, որ HPVM-ի օգտագործումը կարող է հասնել արտադրողականության զգալի աճի: HPVM թարգմանիչների աշխատանքը համեմատելի է ձեռքով գրված OpenCL կոդի հետ GPU-ների և վեկտորային հաշվողական սարքերի համար:

Նախադիտման առաջին թողարկման համեմատությամբ, HPVM 1.0-ը ներառում է Linear Algebra Tensor- ի գործողությունների աջակցություն, Pyortorch- ի եւ Keras- ի, Concolution օպերատորի մոտավորություններին, որոնք ինքնաբերաբար ընտրում են օպտիմալ կատարումը:

Source: opennet.ru

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