HPVM 2.0, CPU, GPU, FPGA və aparat sürətləndiriciləri üçün tərtibçi nəşr olundu

LLVM layihəsi heterojen sistemlər üçün proqramlaşdırmanı sadələşdirməyə və CPU, GPU, FPGA və domenə xas aparat sürətləndiriciləri üçün kod yaratmaq alətləri təqdim etməyə yönəlmiş kompilyator HPVM 2.0 (Heterogen Paralel Virtual Maşın) buraxıldığını elan etdi. Layihə kodu Apache 2.0 lisenziyası altında paylanır.

Heterojen paralel sistemlər üçün proqramlaşdırma eyni sistemdə paralelliyə nail olmaq üçün müxtəlif modellərdən (CPU nüvələri, vektor təlimatları, GPU və s.), müxtəlif təlimat dəstləri və müxtəlif yaddaş iyerarxiyalarından istifadə edən komponentlərin olması ilə çətinləşir. Hər bir sistem bu komponentlərin öz birləşməsindən istifadə edir. HPVM layihəsinin əsas ideyası tərtib edərkən paralel olaraq icra olunan proqramların vahid təsvirindən istifadə etməkdir ki, bunlardan paralel hesablamaları dəstəkləyən müxtəlif növ avadanlıqlar, o cümlədən GPU-lar, vektor təlimatları, çoxnüvəli prosessorlar, FPGA-lar və müxtəlif ixtisaslaşdırılmış sürətləndirici çiplər.

Digər sistemlərdən fərqli olaraq, HPVM heterojen hesablamaların təşkili üçün üç imkanı birləşdirməyə çalışdı - proqramlaşdırma dili və aparatdan asılı olmayan ara təqdimat (IR), virtual təlimat dəsti arxitekturası (V-ISA) və iş vaxtının planlaşdırılması:

  • HPVM aralıq təmsili tapşırıq, verilənlər və boru kəməri səviyyələrində paralelliyi ələ keçirmək üçün iyerarxik məlumat axını qrafikindən istifadə etməklə təlimatların LLVM aralıq təmsilçiliyini genişləndirir. HPVM aralıq təmsilçiliyinə həmçinin vektor təlimatları və paylaşılan yaddaş daxildir. Aralıq təmsilçiliyin istifadəsinin əsas məqsədi effektiv kod yaratmaq və heterojen sistemlər üçün optimallaşdırmaqdır.
  • Virtual Təlimat Dəsti Arxitektura (V-ISA) aşağı səviyyəli aparat xüsusiyyətlərini mücərrədləşdirir və yalnız əsas paralellik modelindən - məlumat axını qrafikindən istifadə edərək müxtəlif paralellik formalarını və yaddaş arxitekturalarını birləşdirir. V-ISA, paralel hesablamalar üçün müxtəlif növ avadanlıqlar arasında daşınma qabiliyyətinə nail olmağa imkan verir və heterojen sistemlərin müxtəlif elementlərindən istifadə edərkən məhsuldarlığı itirməməyə imkan verir. Virtual ISA həmçinin CPU, GPU, FPGA və müxtəlif sürətləndiricilərdən istifadə edərək işləyə bilən universal icra olunan proqram kodunu çatdırmaq üçün istifadə edilə bilər.
  • Hesablama prosesi üçün çevik planlaşdırma siyasətləri icra müddətində tətbiq edilir və həm proqram (qrafik struktur) haqqında məlumat əsasında, həm də sistemdə mövcud olan hər hansı hədəf hesablama cihazında icra üçün fərdi proqram qovşaqlarının tərtib edilməsi yolu ilə həyata keçirilir.

Layihə tərəfindən hazırlanmış kod generatorları NVIDIA GPU-ları (cuDNN və OpenCL), Intel AVX vektor təlimatları, FPGA-lar və çox nüvəli x86 CPU-lardan istifadə etməklə icra üçün virtual ISA-dan istifadə etməklə müəyyən edilmiş proqram qovşaqlarını tərcümə edə bilir. Qeyd olunur ki, HPVM tərcüməçilərinin performansı GPU və vektor hesablama cihazları üçün əl ilə yazılmış OpenCL kodu ilə müqayisə olunur.

HPVM 2.0-ın əsas yenilikləri:

  • HPVM-də kompilyasiya üçün C/C++-da tətbiq kodunun paralelləşdirilməsini asanlaşdıran Hetero-C++ dilinin ön hissəsi təklif edilmişdir. Hetero-C++ HPVM iplik qrafiklərinə uyğunlaşdırılan məlumat səviyyəli paralellik və iyerarxik tapşırıqlar üçün genişləndirmələri müəyyən edir.
  • Intel FPGA-larda kodun icrasına dəstək vermək üçün bir FPGA backend əlavə edilmişdir. İcranı təşkil etmək üçün OpenCL üçün Intel FPGA SDK istifadə olunur.
  • DSE (Dizayn Kosmos Kəşfiyyatı) çərçivəsi əlavə edilmişdir ki, bu çərçivəyə kompilyatorun optimallaşdırılması və verilmiş hardware platforması üçün proqramların avtomatik tənzimlənməsi üçün darboğazların müəyyən edilməsi mexanizmləri daxildir. Çərçivə Intel-dən FPGA-lar üçün hazır performans modelini ehtiva edir və HPVM tərəfindən dəstəklənən istənilən cihaz üçün optimallaşdırma üçün öz prosessorlarınızı birləşdirməyə imkan verir. Optimallaşdırmalar həm HPVM, həm də LLVM məlumat axını qrafiki səviyyələrində tətbiq oluna bilər.
  • LLVM komponentləri 13.0 versiyasına yeniləndi.
  • Kod, kod bazası, kitabxanalar və yardım proqramları arasında naviqasiyanı asanlaşdırmaq üçün yenidən təşkil edilmişdir.
  • Test infrastrukturu təkmilləşdirilmiş, müxtəlif HPVM komponentləri üçün yeni testlər əlavə edilmişdir.

Mənbə: opennet.ru

Добавить комментарий