Açık kaynaklı, uçtan uca yeni bir yapay zeka çerçevesi derleyicisi-NNVM derleyicisi

Yapay zeka algoritmaları geliştirmek için çeşitli yapay zeka (AI) çerçeveleri seçebilir ve yapay zeka modellerini eğitmek ve dağıtmak için çeşitli donanımlar seçebilirsiniz. Çerçeve ve donanım çeşitliliği, yapay zeka ekosisteminin sağlığını korumak için çok önemlidir. Ancak bu çeşitlilik, yapay zeka geliştiricileri için de bazı zorluklar ortaya çıkarmaktadır. Bu makale, bu zorlukları kısaca tanıtır ve bu sorunları çözebilecek bir derleyici çözümü sunar.

Öncelikle bu zorluklara bir göz atalım ve sizi University of Washington ve AWS'den araştırma ekibiyle tanıştıralım ve ardından derleyicinin nasıl çalıştığını anlamanıza izin verelim.

Üç zorluk

Her şeyden önce, ön uç arayüzü ile arka uç uygulaması arasındaki fark nedeniyle, bir AI çerçevesinden diğerine geçmek çok önemlidir. . Ek olarak, algoritma geliştiricileri, geliştirme ve teslim sürecinin bir parçası olarak birden çok çerçeve kullanabilir. AWS'de, Amazon EC2'de yüksek hızlı performansın keyfini çıkarmak için Caffe modellerini MXNet'te dağıtmak isteyen müşterilerimiz var. Joaquin Candela kısa süre önce bir blogda, kullanıcıların hızlı geliştirme için PyTorch'u kullanabileceklerini ve ardından Caffe2'ye yerleştirebileceklerini yazdı. Bununla birlikte, modeli bir çerçeveden diğerine dönüştürdükten sonra, bazı insanlar ikisi arasındaki hata ayıklama sonuçlarındaki farklılıktan şikayet ettiler.

İkinci olarak, çerçeve geliştiricilerinin akıllı telefon yongalarının, GPU yongalarının ve diğer donanımların performansını sağlamak için birden çok arka uç bulundurması gerekir. Örnek olarak MXNet'i ele alalım: Sıfırdan oluşturulabilen taşınabilir bir C ++ uygulaması vardır. Ayrıca, Nvidianın GPU yongaları için cuDNN ve Intelin CPU yongaları için MKLML gibi hedefle ilgili arka uç desteğiyle birlikte gelir. Bu farklı arka uçların kullanıcılara tutarlı dijital sonuçlar sağladığından emin olmak zor olabilir.

Son olarak, çip tedarikçilerinin oluşturdukları her yeni çip için birden fazla yapay zeka çerçevesini desteklemesi gerekir. Her çerçevedeki iş yükü benzersiz bir şekilde temsil edilir ve yürütülür, bu nedenle basit bir evrişim işleminin bile farklı bir şekilde tanımlanması gerekebilir. Birden çok çerçeveyi desteklemek, mühendislerin çok çalışmasını gerektirir.

Farklı yapay zeka çerçeveleri ve donanımları kullanıcılara büyük faydalar sağladı, ancak yapay zeka geliştiricilerinin son kullanıcılara tutarlı sonuçlar getirmesi çok zor. Neyse ki, bu sorunla ilk karşılaşan biz değiliz. Bilgisayar bilimi, farklı donanımlarda farklı programlama dilleri çalıştırma konusunda uzun bir geçmişe sahiptir. Bu sorunu çözmek için anahtar bir teknoloji derleyicidir. Washington Üniversitesi Bilgisayar Bilimleri ve Mühendisliği Okulu'ndan bir grup araştırmacı olan Tianqi Chen, Thierry Moreau, Haichen Shen, Luis Ceze, Carlos Guestrin ve Arvind Krishnamurthy, geleneksel derleyici teknolojisinden esinlenerek AWS AI ekibinden Ziheng Jiang ile bir araya geldi. Bu sorunu basitleştirmek için TVM yığın teknolojisi.

