Die LLVM-projek het HPVM 1.0 bekendgestel, 'n samesteller vir SVE, GPU, FPGA en versnellers

Die ontwikkelaars van die LLVM-projek het die vrystelling van die HPVM 1.0 (Heterogeneous Parallel Virtual Machine) samesteller gepubliseer, wat daarop gemik is om programmering vir heterogene stelsels te vereenvoudig en gereedskap te verskaf vir die generering van kode vir SVE's, GPU's, FPGA's en domeinspesifieke hardewareversnellers (ondersteuning vir FGPA's en versnellers is nie by die 1.0-vrystelling ingesluit nie). Die projekkode word onder die Apache 2.0-lisensie versprei.

Die hoofgedagte van HPVM is om 'n verenigde voorstelling van parallel-uitvoerbare programme te verskaf tydens samestelling, wat gebruik kan word vir uitvoering met behulp van verskillende soorte hardeware wat parallelle rekenaars ondersteun, insluitend GPU's, vektorinstruksies, multi-kern verwerkers, FPGA's en verskeie gespesialiseerde versnellerskyfies. Anders as ander stelsels, het HPVM gepoog om drie vermoëns te kombineer vir die organisering van heterogene rekenaars: taal- en hardeware-onafhanklike intermediêre verteenwoordiging, virtuele instruksiestel-argitektuur (ISA) en runtime-skedulering.

HPVM se teikenonafhanklike intermediêre voorstelling (IR) bou voort op die LLVM 9.0 intermediêre instruksievoorstelling en brei dit uit met 'n hiërargiese datavloeigrafiek om taak-, data- en pyplynvlakparallelisme vas te lê. Die HPVM-tussenvoorstelling sluit ook vektorinstruksies en gedeelde geheue in. Die hoofdoel van die gebruik van 'n intermediêre voorstelling is doeltreffende kodegenerering en optimering vir heterogene stelsels.

Die virtuele instruksiestel-argitektuur (ISA) maak voorsiening vir oordraagbaarheid tussen verskillende tipes parallelle rekenaarhardeware en maak dit moontlik om nie werkverrigting te verloor wanneer verskillende elemente van heterogene stelsels gebruik word nie. Virtuele ISA kan ook gebruik word om universele uitvoerbare programkode te lewer wat met SVE's, GPU's, FPGA's en verskeie versnellers kan loop.

Op die huidige stadium van ontwikkeling bied HPVM kode-opwekkers wat in staat is om toepassingsnodusse te vertaal wat gedefinieer is met 'n virtuele ISA vir uitvoering met behulp van NVIDIA GPU's (cuDNN en OpenCL), Intel AVX-vektorinstruksies en multi-kern x86-SVE's. Tydens looptyd pas HPVM buigsame berekeningsprosesskeduleringsbeleide toe, geïmplementeer beide gebaseer op programinligting (grafiekstruktuur) en deur die samestelling van individuele programnodusse vir uitvoering op enige van die teikenrekenaartoestelle wat in die stelsel beskikbaar is.

Daar word kennis geneem dat die gebruik van HPVM 'n aansienlike toename in produktiwiteit kan behaal. Die werkverrigting van HPVM-vertalers is vergelykbaar met handgeskrewe OpenCL-kode vir GPU's en vektorrekenaartoestelle.

In vergelyking met die eerste voorskouvrystelling, bevat HPVM 1.0 ondersteuning vir lineêre algebra-tensor-bewerkings, frontends vir Pytorch en Keras, konvolusie-operateurbenaderings, en 'n benadering-instellingsraamwerk wat outomaties optimale benaderings vir spesifieke tensor-bewerkings kies en die konfigurasie kies wat optimale werkverrigting bied.

Bron: opennet.ru

Voeg 'n opmerking