Peking Üniversitesi, Microsoft Research Asia: Verimli büyük ölçekli grafik sinir ağı hesaplama

Xinzhiyuan Raporu

GNN (Grafik Yapay Sinir Ağı) Yapay sinir ağı modellerini büyük grafiklere uygulamak için doğal olarak bir talep yaratan yeni bir bilgi işlem modelini temsil eder.

Bununla birlikte, GNN'nin içsel karmaşıklığından dolayı, bu modeller mevcut derin öğrenme çerçevelerinin tasarım kapsamının ötesindedir. Ek olarak, bu modeller paralel donanımda (GPU gibi) verimli bir şekilde hızlandırılamaz.

Son zamanlarda, Peking Üniversitesi ve Microsoft Asya Araştırma Enstitüsü'nden bir dizi araştırmacı, bu sorunlara etkili çözümler öneren arXiv hakkında yeni bir makale yayınladı.

Makalenin başlığı Verimli Büyük Ölçekli Grafik Sinir Ağı Hesaplamasına Doğru :

Kağıt adresi: https://arxiv.org/pdf/1810.08403.pdf

Yazar şunları söyledi: "Biz NGra'yı öneriyoruz. İlk Derin sinir ağları için grafik tabanlı bir paralel işleme çerçevesi . "

NGra, derin sinir ağlarını şu şekilde temsil etmek için yeni bir SAGA-NN modelini tanımlıyor: Köşe programı (Köşe programları), her biri açıkça tanımlanmış bir grafik işlem aşamasında (Scatter, ApplyEdge, Gather, ApplyVertex).

Bu model yalnızca GNN'nin sezgisel olarak temsil edilmesine izin vermekle kalmaz, aynı zamanda verimli veri akışı gösterimiyle kolayca eşleştirilebilir. NGra, GPU çekirdekleri veya çoklu GPU otomatik grafik bölümleme ve yığın tabanlı akış işleme aracılığıyla ölçeklenebilirlik sorunlarını şeffaf bir şekilde çözer; veri konumunu, veri hareketini ve paralel işleme ve veri hareketinin örtüşmesini dikkatlice dikkate alır.

NGra, seyrek olmasına rağmen GPU üzerinde oldukça optimize edilmiş Dağılım / Toplama işlemleri aracılığıyla verimliliği daha da artırdı. Değerlendirmemiz, NGra'nın mevcut çerçeve tarafından doğrudan işlenemeyen büyük gerçek grafiklere genişletilebileceğini ve TensorFlow'un çoklu temel tasarımında yaklaşık olarak 4 kat daha hızlı .

Büyük ölçekli GNN'yi destekleyen ilk sistem

NGra, GPU'da ölçeklenebilir ve verimli bir paralel işleme motoru olan büyük ölçekli GNN'yi (Graph Neural Network) destekleyen ilk sistemdir.

NGra doğal olarak veri akışı (Dataflow) ve Köşe programı soyutlaması (Vertex-program soyutlaması) yeni bir modelde birleştirildi, onu SAGA-NN (Sinir Ağları ile Dağılım-Uygula-Topla-UygulaVertex) olarak adlandırdık.

SAGA, GAS (Topla-Uygula-Dağılım) modelinin bir varyantı olarak düşünülebilirse de, SAGA-NN modelindeki kullanıcı tanımlı işlev, kullanıcıların veri akışı soyutlamasını kullanarak tepe veya kenar verilerini (tensörler olarak kabul edilir) ifade etmelerine olanak tanır. Geleneksel grafik işleme için özel olarak tasarlanmamış sinir ağı hesaplamaları (örneğin PageRank, bağlı bileşen ve en kısa yol algoritmaları)

DNN gibi, GPU'nun verimli kullanımı GNN performansı için kritik öneme sahiptir ve büyük grafik yapılarıyla uğraştığı için daha da önemlidir. GPU'nun fiziksel sınırlamalarının ötesinde ölçeklenebilirlik elde etmek için NGra, grafikleri (köşe ve kenar verileri) şeffaf bir şekilde Yığın Ve SAGA-NN modelinde temsil edilen GNN algoritmasını yığın granülerliğine sahip operatörlerin veri akışı grafiğine dönüştürün, böylece tek bir GPU veya birden çok GPU üzerinde yığın tabanlı paralel akış işlemeyi etkinleştirin.

NGra motorunun verimliliği büyük ölçüde NGra'nın paralel akış işlemeyi nasıl yönettiğine ve programladığına ve ayrıca GPU'da temel grafik yayma operatörlerinin Scatter and Gather uygulamasına bağlıdır.

NGra, GPU belleğindeki veri alışverişini en aza indirmek ve GPU belleğindeki veri bloklarının yeniden kullanımını en üst düzeye çıkarmak için veri yerelliğine büyük önem verirken, bir akışta veri hareketini ve hesaplamayı örtüştürür.

Birden fazla GPU olması durumunda, GPU'lar arasında doğrudan veri bloklarını değiştirerek ana bilgisayar belleğindeki fazlalık veri hareketini önlemek için halka tabanlı bir akış mekanizması kullanır.

