Geri Dön

Kernel and launch time optimizations for deep learning frameworks

Derin öğrenme çerçeveleri için çekirdek ve ateşleme zamanı iyileştirmeleri

  1. Tez No: 566112
  2. Yazar: DOĞA DİKBAYIR
  3. Danışmanlar: DR. ÖĞR. ÜYESİ DİDEM UNAT
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2019
  8. Dil: İngilizce
  9. Üniversite: Koç Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 75

Özet

Derin öğrenme, bilgisayar görüşünden doğal dil işlemeye kadar pek çok alanda bilgi çıkartmak ve keşfetmek için öne çıkan bir araç haline gelmiştir. GPU ve FPGA gibi modern hızlandırıcıların artan ulaşılabilirliği sayesinde derin öğrenme araştırmacıları daha güçlü ve daha karmaşık sinir ağı mimarileri tasarlama fırsatı bulmuştur. Ancak eğitim süreleri ve hafıza kısıtlamaları halen derin öğrenme araştırma alanında darboğaz olmaktadır. Sistem kaynaklarını kullanmak, eğitim verimliliğini iyileştirmek açısından gereklidir.Konvolüsyon ve matris çarpımı gibi anahtar sayısal işlemleri bütün işlemciler (ör: CPU çekirdekleri ve GPU) arasında planlamak bu hususta çok önemli bir hale gelmiştir. Bu kısıtlamaları hedef alan mevcut çözümler şeffaf değildir yani kullanıcının manüel parçalamasını gerektirerek derin öğrenme çerçevelerinin eğitim performansını kısıtlamaktadır. Bu tez bu problemi iki farklı açıdan ele almaktadır: çekirdek iyileştirmesi ve model parallelliği. İlk önce sinir ağı eğitiminde sıkça kullanılan çok boyutlu indirgeme işlemi analiz edilip iyileştirilmiştir. İndirgeme işleminin matematiksel özellikleri birden fazla boyutun aynı anda indirgenip gereksiz çekirdek ateşlemelerinin yok edilmesi için kullanılmıştır. Geliştirdiğimiz çekirdek yazılım performansını, iyileştirme yapılmış Knet derin öğrenme çerçevesi ile karşılaştırdığımızda, 56 kata kadar hızlanma ve NVIDIA K20m GPU makinesinin teorik bant genişliğinin 75%'ini elde etmekteyiz. Bunlara ek olarak, yazılımcının programlama eforunu azaltmak ve kaynak kullanımını arttırmak için bir aygıt atama algoritması geliştirilmiştir. Algoritma, ağ ve katmanlarındaki işlemsel bağlılıkları ve hafıza aktarımlarını değerlendirerek, bir maliyet modeli oluşturmaktadır. Daha sonra değiştirilmiş çerçeve çalışma zamanı bu maliyet modeli ve bazı buluşsal koşulları kullanarak işlemleri aygıtlara yerleştirmektedir. Ağın farklı kısımlarını birden çok aygıta yerleştirme işleminin bütün karmaşıklığı çerçevemiz tarafından kontrol edilmektedir. Önerilen çalışma zamanı, bilinen bir derin öğrenme çerçevesi olan TensorFlow'un üstüne geliştirilmiştir ve sonuçları, popüler birer çizge parçalama ve yük paylaştırma kütüphaneleri olan, METIS ve Zoltan sonuçları ile karşılaştırılmıştır. Yapılan deneylerde, performans ölçümleri farklı ve modern derin sinir ağlarının kullanılması ile gerçekleştirilmiştir

Özet (Çeviri)

Deep learning has become a prominent tool for extracting and exploring information in a wide selection of areas ranging from computer vision to natural language processing. With the increasing availability of modern hardware accelerators like GPUs and FPGAs, deep learning researchers had the opportunity to design more powerful and complex neural network architectures. Training time and memory restrictions, however, still act as a bottleneck in deep learning research. Utilizing system resources is essential in order to maximize training efficiency. Scheduling key computational operations such as convolution and mat-mul efficiently across all processing units (e.g. CPU cores and/or GPUs) in the system while minimizing the time spent on data communication is crucial. Existing solutions addressing these restrictions are not transparent and require manual partitioning of the model limiting the training performance of the frameworks. This thesis, attacks this problem from two angles: kernel optimization and model parallelism. First the multidimensional reduction operation which is a frequently used operation in neural network training is analyzed and optimized. The mathemetical properties of the reduction operation are used to concurrently reduce many of its dimensions and eliminate unnecessary kernel launches. We compare our kernel's performance with the optimized Knet deep learning framework and achieve up to 56x speed-up and 75% of the theoretical device bandwidth of an NVIDIA K20m GPU. In addition, a device placement algorithm based on depth-first search is proposed to reduce the programming effort for the researcher and improve resource utilization. The partitioning algorithm creates a cost-model for the target neural network based on the computational dependencies and memory transfers between the operations involved in the network and its and layers. Then the altered framework runtime uses this cost model and heuristics to place the operations on devices. All the complexity of assigning different parts of the network into multiple devices is handled by our run-time, with high resource utilization. The proposed runtime is implemented on top of popular deep learning framework Tensorflow for evaluation and compared with the popular graph partitioning and load balancing tools METIS and Zoltan. Different state-of-the-art neural network architectures and training datasets are used in the experiments to measure the performance.

Benzer Tezler

  1. Artificial neural network-powered analog/RF circuit design automation

    Yapay sinir ağı destekli analog/RF devre tasarım otomasyonu

    ENES SAĞLICAN

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Elektrik ve Elektronik MühendisliğiGebze Teknik Üniversitesi

    Elektronik Mühendisliği Ana Bilim Dalı

    DOÇ. DR. ENGİN AFACAN

  2. Autonomous execution for multi-GPU systems: CPU-free blueprint and compiler support

    Çoklu GPU sistemleri için otonom yürütme: CPU'suz tasarım ve derleyici desteği

    JAVID BAYDAMIRLI

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKoç Üniversitesi

    Bilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı

    Assoc. Prof. Dr. DİDEM UNAT ERTEN

  3. GPU-centric communication schemes: When CPUs take a back seat

    GPU-odaklı haberleşme sistemleri: CPU'ların arka koltuğa geçtiği zamanlar

    ISMAYIL ISMAYILOV

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKoç Üniversitesi

    Bilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı

    DOÇ. DR. DİDEM UNAT ERTEN

  4. Gıda atığı olan vişne, nar, kabak ve kayısı çekirdeklerinin kek üretiminde değerlendirilmesi

    Utilization of cherry kernel, pomegrante seed, pumpkin seed and apricot kernel flours for cake production

    HALİDE EZGİ TUNA

    Yüksek Lisans

    Türkçe

    Türkçe

    2015

    Gıda Mühendisliğiİstanbul Teknik Üniversitesi

    Gıda Mühendisliği Ana Bilim Dalı

    PROF. DR. BERAAT ÖZÇELİK

  5. Design and implementation of a joyce kernel for DOS

    Başlık çevirisi yok

    KUTLUK TESTİCİOĞLU