Approximate artificial neural network hardware aware synthesis tool

thumbnail.default.alt
Tarih
2021
Yazarlar
Nojehdeh, Mohammadreza Esmali
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Lisansüstü Eğitim Enstitüsü
Özet
In the previous decade, artificial neural networks (ANNS) have attracted considerable attention from researchers in many areas and have become a favorite method; from business to aerospace applications. We live in the information age where this information feeds artificial intelligence (AI). According to Forbes' estimate, over the last two years alone 90 percent of the data in the world was generated. At first glance, processing more information may seem like a dissipation of more power in central processing units(CPUs) and graphic processing units (GPUs) or spending more time to obtain the results, but for the portable systems due to limitations in battery capacity, power, and hardware area limitations, different concerns emerge. For example, less consumption of energy is vital to extend the battery supporting time for mobile devices. The problem starts to be bold when software engineers regardless of the hardware sources (especially for portable devices) develop different ANNs architecture, where they intend to achieve a network with the best performances. Similarly, hardware engineers' AI knowledge is limited and any change within hardware design in lack of this knowledge may yield a catastrophic defect in the expected performance. As a result, this uninformed state yields a gap between the hardware and software sides of ANNs. The emerged gap provides a pitch to hardware and software researchers to play their best performance, where more information about the rival side makes their performance more eye-catching. By obtaining this gap, the co-design method or hardware-aware training methods become prevalent recently. The object of this dissertation is also to develop a methodology to realize the ANNs with minimum hardware cost by regarding the software performance. Limitation in hardware cost, consumed energy, and dissipated power for devices leads designers to find new architectures and approaches. Approximate computing is one of them, where this method is an useful technique for error essence systems. By leveraging the approximate level, a trade-off between the output accuracy and hardware cost is attainable. For example, assume a 1-bit exact adder costs 18 transistors, and by removing 3 transistors, a new approximate adder by 15 transistors is achievable, but the new approximate adder generates inexact results when the input is $(0,0)$, and suppose that the results for the rest set of the inputs$((0,1),(1,0),(1,1))$ are correct. Therefore, the approximate adder saves 3 transistors at the cost of 1 inexact result. Generally, approximate computing is apple of designers' eye in applications with error tolerance capability, consequently, error tolerance inherence of ANNs nominates approximate computing as a potential method to reduce the hardware complexity of ANNs. Since multipliers and adders are fundamental building blocks of ANNs, in this thesis, by introducing novel approximate multipliers and adders we replace them with exact adders and multipliers. As mentioned earlier, approximate computing is a trade-off between accuracy and hardware cost, to adjust this trade-off, we synthesized the proposed approximate blocks based on the desired error metric. Also, we proposed an equation to calculate the mean absolute error of the introduced approximate multiplier and adders. Based on our best knowledge, the proposed approximate blocks are the only ones which are synthesized based on the mean error value. In next step, we introduced a new error metric called the approximate level to evaluate the performance of the proposed approximate blocks in ANNs. On the other hand, ANNs are made up of a lot of multipliers and adders, where the search space for the best combination of these blocks grows with the increase of bit-width or neuron numbers. To tackle this problem and by exploiting the proposed error metric, we introduce a new search algorithm to find the appropriate combination of the approximate and exact versions of the arithmetic blocks by taking into account the expected accuracy of ANNs. Also, in this thesis we realized ANNs under different synthesis techniques to obtain the pros and cons of each approach. Since the parallel architecture requires a large area we considered the time-multiplexed architecture as the main architecture method, where computing resources are re-used in the multiply-accumulate (MAC) blocks. As an application, the MNIST and Pen-digit database are considered. To examine the efficiency of the proposed method, various architectures and structures of ANNs are realized. Our experimental results show that exploiting the proposed approximate multipliers yields smaller area and power consumption compared to those designed using previously proposed prominent approximate multipliers. Also, according to these results, concurrent use of approximate multipliers and adders provides remarkable results in terms of hardware cost, where we obtain $60\%$ and $40\%$ reduction in energy consumption and occupied area of the ANN design with the same or better hardware accuracy compared to the exact adders and multipliers. To demonstrate the proposed method's scalability, we propose an efficient method to realize a convolution layer of convolution neural networks (CNNs). Inspired by the fully-connected neural network architecture, we introduce an efficient computation approach to implement convolution operations.
Yapay Sinir Ağları (YSA) geçtiğimiz on yılda pek çok alanda araştırmacılar ve yatırımcılar tarafından büyük ilgi görüyor. Forbes'in tahminine göre "Yalnızca son iki yılda dünyadaki verilerin yüzde 90'ının üretildiği" bilgi çağında yaşıyoruz. İlk bakışta, daha fazla bilginin işlenmesi CPU'larda ve GPU'larda daha fazla gücün harcanması veya sonuç elde etmek için daha fazla zaman harcanması gibi görünüyor, ancak taşınabilir sistemler için kısıtlı pil kapasitesi, güç ve donanım alanı sınırlamalar nedeniyle farklı endişeler ortaya çıkıyor. Bu sınırlamaları göz önünde bulundurarak tasarımcılar yeni mimarilere yönleniyorlar, mesela pil destek süresini uzatmak için daha az enerji tüketimi hayati önem taşır ve kullanılan mimari en az güç tüketecek şekilde tasarlanıyor. Geleneksel olarak, bir devre veya sistem bloğunun tasarımında olası uygulamalar gözetilerek en kötü durum analizi yapılır ve sadece en yüksek doğruluk istenen uygulamaya göre tasarım yapılır. Uygulamaların ayrı ayrı gerektirdiği minimum işlem doğrulukları gözetilmez. Örnek vermek gerekirse, telefonlarımızda sıklıkla kullandığımız hesap makinesi ve fotoğraf iyileştirme/küçültme uygulamalarının ikisi için de aynı aritmetik mantık birimi (AMB) kullanılır. Oysaki hesap makinesi için AMB'nin hatasız işlem yapması elzemken, fotoğraf uygulaması için yüksek doğruluk şart değildir ve bu işlem yaklaşık hesaplama yapan bir AMB ile de yapılabilir. Böylece güç tüketimi önemli ölçüde azaltılabilir. Önerilen tezde yaklaşık hesaplama yapabilen ve düşük güç tüketimli aritmetik devre blokları tasarlanacaktır ve bu bloklar yapay sınır ağlarında farklı doğrulukta kullanılmak üzere değişik mimarilerde kullanım özelliklerine sahip olacaktır. Bir üst seviyede, yani sistem seviyesinde, tasarlanacak devre bloklarının seçilen mimaride nasıl en verimli şekilde kullanılacağının/yapılandırılacağının belirlenmesi gerekmektedir ve bu oldukça zor bir problemdir. İçerisinde n adet aritmetik işlem bloku bulunan ve her bir işlem blokunun m adet yapılandırılabilir seviyesi olan bir sistem için, optimum çözüm en kötü halde $m^n$ değişik durumu gözetilerek bulunur. Çözüm bulmak için brute-force (kaba kuvvet) yaklaşımı kullanmak pratik limitlerin oldukça uzağındadır. Bu çalışmada, optimum çözümlere yakın çözümler bulabilen hiyerarşik bir yaklaşım geliştirilmektedir. Önerdiğimiz yaklaşım, sistemden istenen doğruluk veya kalite seviyesine göre, her bir devre blokunun sağlaması gereken doğruluk performansını belirlemektedir ve sonuç olarak sistemin güç tüketimi minimize edilmektedir. Bu tezde hesaplama devreleri toplama ve çarpma devreleri olarak iki ayrı kolda incelenip, ilk adımda farklı güç, alan ve hata profillerine sahip temel toplama ve çarpma devreleri lojik olarak sentezlenmektedir. Bu aşamada temel toplama devresinden kasıt, 1 bitlik tam toplayıcı devresidir; temel çarpıcı devresi ise çarpıcı mimarisine göre değişiklik gösterir. Aritmetik işlem devresinden beklenen hata profilini sağlayacak N bitlik toplayıcıya/çarpıcıya ise farklı temel aritmetik işlem blokları birleştirilerek ulaşılmaktadır. Birleştirme aşamasında, yeni bir algoritma önererek en düşük güç tüketimi ile istenen hatanın altında kalmayı başaran aritmetik işlem devreleri sentezlenmektedir. Bu tezde, bir öğrenme ağı, yaklaşık aritmetik işlem devrelerinin hatalarını tolere edebilecek şekilde kurulması hedeflenmektedir. Farklı ağ mimarilerinin yaklaşık hesaplamaya duyarlılığı analiz edilerek, yaklaşık hesaplamaya uygun, değişen paradigmaları takip edebilen, kısmen veri gürültüsüne karşı dayanıklı bir öğrenme tekniği seçilecektir. Sistemin başarımı öğrenme ağı ve algoritmasının parametrelerine (katman sayısı, öğrenme adımı vs.) hassasiyetle bağlıdır. Bu öğrenme parametrelerinin, hata profilleri belli düşük güç tüketimli aritmetik işlem devreleri ile birlikte optimize edilmesi hedeflenmektedir. Alan ve güç verimliliğini dikkate alarak farklı toplayıcı ve çarpıcı mimarileri arasında, Ripple Carry toplayıcı ve Wallace-Tree çarpıcı, devre sentezlerinde kullanılmaktadır. Yaklaşık Rıpple Carry toplayıcı ile ilgili çalışmaların incelenmesinde, geleneksel hatasız tasarım metodolojisine bir eğilim görüyoruz. Bu tasarımlarda n-bitlik toplayıcının toplam performansı belirlemek için 1- bitlik toplayıcının ölçümleri toplanıyor. Her ne kadar bu yöntem, güç, alan ve gecikme metriklerine geçirilse, toplam n-bitlik Ripple Carry toplayıcının ortalama veya en kötü hata durumu, toplam hata toplamdan oldukça farklı olabilir. Bununla motive olmuş, ilk önce 1-bit tam toplayıcı "Sum" ve "Carry", bitleri birbirinin hatasın azaltarak tasarlanmış, üstelik öyle toplayıcılar tasarlanıyor ki, iki ardışık yaklaşık toplayıcı, biriktirme hataları üretemiyorlar. Örneğin, eğer bir 1-bit toplayıcı beklenen lojik 0 çıktısına yanlışlıkla 1 ürettiği durumunda, bir sonraki toplayıcının çıkışının hatasız veya hatayı düşürerek sonuç verdiğini garanti ediyoruz, yani ikinci toplayıcı beklendiği 1 sayısı yerine ya 0 yâda hatasız 1 çıkışı üretiyor. Sonuç olarak, önerilen toplayıcılar diğer literatürdeki çalışmalara göre ayni hata kısıttı sağlayarak daha küçük devre alanı ve daha az güç tüketimi sunar. Bir Rıpple Carry toplayıcıyı uygulamak için başka bir yaklaşım, yaklaşık lojik sentezi araçlarını kullanmaktır. Bu araçlar, alanı belirli bir hata kısıtlamasıyla optimize etmek için kullanılan genel amaçlı araçlardır. Neredeyse en uygun çözümleri bulmak, geleneksel yaklaşık olmayan sentez araçlarına kıyasla çok daha fazla zamana ihtiyaç duyduğundan ve / veya geniş alan elde ettikleri için toplayıcı ve çarpıcı için uygun bir yöntem değildir. Örneğin, bu yöntemler ile alan tasarruflu bir 32-bit toplayıcısını uygularken, basit kesme yöntemi aynı hata değeri için daha çok alan tasarrufu sağlarlar. Genel olarak toplayıcı ve çarpıcının hatasını hesaplamak için bütün giriş ihtimalleri denemek zorundayız. Bit uzunluğunu artırarak hesaplama süresinin üstel olarak artırmasını göz önünde bulundurmalıyız. Bu tez çalışmasında hata hesabı yapmak için, bir matematik denklemi geliştirilmektedir. Önerilen yöntem bit uzunluğu ile doğrusal olarak artıyor ve hata hesap yapmak suresin büyük bir ölçüde azaltılıyor. Öte yandan, bu denklemi kullanarak değişik hatalar için yaklaşık toplayıcı üreten bir sentez metodu önerilmektedir. Sistematik sentez tekniğimiz hata hesaplamaları açısından oldukça hızlı ve aynı zamanda doğrudur. Ayrıca alan değerleri, lojik sentezi araçlarında elde edilenlerden çok daha küçüktür. Önerilen tezde, yaklaşık toplayıcı ile birlikte, üç aşamadan oluşan Wallace-Tree çarpanlarını da inceliyoruz. Çarpıcılar için hem kısmi birikiminde hem de nihai sonuç toplanmasında yaklaşık tam ve yarı-toplayıcılar öneriyoruz. Tasarım stratejimiz, 1-bit toplayıcıların girdi atamalarının ortaya çıkma ihtimallerine dayanmaktadır yanı daha düşük olasılıkları olan giriş atamaları için daha yüksek hata oranları belirleriz. Örnek olarak, iki girişi olan bir devreyi düşünün ve iki farklı senaryoyu düşünün. İlk önce, her iki giriş de 1 ve 0 değerini, 1/2 eşit olasılıkla alır. İkinci senaryoda, girişler 1/4 ve 3/4 olasılıklarla sırasıyla 1 ve 0 değerini alır. Bu iki senaryoda, belirli bir hata sınırlaması için alan optimizasyon tekniklerinin farklı olması gerektiğini yorumluyoruz. Her girdi atamasına karşılık gelen bir hata, ilk senaryo için toplam hataya eşit şekilde katkıda bulunurken, ikinci senaryo için farklıdır. Bu nedenle, örneğimizde 1/4 olasılıklı girdi atamasına karşılık 3/4 olasılık için olanlardan daha hatalı çıktılara sahip oluyor. Bu da, girdilerin olasılığına dayanarak, Wallace-Tree çarpanının yapı taşları olarak tam ve yarım toplayıcı sentezlememize neden olur. Bu çalışmada önerdiğimiz sentez tekniğini, aynı hata kısıtlamasını sağlayarak, literatürdekilere kıyasla en küçük alanı ve buna bağlı olarak güç tüketimini sunmaktadır. Ayrıca, sistematik sentez tekniğimiz hata hesaplamaları açısından oldukça hızlı ve hata hesaplaması kesin doğrudur. Bu tezde, her tekniğin artılarını ve eksilerini elde etmek için farklı sentez teknikleri altında yapay sınır ağları gerçekleştirilmektedir. Paralel bir mimaride geniş alan gereksinimi nedeniyle, YSA'lar bu çalışmada, tekrarlanan çoğaltma biriktirme (ÇB) blokları ile gerçekleştirilmektedir. Uygulama olarak MNIST ve pendigit veri tabanları deneyimlenmektedir. Verimliliği incelemek için Önerilen yöntemle YSA'nın çeşitli mimarileri ve yapıları gerçekleştirilmiştir. Deneysel sonuçlar, önerilen yaklaşık çarpıcılar kullanılarak tasarlanan YSA'ların diğer yaklaşık çarpıcılara göre daha küçük bir alana sahip ve daha az enerjı tükettiğini göstermektedir. Hem yaklaşık toplayıcılar ve hem de yaklaşık çarpıcılar kullanarak doğru çalışan devreye göre, alanda ve enerji tüketiminde sırasıyla 50% ve 60%'a varan azalma sağladığı gösterilmektedir. Bu çalışmanın sonunda YSA'dan esinlenerek, Konvolüsyon işlemi gerçekleştirilmektedir. Önerilen yöntemde, clocklama yöntemini değiştirerek sonuçlar daha kısa zamanda elde edinmektedir. Önerilen yöntemin etkinliğini değerlendirmek için, filtreler 3x3, 5x5 ve 7x7 boyutlarla denenmektedirler. Filtrelerin girişleri 28x28 piksel olarak MNIST datasetinden alınmaktadır. Deneysel sonuçlara göre, önerilen metodu kullanarak bekleme suresinde 50% azalma ve güç tüketiminde 97% tasarruf görünmektedir.
Açıklama
Tez (Doktora) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2021
Anahtar kelimeler
Makine öğrenmesi, Machine learning, Derin öğrenme, Deep learning, Nörol ağları, Neural networks
Alıntı