23
Derin Sinir Ağları için Değişken Boyutlu Sistolik Diziler Ahmet Caner Yüzügüler – Doktora adayı Prof. Babak Falsafi - Danışman

DerinSinirAğlarıiçinDeğişken BoyutluSistolikDiziler · 2019. 9. 30. · DerinSinirAğlarıiçinDeğişken BoyutluSistolikDiziler Ahmet Caner Yüzügüler–Doktoraadayı Prof

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Derin Sinir Ağları için DeğişkenBoyutlu Sistolik Diziler

    Ahmet Caner Yüzügüler – Doktora adayıProf. Babak Falsafi - Danışman

  • Derin Sinir Ağları (DSA)

    Hızlı algoritma tasarımı§ Otomatik öznitelik (feature) cikarimi

    İnsan-üstü isabet oranı§ Imagenet veriseti hata oranı:

    Çok yüksek bilgisayım gereksinimi

    Histogram of oriented gradients (HOG):

    GoogleNet v1: 1.43 GOPs

    0.019 GOPs

    x 74 Kaynak: Suleiman, 2017

    % 5

    vs

    % 3

    YZİnsan

    Kaynak: Sze, 2017

    vs

    Konvansiyonelgörüntü-işlemealgoritmaları

    % 25

    2

  • §Google’ın DSA’lar için ASIC çözümü: § Tensor Processing Unit (TPU)§ 256 x 256 sistolik dizi

    §Neden sistolik dizi?Yüksek verimli işlem kapasitesi

    § 92 TeraOps/s @ 40 WÖlçeklenebilirlikKolay tasarım – hızlı geliştirme süresi

    §DezavantajıVeri paylaşımında düşük esneklikDüşük kapasite kullanım oranı§ < %30 (GoogleNet)

    Sistolik Diziler

    Google TPU

    Sistolikdizi

    Resim: https://cloud.google.com/tpu/

    3

  • Önerdiğimiz Çözüm

    § İri parçalı yeniden yapılandırılabilirmimari (Coarse-grained reconfigurable architecture)

    Bloklar arasında programlanabilir bağlantılar

    Esnek veri aktarım altyapısı

    Farklı boyutlardaki DSA katmanlarınadaha iyi uyum

    Yüksek kapasite kullanımı

    Yüksek işlem gücü

    27.3

    39.8

    Standart Bu çalışma

    Etkin

    Işlem

    Güc

    ü(T

    eraO

    ps/S

    )

    %45 artış

    Siliko

    nAl

    anı

    (mm

    2 )

    36.7 39.1%6.5 ek yük

    4

  • İçerik

    §Giriş§ Sistolik diziler§Düşük kapasite kullanım oranı sebebleri§Önerilen çözüm§ Sonuçlar

    5

  • Sistolik Diziler – Çalışma Prensibi

    § Temelde gerçekleştirdikleri işlem: matris-matris çarpımı§DSA’larını oluşturan işlemlerin büyük çoğunluğu (>%95):

    § Aktivasyon ve filtre matrislerinin çarpımı

    §Örnek:

    𝑦11

    𝑦21

    𝑦31

    𝑦12

    𝑦22

    𝑦32

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyon matrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtre matrisi

    6

  • Sistolik Diziler – Çalışma Prensibi

    𝑤11 𝑤12

    𝑤21 𝑤22

    𝑤31 𝑤32

    𝑥11𝑥21𝑥31

    𝑥12𝑥22𝑥32

    𝑥13𝑥23𝑥33

    7

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

  • Sistolik Diziler – Çalışma Prensibi

    𝒚𝟏𝟏 = 𝑤11 𝑥11

    𝑤11 𝑤12

    𝑤21 𝑤22

    𝑤31 𝑤32

    𝑥11𝑥21𝑥31

    𝑥12𝑥22𝑥32

    𝑥13𝑥23𝑥33

    8

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

  • Sistolik Diziler – Çalışma Prensibi

    𝑤11

    𝑤22

    𝑤31 𝑤32

    𝑥21𝑤12𝑥11

    𝑤21𝑥12

    𝒚𝟏𝟏 = 𝑤11 𝑥11 + 𝑤21 𝑥12𝒚𝟏𝟐 = 𝑤12 𝑥11𝒚𝟐𝟏 = 𝑤11 𝑥21

    𝑥31

    𝑥22𝑥32

    𝑥13𝑥23𝑥33

    9

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

  • Sistolik Diziler – Çalışma Prensibi

    𝑤11

    𝑤32

    𝑥31𝑤12𝑥21

    𝑤21𝑥22

    𝑥32

    𝑥23𝑥33

    𝑤22𝑥12

    𝑤31𝑥13

    𝒚𝟏𝟏 = 𝑤11 𝑥11 + 𝑤21 𝑥12 + 𝑤31 𝑥13𝒚𝟏𝟐 = 𝑤12 𝑥11 + 𝑤22 𝑥12𝒚𝟐𝟏 = 𝑤11 𝑥21 + 𝑤21 𝑥22𝒚𝟐𝟐 = 𝑤12 𝑥21𝒚𝟑𝟏 = 𝑤11 𝑥31

    10

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

  • Sistolik Diziler – Çalışma Prensibi

    𝑤12𝑥31

    𝑤21𝑥32

    𝑥33

    𝑤22𝑥22

    𝑤31𝑥23

    𝑤32𝑥13

    𝑤11

    𝒚𝟏𝟏 = 𝑤11 𝑥11 + 𝑤21 𝑥12 + 𝑤31 𝑥13𝒚𝟏𝟐 = 𝑤12 𝑥11 + 𝑤22 𝑥12 + 𝑤32 𝑥13𝒚𝟐𝟏 = 𝑤11 𝑥21 + 𝑤21 𝑥22 + 𝑤31 𝑥23𝒚𝟐𝟐 = 𝑤12 𝑥21 + 𝑤22 𝑥22𝒚𝟑𝟏 = 𝑤11 𝑥31 + 𝑤21 𝑥32𝒚𝟑𝟐 = 𝑤12 𝑥31

    11

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

  • Sistolik Diziler – Çalışma Prensibi

    𝑤22𝑥32

    𝑤31𝑥33

    𝑤32𝑥23

    𝑤11 𝑤12

    𝑤21

    𝒚𝟏𝟏 = 𝑤11 𝑥11 + 𝑤21 𝑥12 + 𝑤31 𝑥13𝒚𝟏𝟐 = 𝑤12 𝑥11 + 𝑤22 𝑥12 + 𝑤32 𝑥13𝒚𝟐𝟏 = 𝑤11 𝑥21 + 𝑤21 𝑥22 + 𝑤31 𝑥23𝒚𝟐𝟐 = 𝑤12 𝑥21 + 𝑤22 𝑥22 + 𝑤32 𝑥23𝒚𝟑𝟏 = 𝑤11 𝑥31 + 𝑤21 𝑥32 + 𝑤31 𝑥33𝒚𝟑𝟐 = 𝑤12 𝑥31 + 𝑤22 𝑥32

    12

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

  • Sistolik Diziler – Çalışma Prensibi

    𝑤32𝑥33

    𝑤11 𝑤12

    𝑤21

    𝒚𝟏𝟏 = 𝑤11 𝑥11 + 𝑤21 𝑥12 + 𝑤31 𝑥13𝒚𝟏𝟐 = 𝑤12 𝑥11 + 𝑤22 𝑥12 + 𝑤32 𝑥13𝒚𝟐𝟏 = 𝑤11 𝑥21 + 𝑤21 𝑥22 + 𝑤31 𝑥23𝒚𝟐𝟐 = 𝑤12 𝑥21 + 𝑤22 𝑥22 + 𝑤32 𝑥23𝒚𝟑𝟏 = 𝑤11 𝑥31 + 𝑤21 𝑥32 + 𝑤31 𝑥33𝒚𝟑𝟐 = 𝑤12 𝑥31 + 𝑤22 𝑥32 + 𝑤32 𝑥33

    𝑤22

    𝑤31

    × =𝑥11 𝑥12 𝑥13

    𝑥21 𝑥22 𝑥23

    𝑥31 𝑥32 𝑥33

    Aktivasyonmatrisi

    𝑤11

    𝑤21

    𝑤31

    𝑤12

    𝑤22

    𝑤32

    Filtrematrisi

    13

  • Veri aktarımı: komşu işlemci birimleriarasında

    § Veri aktarimi için harcanan enerji → 0§ Kısa bağlantı hatları → Ölçeklenebilir

    tasarım

    Dusuk kapasite kullanım oranı1. Yatay aktarım gecikmesi2. Dikey aktarım gecikmesi3. Dar filtre boşluğu4. Sığ filtre boşluğu

    Sistolik Dizilerin Avantaj/Dezavantajları

    14

  • § Büyük sistolik dizi →Düşük kapasite kullanımı

    § Kapasitesin >%50’sinin kullanılamama sebebi:§ Dar/sığ filtre boşluğu

    Düşük Kapasite Kullanımı Nedenleri

    15

    Etkin İşlem

  • DSA Katman Boyutlarındaki Değişkenlik

    Satır > Sütun

    Sütun > Satır

    16

    Sabit sistolik dizi + değişken filtre boyutu = düşük kapasite kullanımı

  • Önerdiğimiz Çözüm

    § İri parçalı yeniden yapılandırılabilir mimari(Coarse-grained reconfigurable arch.)§ Tek büyük parça → Birçok küçük parça§ Parçalar arası programlanabilir bağlantılar§ Farklı bağlantı konfigürasyonları → Değişken

    sistolik dizi boyutu§ Değişken boyut → Farklı filtrelere daha iyi

    uyumSRAM SRAM

    SRAM

    SRAM

    SRAM

    SRAM

    SRAM

    SRAM

    17

  • Kare konfigürasyon

    satır ≅ sütun

    18

  • Geniş konfigürasyon

    satır ≅ sütun satır < sütun

    19

  • Derin konfigürasyon

    satır ≅ sütun satır < sütun satır > sütun

    20

  • Sonuçlar

    § 8 parçaya bölünmüş 256x256’lik birsistolik dizide§ Farklı filtre boyutlarına %20 daha iyi uyum§%45 daha yüksek etkin işlem gücü

    21

  • §Google TPU§ 256x256 standart sistolik dizi§ 28nm TSMC§ 36.7 mm2 silikon alanı

    § %29.7 kapasite kullanım oranı§ 27.3 TeraOps/s etkin işlem gücü

    § Bu çalışma§ 8 parçalı 256x256 sistolik dizi§ 28nm TSMC§ 39.1 mm2 silikon alanı

    § Işlemciler arası bağlantıkarmaşıklığı

    § Programlanabilirlik icin gerekliçoklayıcılar (multiplexer)

    § %43.3 kapasite kullanım oranı§ 39.8 TeraOps/s etkin işlem gücü

    Karşılaştırma

    %6.5 ek yük

    %45 artış

    22

  • Kaynakça

    § Sze,2017: V. Sze et. al., Efficient Processing of Deep Neural Networks: A Tutorial and Survey, Proceedings of the IEEE, Volume:105 Issue:12, 2017

    § Suleiman,2017: A. Suleiman et. al., Towards Closing the Energy Gap Between HOG and CNN Features for Embedded Vision, IEEE International Symposium on Circuits and Systems (ISCAS), 2017

    §N. P. Jouppi et. al., In-Datacenter Performance Analysis of a Tensor Processing Unit, International Symposium on Computer Architecture (ISCA), 2017

    §H. T. Kung and C. E. Leiserson, “Systolic Arrays (For VLSI)", Sparse Matrix Proceedings, 1978

    §C. Szegedy et. al. Going Deeper with Convolutions, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

    23