Kernel and launch time optimizations for deep learning frameworks
Derin öğrenme çerçeveleri için çekirdek ve ateşleme zamanı iyileştirmeleri
- Tez No: 566112
- Danışmanlar: DR. ÖĞR. ÜYESİ DİDEM UNAT
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2019
- Dil: İngilizce
- Üniversite: Koç Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- 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
- 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
2023
Elektrik ve Elektronik MühendisliğiGebze Teknik ÜniversitesiElektronik Mühendisliği Ana Bilim Dalı
DOÇ. DR. ENGİN AFACAN
- 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
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKoç ÜniversitesiBilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı
Assoc. Prof. Dr. DİDEM UNAT ERTEN
- 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
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKoç ÜniversitesiBilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı
DOÇ. DR. DİDEM UNAT ERTEN
- 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
2015
Gıda Mühendisliğiİstanbul Teknik ÜniversitesiGıda Mühendisliği Ana Bilim Dalı
PROF. DR. BERAAT ÖZÇELİK
- Design and implementation of a joyce kernel for DOS
Başlık çevirisi yok
KUTLUK TESTİCİOĞLU
Yüksek Lisans
İngilizce
1991
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiDOÇ.DR. NADRA ERDOĞAN