LLVM layihəsi CPU, GPU, FPGA və sürətləndiricilər üçün kompilyator olan HPVM 1.0 təqdim etdi.

LLVM layihəsinin tərtibatçıları HPVM 1.0 (Heterogen Paralel Virtual Maşın) kompilyatorunun buraxılışını dərc etdilər, bu, heterojen sistemlər üçün proqramlaşdırmanı sadələşdirməyə və CPU, GPU, FPGA və domenə aid xüsusi aparat sürətləndiriciləri üçün kod yaratmaq üçün alətlər təqdim etməyə yönəldilib. FGPA və sürətləndiricilər 1.0 buraxılışına daxil edilməyib). Layihə kodu Apache 2.0 lisenziyası altında paylanır.

HPVM-in əsas ideyası tərtib edərkən paralel icra olunan proqramların vahid təqdimatını təmin etməkdir ki, bunlardan paralel hesablamaları dəstəkləyən müxtəlif növ avadanlıqlardan, 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ə cəhd etdi: dil və aparatdan asılı olmayan ara təqdimat, virtual təlimat dəsti arxitekturası (ISA) və iş vaxtının planlaşdırılması.

HPVM-nin hədəfdən müstəqil aralıq təmsilçiliyi (IR) LLVM 9.0 aralıq təlimat təqdimatı üzərində qurulur və tapşırıq, məlumat və boru xətti səviyyəsində paralelliyi ələ keçirmək üçün onu iyerarxik məlumat axını qrafiki ilə genişləndirir. HPVM aralıq təqdimatına 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 arxitekturası (ISA) müxtəlif növ paralel hesablama aparatları arasında daşınma 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.

Hazırkı inkişaf mərhələsində HPVM NVIDIA GPU-ları (cuDNN və OpenCL), Intel AVX vektor təlimatları və çox nüvəli x86 CPU-ları istifadə edərək icra üçün virtual ISA-dan istifadə etməklə müəyyən edilmiş proqram qovşaqlarını tərcümə edə bilən kod generatorları təklif edir. İş zamanı HPVM çevik hesablama prosesinin planlaşdırılması siyasətlərini tətbiq edir, həm proqram məlumatı (qrafik strukturu) ə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ı tərtib etməklə həyata keçirilir.

Qeyd olunur ki, HPVM-dən istifadə məhsuldarlığın əhəmiyyətli dərəcədə artmasına nail ola bilər. HPVM tərcüməçilərinin performansı GPU və vektor hesablama cihazları üçün əl ilə yazılmış OpenCL kodu ilə müqayisə edilə bilər.

İlk baxış buraxılışı ilə müqayisədə, HPVM 1.0 xətti cəbr tenzor əməliyyatları üçün dəstək, Pytorch və Keras üçün frontendlər, konvolyutsiya operatoru yaxınlaşmaları və spesifik tensor əməliyyatları üçün optimal yaxınlaşmaları avtomatik seçən və optimal performansı təmin edən konfiqurasiyanı seçən yaxınlaşma tənzimləmə çərçivəsini ehtiva edir.

Mənbə: opennet.ru

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