LLVM projesi CPU, GPU, FPGA ve hızlandırıcılar için bir derleyici olan HPVM 1.0'ı tanıttı

LLVM projesinin geliştiricileri, 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şturmaya yönelik araçlar sağlamayı amaçlayan HPVM 1.0 (Heterojen Paralel Sanal Makine) derleyicisinin sürümünü yayınladı (destek FGPA'lar ve hızlandırıcılar 1.0 sürümüne dahil edilmedi). Proje kodu Apache 2.0 lisansı altında dağıtılmaktadır.

HPVM'nin ana fikri, GPU'lar, vektör talimatları, çok çekirdekli işlemciler, FPGA'ler ve paralel hesaplamayı destekleyen çeşitli donanım türlerini kullanarak yürütme için kullanılabilen, derleme sırasında paralel çalıştırılabilir programların birleşik bir temsilini sağlamaktır. çeşitli özel hızlandırıcı çipleri. Diğer sistemlerden farklı olarak HPVM, heterojen bilgi işlemi düzenlemek için üç yeteneği birleştirmeye çalıştı: dil ve donanımdan bağımsız ara temsil, sanal komut seti mimarisi (ISA) ve çalışma zamanı planlama.

HPVM'nin hedeften bağımsız ara gösterimi (IR), LLVM 9.0 ara talimat gösterimini temel alır ve bunu görev, veri ve işlem hattı düzeyinde paralelliği yakalamak için hiyerarşik bir veri akış grafiğiyle 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 (ISA), farklı türdeki paralel bilgi işlem donanımı arasında taşınabilirliğe izin verir ve heterojen sistemlerin farklı öğelerini kullanırken performansın kaybolmamasını 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.

Geliştirmenin mevcut aşamasında HPVM, NVIDIA GPU'ları (cuDNN ve OpenCL), Intel AVX vektör talimatlarını ve çok çekirdekli x86 CPU'ları kullanarak yürütmek üzere sanal bir ISA kullanılarak tanımlanan uygulama düğümlerini çevirebilen kod oluşturucular sunmaktadır. Çalışma zamanında HPVM, hem program bilgilerine (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 uygulanan esnek hesaplamalı süreç planlama ilkelerini uygular.

HPVM kullanımının üretkenlikte önemli bir artış sağlayabileceği belirtilmektedir. HPVM çeviricilerinin performansı, GPU'lar ve vektör bilgi işlem cihazları için elle yazılmış OpenCL koduyla karşılaştırılabilir.

İlk önizleme sürümüyle karşılaştırıldığında HPVM 1.0, doğrusal cebir tensör işlemleri için destek, Pytorch ve Keras için ön uçlar, evrişim operatörü yaklaşımları ve belirli tensör işlemleri için en uygun yaklaşımları otomatik olarak seçen ve en iyi performansı sağlayan yapılandırmayı seçen bir yaklaşım ayarlama çerçevesi içerir.

Kaynak: opennet.ru

Yorum ekle