HPVM 2.0, CPU, GPU, FPGA жана аппараттык акселераторлор үчүн компилятор жарыяланды

LLVM долбоору гетерогендик системалар үчүн программалоону жөнөкөйлөштүрүүгө жана CPU, GPU, FPGA жана доменге тиешелүү аппараттык акселераторлор үчүн кодду түзүү куралдарын камсыз кылууга багытталган компилятордун HPVM 2.0 (Гетерогендүү параллелдик виртуалдык машина) чыгарылышын жарыялады. Долбоордун коду Apache 2.0 лицензиясы боюнча таратылат.

Гетерогендүү параллелдүү системалар үчүн программалоо бир эле системада параллелизмге жетүү үчүн ар кандай моделдерди (CPU өзөктөрү, вектордук инструкциялар, GPU ж.б.) пайдаланган компоненттердин болушу менен татаалдашат. Ар бир система бул компоненттердин өзүнүн комбинациясын колдонот. HPVM долбоорунун негизги идеясы компиляциялоодо параллелдүү аткарылуучу программалардын бирдиктүү өкүлчүлүгүн пайдалануу болуп саналат, алар параллелдүү эсептөөлөрдү колдогон ар кандай типтеги жабдык үчүн колдонулушу мүмкүн, анын ичинде GPU, вектордук инструкциялар, көп ядролуу процессорлор, FPGA жана ар кандай адистештирилген тездетүүчү чиптер.

Башка системалардан айырмаланып, HPVM гетерогендүү эсептөөлөрдү уюштуруу үчүн үч мүмкүнчүлүктү айкалыштырууга аракет кылды - программалоо тили жана аппараттык камсыздоодон көз карандысыз аралык өкүлчүлүк (IR), виртуалдык нускамалар топтому архитектурасы (V-ISA) жана иштөө убактысын пландаштыруу:

  • HPVM аралык өкүлчүлүгү тапшырма, маалыматтар жана түтүк деңгээлдеринде параллелизмди тартуу үчүн иерархиялык маалымат агымынын графигин колдонуу менен LLVM аралык көрсөтмөлөрдү кеңейтет. HPVM аралык өкүлчүлүгү ошондой эле вектордук көрсөтмөлөрдү жана жалпы эстутумду камтыйт. Аралык өкүлчүлүктү колдонуунун негизги максаты - эффективдүү кодду түзүү жана гетерогендик системалар үчүн оптималдаштыруу.
  • Virtual Instruction Set Architecture (V-ISA) төмөнкү деңгээлдеги аппараттык каражаттардын өзгөчөлүктөрүн абстракциялайт жана параллелизмдин ар кандай формаларын жана эстутум архитектураларын бир гана негизги параллелизм моделин — берилиштердин агымынын графигин колдонуп бириктирет. V-ISA параллелдүү эсептөөлөр үчүн жабдуулардын ар кандай түрлөрүнүн ортосунда көчмөлүккө жетишүүгө мүмкүндүк берет жана гетерогендик системалардын ар кандай элементтерин колдонууда өндүрүмдүүлүктү жоготпоого мүмкүндүк берет. Виртуалдык ISA ошондой эле CPU, GPU, FPGA жана ар кандай акселераторлор аркылуу иштей турган универсалдуу аткарылуучу программа кодун жеткирүү үчүн колдонулушу мүмкүн.
  • Эсептөө процесси үчүн ийкемдүү пландаштыруу саясаты аткаруу убагында колдонулат жана программа (график структурасы) жөнүндө маалыматтын негизинде да, системада жеткиликтүү болгон максаттуу эсептөөчү түзүлүштөрдүн каалаганында аткаруу үчүн жеке программа түйүндөрүн түзүү аркылуу да ишке ашырылат.

Долбоор тарабынан иштелип чыккан код генераторлору NVIDIA GPU (cuDNN жана OpenCL), Intel AVX вектордук нускамалары, FPGAлар жана көп ядролуу x86 процессорлору аркылуу аткаруу үчүн виртуалдык ISA аркылуу аныкталган тиркеме түйүндөрүн которууга жөндөмдүү. HPVM котормочуларынын иштеши GPU жана вектордук эсептөө приборлору үчүн колго жазылган OpenCL кодуна окшош экени белгиленген.

HPVM 2.0 негизги инновациялары:

  • HPVMде компиляциялоо үчүн C/C++ тилиндеги колдонмо кодун параллелдештирүүнү жөнөкөйлөштүрүүчү Hetero-C++ тилинин фронтендиси сунушталды. Hetero-C++ маалымат деңгээлиндеги параллелизм үчүн кеңейтүүлөрдү жана HPVM жип графиктерине дал келген иерархиялык тапшырмаларды аныктайт.
  • Intel FPGAларында коддун аткарылышын колдоо үчүн FPGA сервери кошулду. Аткарууну уюштуруу үчүн OpenCL үчүн Intel FPGA SDK колдонулат.
  • DSE (Dizayn Space Exploration) негизи кошулду, ал компилятордун оптималдаштыруусун жана берилген аппараттык платформа үчүн тиркемелерди автоматтык түрдө жөндөө үчүн тоскоолдуктарды аныктоо механизмдерин камтыйт. Алкак Intelден FPGA үчүн даяр иштөө моделин камтыйт жана HPVM тарабынан колдоого алынган бардык түзмөктөргө оптималдаштыруу үчүн өз процессорлоруңузду туташтырууга мүмкүндүк берет. Оптимизацияларды HPVM жана LLVM маалымат агымынын графигинин деңгээлинде колдонсо болот.
  • LLVM компоненттери 13.0 версиясына жаңыртылган.
  • Код код базасын, китепканаларды жана коммуналдык кызматтарды башкарууну жеңилдетүү үчүн кайра уюштурулган.
  • Сыноо инфраструктурасы жакшыртылды, ар кандай HPVM компоненттери үчүн жаңы тесттер кошулду.

Source: opennet.ru

Комментарий кошуу