GPU tabanlı grafik motorlarının odaklandığı diğer geleneksel grafik işleme sahnelerinin aksine, GNN sahnelerinde değişken köşe verileri GPU cihaz belleğine sığmayabilir çünkü her bir köşe için veriler, bunun yerine bir özellik vektörü olabilir. Basit skaler. Bu nedenle, planımız her bir köşe veri erişiminde paralellik kullanmaya daha meyillidir ve böylece bellek erişim verimliliğini artırır.

NGra'yı elde etmek için tepe programı soyutlamasını ve grafik yayılma sürecinin özel operatörlerini kullanarak TensorFlow'u genişletiyoruz.

NGra'nın büyük grafikler için çeşitli GNN algoritmalarını desteklemek üzere genişletilebileceğini kanıtlamak için tek bir sunucunun ana belleğini ve GPU'nun bilgi işlem gücünü kullanıyoruz ve bunların çoğu mevcut derin öğrenme çerçeveleri tarafından doğrudan uygulanamıyor.

Küçük bir grafikte TensorFlow ile karşılaştırıldığında, GPU'yu destekleyebilir ve NGra 4 kata kadar hızlanma sağlayabilir. Etkinliğini kanıtlamak için NGra'nın çoklu optimizasyonlarının getirdiği iyileştirmeleri de kapsamlı bir şekilde değerlendirdik.

Bir sonraki bölüm SAGA-NN programlama soyutlamasını, NGra sisteminin bileşenlerini ve NGra'nın uygulanmasını ve değerlendirilmesini açıklayacaktır.

NGra program soyutlaması

Grafik tabanlı sinir ağı (GNN), grafik yapısına göre tanımlanan genel bir sinir ağı mimarisidir.

Grafikteki her köşe veya kenar, özelliği veya gömülmesi olarak tensör verileriyle (genellikle bir vektör) ilişkilendirilebilir. GNN birden çok katmanda istiflenebilir ve yinelemeli yayılma işlemi, aynı grafik üzerinde katman katman gerçekleştirilir.

Grafiğin her katmanında, tepe noktaları veya kenar öğeleri dönüştürülür ve kenarlar boyunca yayılır ve bir sonraki katmanda yeni öğeler oluşturmak için hedef köşelerde toplanır. Dönüşüm herhangi bir DNN hesaplaması olabilir.

Grafik ayrıca, üst katmanın kayıp fonksiyonunu hesaplamak için kullanılan her köşe, her kenar veya grafiğin tamamı için etiketler içerebilir. Sonra aşağıdan yukarıya doğru yürütün İleri beslemeli hesaplama (İleri beslemeli hesaplama) ve geri yayılım.

Şekil 1, 2 katmanlı bir GNN'nin ileri beslemeli hesaplamasını açıklamaktadır.

Şekil 1

Kullanırız Geçitli Grafik ConvNet (G-GCN) Somut bir örnek olarak algoritma. Graph ConvNet, keyfi grafikleri (bilgi grafiği gibi) işlemek için kullanılan, genellikle görüntü veri setlerine uygulanan evrişim işlemi kavramını özetler. Geçitli Grafik ConvNet ayrıca bir geçit mekanizması içerir, böylece model, öğrenme hedefi için hangi kenarların daha önemli olduğunu anlayabilir.

Her bir G-GCN katmanının ileri besleme hesaplaması Şekil 2'de gösterilmektedir:

Şekil 2: SAGA-NN modelinde Geçitli Grafik ConvNet katmanı

, Burada mat matris çarpımını ifade eder.

NGra sisteminin bileşimi

NGra, bir kullanıcı arayüzü olarak veri akışı ve köşe program soyutlamalarının bir kombinasyonunu sağlar.

