LLVM жобасы CPU, GPU, FPGA және үдеткіштерге арналған компилятор HPVM 1.0 нұсқасын ұсынды.

LLVM жобасын әзірлеушілер гетерогенді жүйелер үшін бағдарламалауды жеңілдетуге және орталық процессорлар, графикалық процессорлар, FPGA және доменге тән аппараттық жеделдеткіштер үшін кодты генерациялауға арналған құралдармен қамтамасыз етуге бағытталған HPVM 1.0 (гетерогенді параллельді виртуалды машина) компиляторының шығарылымын жариялады. FGPA және үдеткіштер 1.0 шығарылымына қосылмаған). Жоба коды Apache 2.0 лицензиясы бойынша таратылады.

HPVM-тің негізгі идеясы компиляция кезінде параллельді орындалатын бағдарламалардың біртұтас көрінісін қамтамасыз ету болып табылады, олар параллельді есептеулерді қолдайтын әртүрлі аппараттық құралдарды, соның ішінде GPU, векторлық нұсқаулар, көп ядролы процессорлар, FPGA және әртүрлі мамандандырылған үдеткіш чиптер. Басқа жүйелерден айырмашылығы, HPVM гетерогенді есептеулерді ұйымдастыру үшін үш мүмкіндікті біріктіруге әрекет жасады: тілге және аппараттық құралға тәуелсіз аралық ұсыну, виртуалды нұсқаулар жиынының архитектурасы (ISA) және орындалу уақытын жоспарлау.

HPVM мақсатты-тәуелсіз аралық нұсқауы (IR) LLVM 9.0 аралық нұсқау көрсетіліміне негізделеді және тапсырма, деректер және құбыр деңгейіндегі параллелизмді түсіру үшін оны иерархиялық деректер ағынының графигімен кеңейтеді. HPVM аралық көрінісі сонымен қатар векторлық нұсқаулар мен ортақ жадты қамтиды. Аралық ұсынуды пайдаланудың негізгі мақсаты кодты тиімді генерациялау және гетерогенді жүйелер үшін оңтайландыру болып табылады.

Виртуалды нұсқаулар жинағы архитектурасы (ISA) параллельді есептеуіш аппаратураның әртүрлі типтері арасында тасымалдануға мүмкіндік береді және гетерогенді жүйелердің әртүрлі элементтерін пайдалану кезінде өнімділікті жоғалтпауға мүмкіндік береді. Виртуалды ISA сонымен қатар процессорлар, графикалық процессорлар, FPGA және әртүрлі үдеткіштер арқылы жұмыс істей алатын әмбебап орындалатын бағдарлама кодын жеткізу үшін пайдаланылуы мүмкін.

Қазіргі даму кезеңінде HPVM NVIDIA GPU (cuDNN және OpenCL), Intel AVX векторлық нұсқаулары және көп ядролы x86 процессорлары арқылы орындау үшін виртуалды ISA көмегімен анықталған қолданба түйіндерін аударуға қабілетті код генераторларын ұсынады. Орындалу уақытында HPVM икемді есептеу процесін жоспарлау саясатын қолданады, олар бағдарлама ақпаратына (график құрылымы) негізделген де, жүйеде қол жетімді кез келген мақсатты есептеу құрылғыларында орындау үшін жеке бағдарлама түйіндерін құрастыру арқылы жүзеге асырылады.

HPVM пайдалану өнімділіктің айтарлықтай артуына қол жеткізуге болатыны атап өтілген. HPVM аудармашыларының өнімділігін графикалық процессорлар мен векторлық есептеу құрылғылары үшін қолмен жазылған OpenCL кодымен салыстыруға болады.

Алғашқы алдын ала қарау шығарылымымен салыстырғанда, HPVM 1.0 сызықтық алгебра тензор операцияларын қолдауды, Pytorch және Keras үшін фронттерді, конвульсия операторының жуықтауларын және нақты тензор операциялары үшін оңтайлы жуықтауларды автоматты түрде таңдайтын және оңтайлы өнімділікті қамтамасыз ететін конфигурацияны таңдайтын жуықтау баптау құрылымын қамтиды.

Ақпарат көзі: opennet.ru

пікір қалдыру