Bugün, AWS ve Washington Üniversitesi'nden bir araştırma ekibi, NNVM adlı TVM yığın teknolojisine dayanan uçtan uca bir derleyici yayınladı. Bu tür bir derleyici, iş yükünü farklı derin öğrenme ön uçlarından optimize edilmiş ikili makine koduna doğrudan derleyebilir. Geleneksel AI çerçevesi ile NNVM derleyicisi arasındaki yapı karşılaştırmasına bir göz atalım:

Tipik bir yapay zeka çerçevesinin kabaca üç bölüme ayrılabileceğini gözlemliyoruz:

1. Ön uç, kullanıcılara kullanımı kolay bir arayüz gösterir.

2. Ön uçtan gelen iş komutu genellikle veri değişkenleri ve işlem operatörlerinden oluşan bir hesaplama grafiği olarak ifade edilir.

3. Hem temel aritmetik işlem operatörleri hem de sinir ağı katmanı işlem operatörleri, farklı donanım işlem operatörlerine karşılık gelecek şekilde optimize edilir ve yürütülür.

NNVM derleyicisi, TVM yığınındaki iki bileşene dayanır: hesaplama grafiklerini işlemek için NNVM bileşeni ve tensör işlem operatörlerini işlemek için TVM bileşeni.

  • NNVM bileşen-hesaplamalı grafik ara gösterimi (IR) yığını

NNVM bileşeninin amacı, farklı çerçevelerden iş komutlarını standart hesaplama grafikleri olarak temsil etmek ve ardından bu yüksek seviyeli hesaplama grafiklerini yürütme grafiklerine dönüştürmektir. Hesaplamalı grafikleri çerçeveden bağımsız bir biçimde ifade etme fikri, Keras'tan (bir derin öğrenme çerçevesi) katman tanımından ve Numpy'den (bir Python aracı) gelen tensör işlem operatöründen esinlenmiştir.

NNVM bileşeni, bu hesaplama grafiklerini işlemek için LLVM kurallarını kullanan Geçiş adlı bazı rutinlerle birlikte gelir. Bu rutinler, hesaplama grafiğini yürütmek için hesaplama grafiğine yeni özellikler ekleyebilir veya verimliliği artırmak için hesaplama grafiğini değiştirebilir.

  • TVM bileşen-tensör ortam gösterim yığını

TVM, Halide dilinden kaynaklanmıştır.Yürütme amacı, hesaplama grafiğindeki işlem operatörüdür.Operasyon operatörünü, hedef arka uç donanıma karşılık gelen operasyon operatörüne optimize eder. NNVM bileşeninden, donanımdan bağımsız bir dil sağlaması ve tensör indeks seviyesindeki operatörlerin yürütülmesini basitleştirmek için belirli bir alana karşılık gelen bir dil sağlamasıyla farklıdır. TVM ayrıca, donanım kaynaklarından tam olarak yararlanmak üzere hesaplamaları optimize etmek için çoklu iş parçacığı ve önbelleğe alma gibi bazı işlem planlama ilkelleri sağlar. Bu süreç programları donanımla ilgilidir ve manuel olarak kodlanabilir veya optimize edilmiş kalıpları otomatik olarak arayabilir.

NNVM derleyicisi tarafından desteklenen ön uç çerçevesi ve arka uç donanımı

Aşağıdaki şekil, NNVM derleyicisinin ön ve arka uçlar arasındaki ilişkiyi nasıl ele aldığını göstermektedir:

MXNet, hesaplama grafiklerini doğrudan NNVM bileşeninde hesaplama grafiklerine dönüştürerek desteklenir.Keras hala geliştirme aşamasındadır, ancak benzer bir şekilde de desteklenmektedir. NNVM derleyicisi, CoreML gibi model formatlarını da kullanabilir.

Bu nedenle, bu biçimleri kullanabilen herhangi bir çerçeve bu derlenmiş yığını kullanabilir.

TVM şu anda çeşitli arka uç donanımlarını desteklemek için birden çok kod oluşturucu kullanıyor. Örneğin, X86 ve ARM gibi cpu mimarileri için LLVM IR üretir. Ayrıca çeşitli GPU mimarileri için CUDA, OpenCL ve Metal çekirdeklerinin çıktısını alabilir.