NGra temel olarak şunları içerir:

  • Bir başlangıç aşaması , SAGA-NN modelinde uygulanan algoritmayı bir yığın-taneciklik veri akışı grafiğine (yığın-taneciklik veri akışı grafiği) dönüştürerek GPU'daki büyük grafikler için GNN'yi hesaplamayı mümkün kılar;

  • Bir Optimizasyon katmanı , Ana bilgisayar ve GPU cihaz belleği arasındaki veri hareketini en aza indirmek için bir programlama stratejisi oluşturur ve füzyon işlemlerini tanır ve gereksiz hesaplamaları siler;

  • Bir dizi geçerli Yayılma işlemi çekirdeği , GPU'da veri hareketini ve hesaplamayı örtüştürmek için akış tabanlı işlemeyi destekleyin;

  • dataflow yürütme çalışma zamanı . NGra, veri akışı yürütme çalışma zamanını işlemek için esas olarak mevcut veri akışı tabanlı derin öğrenme çerçevesini kullanır.

  • Şekil 3: Her GN katmanı için SAGA-NN Aşamaları

    NGra'nın optimizasyonu

    Şekil 4, ApplyEdge aşamasındaki matris çarpım işlemini açıklar:

    Şekil 4

    Şekil 5, matris çarpımının ApplyVertex aşamasına taşındığı optimize edilmiş veri akışı grafiğini göstermektedir:

    Figür

    Şekil 7, birden çok GPU'nun mimarisidir

    Şekil 7: Çoklu GPU mimarisi

    NGra'nın değerlendirmesi

    Yaklaşık 2.900 satır C ++ kodu ve 3000 satır Python kodu kullanarak TensorFlow (v1.7) üzerinde NGra'yı uyguladık. NGra, TensorFlow'u ön uçtan genişletir ve verimli grafik yayılımı ve halka tabanlı akış çizelgeleme şemaları elde etmek için SAGA-NN programlarını yığın-tanecikli veri akışı grafiklerine, birkaç dağılım / toplama operatörüne dönüştürür.

    Aşağıdakiler değerlendirme sonuçlarıdır. Değerlendirme, NGra'nın verimliliğini ve ölçeklenebilirliğini ve ayrıca son teknoloji sistem TensorFlow ile karşılaştırmayı kanıtlıyor.

    Tablo 1: Veri seti (K: bin, M: milyon)

    Şekil 13: TensorFlow (TF), cuSPARSE ve NGra'nın (NG) farklı yoğunluklardaki grafiklerde yayılma çekirdek süresi

    Tablo 2: TensorFlow (ms) ile yineleme süresinin karşılaştırılması

    Şekil 14: Farklı uygulamaların Akış planlama stratejilerinin karşılaştırması. (Veri: ortada reddit)

    Şekil 15: NGra'nın farklı uygulamalardaki genişletilmiş performansı

    Şekil 16: Büyük görüntülerde NGra'yı hızlandırmak için farklı uygulamaların kullanılması

    sonuç olarak

    GNN, doğal olarak büyük grafiklere sinir ağı modellerinin uygulanması için bir talep yaratan yeni bir bilgi işlem modelini temsil ediyor. GNN eğitiminin doğasında bulunan karmaşıklık nedeniyle, verimli ve ölçeklenebilir paralel hesaplamayı desteklemek zordur.

    NGra, GNN'yi destekleyen ilk paralel işleme çerçevesidir. Yeni bir programlama soyutlaması kullanır, ardından onu bir veri akışına eşler ve optimize eder ve ardından GPU'da verimli bir şekilde yürütür.

    Kağıt adresi: https://arxiv.org/pdf/1810.08403.pdf

    Topluluğa katıl

    Xinzhiyuan AI teknolojisi + endüstri topluluğunun işe alımında, AI teknolojisi + endüstri uygulamasına ilgi duyan öğrenciler, gruba katılmak için küçük bir WeChat hesabı ekleyebilir: aiera2015_3; incelemeyi geçtikten sonra gruba katılmaya davet edeceğiz. Topluluğa katıldıktan sonra grubu değiştirdiğinizden emin olun Açıklamalar (isim-şirket-pozisyon; profesyonel grup incelemesi katıdır, lütfen anlayın).

    Bahar Şenliği'nde görev başındayım Her gün 500.000'den fazla insan Pekin'e akın ediyor, ne göreceğim
    önceki
    Hanchuan Halk Hastanesi, Hubei Eyaletinin önemli klinik kan nakli uzmanlıklarının yerinde incelemesini kabul ediyor
    Sonraki
    Bazı insanlar yeni ağır hizmet arabasının çorba ile değiştirildiğini ama ilaçla değiştirilmediğini söylüyor?
    Mercedes-Benz X-Class pikap: Navarre Brothers versiyonu kadar basit değil
    Hangisinin Keras ve TensorFlow'dan daha iyi olduğunu anlamak için bir makale
    Evde 10.000 yuan'dan fazla kayıp ve gelininin evlada dindarlığını sık sık öven Hangzhou teyzesi yardım edemez ama şüphe eder ... Netizen: Plastik kayınvalide aşkı
    A hissesinin yavaş olması gerektiğine eminim boğa
    1.4T, 9AT, dört tekerlekten çekiş, Jeep rehberi hakkında kaç endişeniz ve sorunuz var?
    Futbol Birliği Kupası'na Genel Bakış: Dört Çin Süper Ligi takımının tümü ilerler, TEDA dar bir penaltı atışıyla kazanır, Luneng kazanır
    Jingdezhen'de büyük değişiklikler! 200'den fazla önde gelen kadro okuduktan sonra şaşırdı!
    Google, "iyi bir küresel yapay zeka" bulmak için 170 milyon ödül sunuyor. İncelemeye Jeff Dean liderlik ediyor. Çin üniversitelerinin bir şansı var!
    Chengyuan şapka takıyor ve Cui Peng göz alıcı bir performans sergiliyor, Luneng, Yanbian Beiguo'yu 6-0 yenerek Çin Fortune'a karşı bir sonraki turda
    Anti-Japon Savaşında Zhu De'nin Büyük Ruhsal Tutumu
    Renault Dongfeng Renault SUV ailesini tecrübe ettiğimde beni en çok heyecanlandıran şey Megane R.S. değil mi?
    To Top