Xia Yi Ruopu Derleyin ve organize edin
Qubit Üretildi | Genel Hesap QbitAI
Amazon ve Washington Üniversitesi, açık kaynaklı uçtan uca derin öğrenme derleyicisi NNVM derleyicisini bugün ortaklaşa yayınladı.
İlk hatırlatıcı, NNVM derleyicisi NNVM .
NNVM, Washington Üniversitesi'nden Dr. Chen Tianqi ve diğerleri tarafından 2016 yılında piyasaya sürülen modüler bir derin öğrenme sistemidir. Bu yılın Ağustos ortasında, derin öğrenme modelini değiştirmek için donanıma derin öğrenme iş yüklerini dağıtan uçtan uca bir IR yığın TVM başlattılar. Basitçe çeşitli donanımları takın.
O sırada Chen Tianqi, TVM + NNVM'yi "çeşitli donanımlara derin öğrenme için eksiksiz bir optimizasyon araç zinciri" olarak tanımladı ve bu sefer başlatılan NNVM derleyicisi, TVM araç zincirine dayalı bir derleyicidir.
Proje yazarlarından Chen Tianqi, bu derleyiciyi Weibo'da tanıttı:
Bugün, TVM araç zincirine dayalı bir derin öğrenme derleyicisi olan NNVM derleyicisini yayınladık. Mxnet, pytorch, caffe2, coreml vb. Dahil olmak üzere derin öğrenme modellerinin donanıma derlenmesini ve konuşlandırılmasını destekler ve çok seviyeli ortak optimizasyon sağlar. Daha yüksek hız ve daha hafif dağıtım. Destek, Raspberry Pi, sunucu ve çeşitli mobil cihazlar ile cuda, opencl, metal, javascript ve çeşitli diğer arka uçları içerir. Derin öğrenme, derleme ilkeleri, yüksek performanslı bilgi işlem ve donanım hızlandırma ile ilgilenen öğrencileri açık kaynak proje topluluğunu tanıtmak ve yönetmek için dmlc'ye katılmaya davet edin.
NNVM derleyicisi CoreML'yi destekleyerek geliştiricilerin CoreML modellerini iOS olmayan cihazlara dağıtmasına olanak tanır.
AWS AI baş bilim insanı Li Mu (MXNet yazarı), Amazon blogundaki bir makalede, bu derleyicinin lansmanının, derin öğrenme çerçevelerinin AI geliştirme topluluğuna çeşitlendirilmesinin getirdiği üç zorluğun üstesinden gelmek olduğunu yazdı:
Bir,
için Algoritma geliştiricisi Diğer bir deyişle, her bir AI çerçevesinin ön uç etkileşimi ve arka uç uygulaması arasında birçok farklılık olduğu için, çerçeveyi değiştirmek çok zahmetlidir ve geliştirme ve sunum sürecinde birden fazla çerçeve kullanılabilir.
Örneğin, bazı Amazon AWS bulut hizmeti kullanıcıları EC2'de hızlandırılmış performans elde etmek için Caffe modelini MXNet'e dağıtmak ister.
Bu soruna yanıt olarak, Facebook ve Microsoft da birlikte bir modeller arası dönüştürme aracı olan ONNX'i yayınladı.
iki,
Çerçeve geliştiricisi Çerçevenizin cep telefonu yongalarından veri merkezi GPU'larına kadar çeşitli donanımlara uygulanabilmesini sağlamak için birden çok arka uç bulundurmanız gerekir.
Örneğin, MXNet'in Nvidia GPU'nun cuDNN'sini ve Intel CPU'nun MKLML'sini desteklemesi gerekir.
üç,
Nereden Çip tedarikçisi Bakış açısına göre, geliştirdikleri her yeni çip için birden fazla AI çerçevesini desteklemeleri gerekir.Her çerçeve iş yüklerini farklı bir şekilde ifade eder ve yürütür.Bu nedenle, evrişim gibi bir işlem bile farklı bir yöntem gerektirir. Tanımlamak için.
Birden çok çerçeveyi desteklemek, büyük miktarda işi temsil eder.
NNVM derleyicisi, çerçevedeki derin öğrenme modelini doğrudan donanıma dağıtarak doğal olarak bu sorunları çözer.
NNVM derleyicisi, ön uç çerçevesindeki iş yükünü donanım arka ucuna doğrudan derleyebilir.Yüksek seviyeli grafiğin ara gösteriminde (IR) ortak derin öğrenme iş yüklerini ifade edebilir ve optimize edebilir.Ayrıca, farklı donanım arka uçları için hesaplama grafiklerini ve minimum değerleri dönüştürebilir. Bellek kullanımını optimize edin, veri dağıtımını optimize edin ve bilgi işlem modlarını entegre edin.
Derleyicinin tipik iş akışı aşağıda gösterilmiştir:
Bu derleyici, önceden yayımlanan TVM yığınındaki iki bileşene dayanmaktadır: NNVM, hesaplama grafikleri için kullanılır ve TVM, tensör işlemleri için kullanılır.
Bunların arasında, NNVM'nin amacı, farklı çerçevelerin iş yükünü standart hesaplama grafikleri olarak göstermek ve ardından bu yüksek seviyeli grafikleri yürütme grafiklerine dönüştürmektir.
TVM, tensör indeksi hiyerarşisindeki operatörlerin uygulanmasını basitleştirmek için donanımdan bağımsız belirli bir alan dili sağlar. Ek olarak, TVM ayrıca çoklu iş parçacığı, döşeme, önbelleğe alma vb. Destekler.
Derleyicideki NNVM modülü, aşağıdaki şekilde gösterilen derin öğrenme çerçevesini destekler:
Spesifik olarak, MXNet'in hesaplama grafiği doğrudan bir NNVM grafiğine dönüştürülebilir ve Keras'ın hesaplama grafiği için doğrudan destek de geliştirme aşamasındadır.
Aynı zamanda, NNVM derleyicisi Microsoft ve Facebook tarafından yakın zamanda piyasaya sürülen ONNX ve Apple CoreML gibi diğer model formatlarını da destekler.
ONNX'i destekleyerek, NNVM derleyicisi Caffe2, PyTorch ve CNTK çerçevelerini destekler; CoreML'yi destekleyerek bu derleyici Caffe ve Keras'ı destekler.
Derleyicideki TVM modülü şu anda birden çok kod oluşturucu ile birlikte gelir ve X86 ve ARM mimari CPU'lar için LLVM IR oluşturma ve çeşitli GPU'lar için CUDA, OpenCL ve Metal çekirdek çıkışı dahil olmak üzere çeşitli arka uç donanımlarını destekler.
NNVM derleyicisi, en iyi performansı elde etmek için grafik düzeyinde ve tensör düzeyinde optimizasyonu birleştirir. Geleneksel derin öğrenme çerçevesi, grafik optimizasyonunu ve dağıtım çalışma zamanını paketlerken, NNVM derleyicisi optimizasyonu gerçek dağıtım çalışma zamanından ayırır.
Bu yöntemle, derlenen modülün yalnızca en küçük TVM çalışma süresine dayanması gerekir; bu, bir Raspberry Pi veya mobil cihaza yerleştirildiğinde yalnızca yaklaşık 300 KB yer kaplar.
Chen Tianqinin ekibi, NNVM derleyicisinin performansını kıyasladı ve MXNet ile karşılaştırdı. Bu test, iki tipik donanım yapılandırmasına dayanmaktadır: Raspberry Pi'de ARM CPU ve AWS'de Nvidia GPU.
Nvidia GPU
GPU karşılaştırmaları ve programları Leyuan Wang (AWS / UCDavis) ve Yuwei Hu (Tucson) tarafından sağlanmaktadır. Arka uç olarak CUDA8 ve CuDNN7'yi kullanarak Nvidia K80'de NNVM derleyicisini ve MXNet'i karşılaştırdılar. Bu çok güçlü bir temeldir, çünkü MXNet, CuDNN'den en iyi çekirdeği seçmek için otomatik ayarlama işlevini açar. Ayrıca, MobileNet iş yükünü optimize etmek için MXNet'te optimize edilmiş derinlik çekirdeğini de kullandılar.
Gördüğünüz gibi, NNVM derleyicisi tarafından üretilen kod K80'deki MXNet'ten daha iyidir. Bu iyileştirmeler grafik ve çekirdek düzeyindeki optimizasyonlardan kaynaklanmaktadır. NNVM derleyicisinin, CuDNN gibi harici kitaplıklara güvenmeden tüm optimize edilmiş GPU çekirdeklerini kendi kendine yükselttiğini belirtmek gerekir.
Ahududu Pi 3b
Raspberry Pi derleme yığını, Ziheng Jiang (AWS / FDU) tarafından sağlanır. NNVM ve MXNet'i karşılaştırmak için OpenBLAS ve NNPack'i kullandılar ve MXNet'in en iyi performansını elde etmek için Winograd evrişimini 3 × 3 evrişim için NNPack'te etkinleştirmek, çoklu okumayı etkinleştirmek ve ek zamanlamayı devre dışı bırakmak gibi farklı ayarlar denediler Program (tüm iş parçacıkları NNPack tarafından kullanılmaktadır).
Sonuç yukarıdaki şekilde gösterilmektedir NNVM derleyicisi tarafından üretilen kod ResNet18'de iki kat daha hızlıdır. MobileNet'teki boşluk, esas olarak mevcut CPU DNN kitaplığındaki derin evrişim eksikliğinden kaynaklanmaktadır. NNVM derleyicisi, doğrudan verimli ARM kodu üretmekten yararlanır.
NNVM derleyicisinin GitHub adresi:
https://github.com/dmlc/nnvm
Bu projenin gelişimi, Washington Üniversitesi Allen Bilgisayar Bilimleri Okulu'ndan Chen Tianqi, Thierry Moreau, Haichen Shen, Luis Ceze, Carlos Guestrin ve Arvind Krishnamurthy ve Amazon AWS AI ekibinden Ziheng Jiang dahil olmak üzere hala TVM yığını ekibidir.
Ayrıca, TVM blogunun sonunda, bir grup topluluğa katkıda bulunanlara teşekkür ettim:
Yuwen Hu (Tucson), Leyuan Wang (AWS / UCDavis), Joshua Z. Zhang (AWS) ve Xingjian Shi'ye (HKUST) erken katkılarından dolayı özel teşekkürler. Ayrıca tüm TVM yığını katkıda bulunanlara teşekkür etmek istiyoruz.
- Bitiş -
Samimi işe alım
Qubit, editörleri / muhabirleri işe alıyor ve merkezi Pekin, Zhongguancun'da bulunuyor. Yetenekli ve hevesli öğrencilerin bize katılmasını dört gözle bekliyoruz! İlgili ayrıntılar için lütfen QbitAI diyalog arayüzünde "işe alım" kelimesini yanıtlayın.
Qubit QbitAI
' ' Yapay zeka teknolojisi ve ürünlerindeki yeni eğilimleri takip edin