LLVM projekat je predstavio HPVM 1.0, kompajler za CPU, GPU, FPGA i akceleratore

Programeri projekta LLVM objavili su izdanje kompajlera HPVM 1.0 (Heterogena paralelna virtuelna mašina) sa ciljem da pojednostavi programiranje za heterogene sisteme i obezbedi alate za generisanje koda za CPU, GPU, FPGA i hardverske akceleratore specifične za domen (podrška za FGPA i akceleratori nisu bili uključeni u izdanje 1.0). Kod projekta se distribuira pod licencom Apache 2.0.

Glavna ideja HPVM-a je da obezbijedi objedinjenu reprezentaciju paralelno izvršnih programa prilikom kompajliranja, koji se mogu koristiti za izvršavanje pomoću različitih tipova hardvera koji podržavaju paralelno računanje, uključujući GPU, vektorske instrukcije, višejezgrene procesore, FPGA i razne specijalizirane akceleratorske čipove. Za razliku od drugih sistema, HPVM je pokušao da kombinuje tri mogućnosti za organizovanje heterogenog računarstva: međureprezentaciju nezavisno od jezika i hardvera, arhitekturu virtuelnog skupa instrukcija (ISA) i vremensko planiranje.

HPVM-ova posredna reprezentacija neovisna o cilju (IR) se gradi na LLVM 9.0 međureprezentaciji instrukcija i proširuje je sa hijerarhijskim grafom toka podataka kako bi uhvatio paralelizam na nivou zadataka, podataka i cevovoda. HPVM međureprezentacija takođe uključuje vektorske instrukcije i zajedničku memoriju. Glavna svrha korištenja srednjeg predstavljanja je efikasno generiranje koda i optimizacija za heterogene sisteme.

Arhitektura virtuelnog skupa instrukcija (ISA) omogućava prenosivost između različitih tipova paralelnog računarskog hardvera i omogućava da se ne izgube performanse kada se koriste različiti elementi heterogenih sistema. Virtuelna ISA se takođe može koristiti za isporuku univerzalnog izvršnog programskog koda koji se može izvoditi koristeći CPU, GPU, FPGA i razne akceleratore.

U trenutnoj fazi razvoja, HPVM nudi generatore koda sposobne da prevedu aplikacione čvorove definisane pomoću virtuelnog ISA za izvršenje pomoću NVIDIA GPU-a (cuDNN i OpenCL), Intel AVX vektorskih instrukcija i višejezgrenih x86 CPU-a. Tokom rada, HPVM primjenjuje fleksibilne politike planiranja računskih procesa, implementirane i na osnovu programskih informacija (struktura grafikona) i putem kompajliranja pojedinačnih programskih čvorova za izvršenje na bilo kojem od ciljnih računarskih uređaja dostupnih u sistemu.

Napominje se da se upotrebom HPVM-a može postići značajno povećanje produktivnosti. Performanse HPVM prevodilaca su uporedive sa ručno pisanim OpenCL kodom za GPU i vektorske računarske uređaje.

U poređenju sa prvim izdanjem za pretpregled, HPVM 1.0 uključuje podršku za tenzorske operacije linearne algebre, frontende za Pytorch i Keras, aproksimacije konvolucionih operatora i okvir za podešavanje aproksimacije koji automatski bira optimalne aproksimacije za specifične tenzorske operacije i bira konfiguraciju koja obezbeđuje optimalne performanse.

izvor: opennet.ru

Dodajte komentar