NNVM derleyicisi için yeni destek eklemek kolaydır. Yeni bir ön uç çerçevesi için, yalnızca iş komutlarını hesaplama grafiklerini ve operatör özelliklerini tanımlayan NNVM bileşenlerinin formatına dönüştürmemiz gerekiyor. Yeni arka uç donanımı eklemek istiyorsak, TVM'nin operatör yürütmesini yeniden kullanabilir ve ardından bunları nasıl verimli bir şekilde planlayacağımızı belirleyebiliriz.

Performans testi sonuçları

GPU ve CPU donanım arka uçlarının yanı sıra ResNet18 ve MobileNet modellerinde NNVM derleyicisiyle performans karşılaştırma testleri gerçekleştirmek için MXNet kullanıyoruz.

Bu, GPU'daki performans sonuçlarının bir karşılaştırma çizelgesidir.NNVM derleyicisinin daha az zaman aldığı görülebilir.

Bu, CPU'daki performans sonuçlarının bir karşılaştırma çizelgesidir NNVM derleyicisinin daha az zaman aldığı görülebilir.

sonuç olarak

NNVM derleyicisi, yüksek seviyeli bir hesaplama grafiğini optimize edilmiş ikili makine kodu halinde derleyebilir Bu derleyici, TVM yığınındaki iki bileşene dayanır: NNVM bileşeni, hesaplamalı grafik optimizasyon rutinleri ve işlem operatörleri ile bir hesaplama grafiği sağlar. Şartname. TVM bileşeni, operasyon operatörünün, hedef donanıma karşılık gelen operasyon operatörüne uygulanmasını optimize eder. Dahası, tamamen farklı iki donanım-ARM CPU ve Nvidia gpu üzerinde performans testleri ve karşılaştırmalar yaptık, bu da bu derleyicinin mevcut en gelişmiş bilgi işlem performansıyla eşleşebileceğini hatta aşabileceğini kanıtladı. NNVM derleyicisinin, AI'nın ön uç çerçevesinin ve arka uç donanımının tasarımını büyük ölçüde basitleştirebileceğini ve kullanıcıların farklı ön uçlarda ve arka uçlarda tutarlı sonuçlar sağlamasına yardımcı olabileceğini umuyoruz.

Dujiangyan'daki bu 564 eski sürücünün dikkatine! 30 gün sonra trafik ihlalleri ile uğraşmak veya yaptırımı uygulamak için çağrılmak yok
önceki
Bu belediye parti komitesi sekreteri, yeni yılın ilk gününde Wang Sicong'un ekip üyeleriyle neden bir araya geldi?
Sonraki
Xiaopeng Motors, resmi olarak Double 12'de listelenen Guangzhou Otomobil Fuarı'nda görücüye çıktı
Bahar Şenliğinin ruh işkencesi: Yemeye ek olarak başka ne yaptın?
Lei Jun çok üzücü: Snapdragon 845'in ilk modeli meşhur, sıra Mi 7'de değil
Kaşıklara ve yemek çubuklarına gerek yok, ağzınızda asılı duran yiyecekler eşit derecede lezzetli!
Samsung'un fiyatı nihayet "iyi", yeni tam ekran makine vivo'dan daha ucuz
Batılı tüketiciler performans arabalarını mı tercih ediyor? Audi satışları% 111 arttı
Çok sayıda LeTV mühendislik makinesi ikinci el pazarına girmiştir.Birçok sorunun anahtarı ucuzdur
Her şey düzgün değil! NASA'nın Mars Rover İniş Deneyimi "Altı Buçuk Dakika"
Nvidianın "AI hegemonyası" mevcut duruma ağırlık veriyor. Meydan okuyanlar nasıl savaşıyor?
Liu Hai de bir barkod gibidir
Android Bin Yuan makinesi ağır siklet oyuncuları başlattı
Xibo City 500'ün yeni arabası "Rezerv Fiyatını Aşıyor" Gitmezseniz, "100 milyon" u kaçıracaksınız.
To Top