SparTen: A sparse tensor accelerator for convolutional neural networks
A Gondimalla, N Chesnut, M Thottethodi… - Proceedings of the …, 2019 - dl.acm.org
Proceedings of the 52nd Annual IEEE/ACM International Symposium on …, 2019•dl.acm.org
Convolutional neural networks (CNNs) are emerging as powerful tools for image
processing. Recent machine learning work has reduced CNNs' compute and data volumes
by exploiting the naturally-occurring and actively-transformed zeros in the feature maps and
filters. While previous semi-sparse architectures exploit one-sided sparsity either in the
feature maps or the filters, but not both, a recent fully-sparse architecture, called Sparse
CNN (SCNN), exploits two-sided sparsity to improve performance and energy over dense …
processing. Recent machine learning work has reduced CNNs' compute and data volumes
by exploiting the naturally-occurring and actively-transformed zeros in the feature maps and
filters. While previous semi-sparse architectures exploit one-sided sparsity either in the
feature maps or the filters, but not both, a recent fully-sparse architecture, called Sparse
CNN (SCNN), exploits two-sided sparsity to improve performance and energy over dense …
Convolutional neural networks (CNNs) are emerging as powerful tools for image processing. Recent machine learning work has reduced CNNs' compute and data volumes by exploiting the naturally-occurring and actively-transformed zeros in the feature maps and filters. While previous semi-sparse architectures exploit one-sided sparsity either in the feature maps or the filters, but not both, a recent fully-sparse architecture, called Sparse CNN (SCNN), exploits two-sided sparsity to improve performance and energy over dense architectures. However, sparse vector-vector dot product, a key primitive in sparse CNNs, would be inefficient using the representation adopted by SCNN. The dot product requires finding and accessing non-zero elements in matching positions in the two sparse vectors -- an inner join using the position as the key with a single value field. SCNN avoids the inner join by performing a Cartesian product capturing the relevant multiplications. However, SCNN's approach incurs several considerable overheads and is not applicable to non-unit-stride convolutions. Further, exploiting reuse in sparse CNNs fundamentally causes systematic load imbalance not addressed by SCNN. We propose SparTen which achieves efficient inner join by providing support for native two-sided sparse execution and memory storage. To tackle load imbalance, SparTen employs a software scheme, called greedy balancing, which groups filters by density via two variants, a software-only one which uses whole-filter density and a software-hardware hybrid which uses finer-grain density. Our simulations show that, on average, SparTen performs 4.7x, 1.8x, and 3x better than a dense architecture, one-sided sparse architecture, and SCNN, respectively. An FPGA implementation shows that SparTen performs 4.3x and 1.9x better than a dense architecture and a one-sided sparse architecture, respectively.
ACM Digital Library