HPVM kompilator oparty na LLVM dla CPU, GPU, FPGA i akceleratorów

Twórcy projektu Wydano LLVM niedawno wydano kompilator Heterogeneous Parallel Virtual Machine (HPVM) 1.0, Który ma na celu uprościć programowanie dla systemów heterogenicznych i zapewnia narzędzia do generowania kodu dla procesorów CPU, GPU, FPGA i akceleratorów sprzętowych specyficzne dla domeny (obsługa FGPA i akceleratorów nie została uwzględniona w wersji 1.0).

Główny pomysł za HPVM polega na jednoczesnym kompilowaniu ujednoliconej reprezentacji programów wykonywalnych które mogą być używane do pracy na różnym sprzęcie równoległym, w tym na procesorach graficznych, instrukcjach wektorowych, procesorach wielordzeniowych, układach FPGA i różnych wyspecjalizowanych układach akceleratorów.

Programowanie dla heterogenicznych systemów równoległych jest skomplikowane przez obecność w systemie komponentów (rdzenie procesorów, instrukcje wektorowe, procesory graficzne itp.), Które używają różnych modeli w celu osiągnięcia równoległości, różnych zestawów instrukcji i różnych hierarchii pamięci, a każdy system ma kombinację takie komponenty się zmieniają.

Grupa badawcza Illinois LLVM Compiler Research Group ma przyjemność ogłosić wydanie oprogramowania HPVM o otwartym kodzie źródłowym (wersja 1.0). HPVM to reorientacja kompilatora przeznaczona dla procesorów, procesorów graficznych i akceleratorów (ta wersja nie obejmuje obsługi akceleratorów) [1]. HPVM używa niezależnego od celu kompilatora IR, który rozszerza IR kompilatora LLVM 9.0.0 o jawną hierarchiczną reprezentację przepływu danych, która przechwytuje zadania, dane i równoległość potoków.

Ta wersja jest ważnym dodatkiem do naszej pierwszej wersji (wersja 0.5), która dodaje obsługę operacji tensorowych algebry liniowej, interfejsy Pytorcha i Keras, aproksymacje operatorów splotów oraz wydajną i elastyczną strukturę do dopasowywania aproksymacji. 

Należy zauważyć, że użycie HPVM może osiągnąć znaczny wzrost wydajności od kiedy eWydajność wyjściowa translatorów HPVM jest porównywalna z wydajnością kodu OpenCL odręcznie na GPU i urządzenia do obliczeń wektorowych. W przeciwieństwie do innych systemów, HPVM próbował połączyć trzy możliwości organizowania heterogenicznych obliczeń: reprezentację pośrednią niezależną od języka i sprzętu, architekturę wirtualnego zestawu instrukcji (V-ISA) i programowanie w czasie wykonywania.

Niezależna reprezentacja pośrednia (IR) systemu docelowego a język programowania używany w HPVM jest oparty na pośredniej reprezentacji instrukcji LLVM 9.0 i rozszerza go o hierarchiczny wykres przepływu danych, aby objąć równoległość na poziomie zadań, danych i potoków obliczeniowych.

Pośrednik HPVM zawiera również instrukcje wektorowe i pamięć współdzieloną. Głównym celem stosowania reprezentacji pośredniej jest wydajne generowanie i optymalizacja kodu dla systemów heterogenicznych.

Architektura wirtualnego zestawu instrukcji (V-ISA) wyodrębnia funkcje sprzętowe niskiego poziomu i ujednolica różne formy równoległości i architektur pamięci przy użyciu tylko podstawowego modelu współbieżności, wykresu przepływu danych. V-ISA pozwala na osiągnięcie przenośności pomiędzy różnymi typami równoległych urządzeń obliczeniowych i pozwala nie tracić wydajności przy stosowaniu różnych elementów heterogenicznych systemów. Wirtualnego ISA można również użyć do zapewnienia uniwersalnego kodu wykonywalnego programu, który można uruchomić przy użyciu procesora CPU, GPU, FPGA i różnych akceleratorów.

Na obecnym etapie rozwoju, HPVM oferuje generatory kodu zdolne do tłumaczenia węzłów aplikacji zdefiniowanych przez ISA Wirtualny do uruchamiania przy użyciu procesorów graficznych NVIDIA (cuDNN i OpenCL), instrukcji wektorowych Intel AVX i wielordzeniowych procesorów x86. }

Podczas wykonywania HPVM stosuje elastyczne polityki harmonogramowania procesu obliczeniowego, realizowane zarówno na podstawie informacji o programie (strukturze graficznej), jak i poprzez kompilację poszczególnych węzłów programu do wykonania na dowolnym docelowym urządzeniu obliczeniowym dostępnym w systemie.

W porównaniu z pierwszą wersją zapoznawczą, HPVM 1.0 obejmuje obsługę operacji tensorowych algebry liniowej, interfejsy dla Pytorch i Keras oraz platforma dostrajania przybliżeń, która automatycznie wybiera optymalne przybliżenia dla niektórych operacji tensorowych i wybiera ustawienie zapewniające optymalną wydajność.

Wreszcie, jeśli chcesz dowiedzieć się więcej o tym kompilatorze, Możesz sprawdzić szczegóły w poniższym linku.


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.