BinArray ist ein kundenspezifischer Hardware-Beschleuniger für neuronale Netze (CNN), der von [3]
vorgestellt wurde. Dank BinArray ist es möglich, dass CNNs auf stromsparenden Embedded-Geräten, durch
Reduzieren der Anzahl erforderlichen Multiplikationen mittels binärer Gewichtung betrieben werden können.
Drei Design-Parameter des BinArray erlauben es dem Benutzer, zwischen hoher Genauigkeit oder hohem
Durchsatz zu wählen. Der Design-Parameter, der die Anzahl der parallel zu verarbeitenden Eingangsteilbildern
definiert, wird in dieser Arbeit eingeführt. Es werden Methoden für das Teilen des Eingangsbild
vorgestellt, verglichen und der jeweilige Speicherverbrauch berechnet. Basierend auf den Ergebnissen wird
das BinArray mit zwei systolischen Arrays (SA) implementiert, die auf verschiedenen Teilbildern arbeiten.
Resultate zeigen, der Durchsatz kann auf Kosten höherer Ressourcennutzung erhöht werden. Die besten
Ergebnisse werden erzielt, wenn die Anzahl an Ausgangspixel durch die Anzahl an SAs teilbar ist.
BinArray is a custom hardware accelerator for convolutional neuronal networks (CNN) with binary
approximated weights which is presented by [3]. Thanks to BinArray CNNs operate on low-power embedded
devices by drastically reducing the number of multiplications required. Three design parameters of BinArray
allow the user to select between high accuracy or throughput. The third design parameter which defines the
number of input feature tiles that can be processed in parallel is introduced in this thesis.
Methods for the input feature tiling are presented, compared and the required memory sizes are calculated.
Based on the results BinArray was implemented with two systolic arrays (SA) working on two different tiles
of the input feature. Experimental results show, throughput can be increased at cost of resources utilization.
Tiling of the input feature is most effective for a number of output feature pixels that is divisible by the
number of SAs.