CPU, GPU, FPGA ve donanım hızlandırıcılara yönelik bir derleyici olan HPVM 2.0 yayınlandı

LLVM projesi, heterojen sistemler için programlamayı basitleştirmeyi ve CPU'lar, GPU'lar, FPGA'ler ve alana özgü donanım hızlandırıcılar için kod oluşturma araçları sağlamayı amaçlayan bir derleyici olan HPVM 2.0'ın (Heterojen Paralel Sanal Makine) piyasaya sürüldüğünü duyurdu. Proje kodu Apache 2.0 lisansı altında dağıtılmaktadır.

Heterojen paralel sistemler için programlama, aynı sistemde paralellik elde etmek için farklı modeller (CPU çekirdekleri, vektör talimatları, GPU vb.), farklı talimat setleri ve farklı bellek hiyerarşileri kullanan bileşenlerin varlığı nedeniyle karmaşık hale gelir. Her sistem bu bileşenlerin kendi kombinasyonunu kullanır. HPVM projesinin ana fikri, GPU'lar, vektör talimatları, çok çekirdekli işlemciler, FPGA'ler ve paralel hesaplamayı destekleyen çeşitli donanım türleri için kullanılabilen, derleme sırasında paralel olarak yürütülen programların birleşik bir temsilini kullanmaktır. çeşitli özel hızlandırıcı çipleri.

Diğer sistemlerden farklı olarak HPVM, heterojen hesaplamayı düzenlemek için üç yeteneği birleştirmeye çalıştı: bir programlama dili ve donanımdan bağımsız ara gösterim (IR), sanal talimat seti mimarisi (V-ISA) ve çalışma zamanı planlaması:

  • HPVM ara gösterimi, görev, veri ve işlem hattı düzeylerinde paralelliği yakalamak için hiyerarşik bir veri akış grafiği kullanarak talimatların LLVM ara gösterimini genişletir. HPVM ara gösterimi aynı zamanda vektör talimatlarını ve paylaşılan belleği de içerir. Ara temsil kullanmanın temel amacı, heterojen sistemler için verimli kod üretimi ve optimizasyondur.
  • Sanal Komut Seti Mimarisi (V-ISA), düşük seviyeli donanım özelliklerini soyutlar ve yalnızca temel bir paralellik modeli olan veri akış grafiğini kullanarak çeşitli paralellik ve bellek mimarilerini birleştirir. V-ISA, paralel hesaplama için farklı ekipman türleri arasında taşınabilirlik elde etmenize olanak tanır ve heterojen sistemlerin farklı öğelerini kullanırken performansı kaybetmemeyi mümkün kılar. Virtual ISA ayrıca CPU'lar, GPU'lar, FPGA'ler ve çeşitli hızlandırıcılar kullanılarak çalışabilen evrensel yürütülebilir program kodunu sunmak için de kullanılabilir.
  • Hesaplamalı sürece yönelik esnek planlama politikaları çalışma zamanında uygulanır ve hem program hakkındaki bilgilere (grafik yapısı) dayalı olarak hem de sistemde mevcut olan hedef bilgi işlem aygıtlarından herhangi birinde yürütülmek üzere bireysel program düğümlerinin derlenmesi yoluyla uygulanır.

Proje tarafından geliştirilen kod oluşturucular, NVIDIA GPU'ları (cuDNN ve OpenCL), Intel AVX vektör talimatlarını, FPGA'leri ve çok çekirdekli x86 CPU'ları kullanarak yürütülmek üzere sanal bir ISA kullanılarak tanımlanan uygulama düğümlerini çevirebilir. HPVM çeviricilerinin performansının, GPU'lar ve vektör hesaplama cihazları için elle yazılmış OpenCL koduyla karşılaştırılabilir olduğu belirtilmektedir.

HPVM 2.0'ın temel yenilikleri:

  • HPVM'de derleme için C/C++ uygulama kodunun paralelleştirilmesini basitleştiren bir Hetero-C++ dil ön ucu önerilmiştir. Hetero-C++, HPVM iş parçacığı grafikleriyle eşlenen veri düzeyinde paralellik ve hiyerarşik görevlere yönelik uzantıları tanımlar.
  • Intel FPGA'lerde kod yürütme desteği sağlamak için bir FPGA arka ucu eklendi. Yürütmeyi organize etmek için OpenCL için Intel FPGA SDK kullanılır.
  • Belirli bir donanım platformu için uygulamaları otomatik olarak ayarlamak için derleyici optimizasyonlarını ve darboğazları belirlemeye yönelik mekanizmaları içeren DSE (Tasarım Alanı Araştırması) çerçevesi eklenmiştir. Çerçeve, Intel'in FPGA'leri için hazır bir performans modeli içerir ve HPVM tarafından desteklenen tüm cihazlar için optimizasyon amacıyla kendi işlemcilerinizi bağlamanızı mümkün kılar. Optimizasyonlar hem HPVM hem de LLVM veri akışı grafiği düzeylerinde uygulanabilir.
  • LLVM bileşenleri 13.0 sürümüne güncellendi.
  • Kod, kod tabanında, kitaplıklarda ve yardımcı programlarda gezinmeyi kolaylaştırmak için yeniden düzenlendi.
  • Test altyapısı iyileştirildi, çeşitli HPVM bileşenleri için yeni testler eklendi.

Kaynak: opennet.ru

Yorum ekle