A method, computer program product, and system perform computations using a sparse convolutional neural network accelerator. Compressed-sparse data is received for input to a processing element, wherein the compressed-sparse data encodes non-zero elements and corresponding multi-dimensional positions. The non-zero elements are processed in parallel by the processing element to produce a plurality of result values. The corresponding multi-dimensional positions are processed in parallel by the processing element to produce destination addresses for each result value in the plurality of result values. Each result value is transmitted to a destination accumulator associated with the destination address for the result value.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method, comprising: receiving compressed-sparse data for input to a processing element, wherein the compressed-sparse data encodes non-zero elements and corresponding multi-dimensional positions; processing, via the processing element, the non-zero elements in parallel to produce a plurality of result values; processing, via the processing element, the corresponding multi-dimensional positions in parallel to produce destination addresses for each result value in the plurality of result values; and transmitting each result value to a destination accumulator associated with the destination address for the result value. 2. The method of claim 1, wherein the non-zero elements are weight values. 3. The method of claim 1, wherein the non-zero elements are input activation values. 4. The method of claim 1, wherein the multi-dimensional positions are encoded as a sequence of zero-counts and each zero-count is a number of zeros between pairs of the non-zero elements. 5. The method of claim 4, wherein the processing the corresponding multi-dimensional positions comprises: converting the zero-counts into coordinates of the multi-dimensional positions; for each result value, summing the coordinates in each dimension of the multi-dimensional positions with additional coordinates associated with additional non-zero elements to produce the corresponding destination addresses. 6. The method of claim 5, further comprising computing a running sum for each zero-count in the sequence of zero-counts to produce the coordinates of the multi-dimensional positions. 7. The method of claim 1, wherein the multi-dimensional positions are encoded a sequence of codes and each code defines a zero-count that is a number of zeros between pairs of the non-zero elements. 8. The method of claim 7, wherein a first code of the codes defines a number of rows to skip in a first coordinate dimension associated with the multi-dimensional positions. 9. The method of claim 7, wherein the codes define a linear progression of the zero-counts. 10. The method of claim 7, wherein the codes define a non-linear progression of the zero-counts. 11. The method of claim 7, wherein the processing the corresponding multi-dimensional positions comprises: converting the zero-counts into coordinates of the multi-dimensional positions; for each result value, summing the coordinates in each dimension of the multi-dimensional positions with additional coordinates associated with additional non-zero elements to produce the corresponding destination addresses. 12. The method of claim 7, further comprising computing a running sum for each zero-count defined by the sequence of codes to produce the coordinates of the multi-dimensional positions. 13. The method of claim 1, wherein the multi-dimensional positions are three-dimensional positions. 14. The method of claim 1, wherein each result value is a product that is transmitted through an arbitrated crossbar to the destination accumulator. 15. A convolutional neural network accelerator, comprising: an array of processing elements, each processing element configured to: receive compressed-sparse data that encodes non-zero elements and corresponding multi-dimensional positions; process the non-zero elements in parallel to produce a plurality of result values; process the corresponding multi-dimensional positions in parallel to produce destination addresses for each result value in the plurality of result values; and transmit each result value to a destination accumulator associated with the destination address for the result value. 16. The convolutional neural network accelerator of claim 14, wherein each processing element comprises a multiplier array that is configured to produce products that are a portion of the plurality of result values. 17. The convolutional neural network accelerator of claim 14, wherein the multi-dimensional positions are encoded as a sequence of zero-counts and each zero-count is a number of zeros between pairs of the non-zero elements. 18. The convolutional neural network accelerator of claim 17, wherein the processing the corresponding multi-dimensional positions comprises: converting the zero-counts into coordinates of the multi-dimensional positions; for each result value, summing the coordinates in each dimension of the multi-dimensional positions with additional coordinates associated with additional non-zero elements to produce the corresponding destination addresses. 19. The convolutional neural network accelerator of claim 14, wherein the multi-dimensional positions are encoded a sequence of codes and each code defines a zero-count that is a number of zeros between pairs of the non-zero elements. 20. A system, comprising: a memory storing compressed-sparse data that encodes non-zero elements and corresponding multi-dimensional positions; and a convolutional neural network accelerator, comprising: an array of processing elements, each processing element configured to: receive the compressed-sparse data; process the non-zero elements in parallel to produce a plurality of result values; process the corresponding multi-dimensional positions in parallel to produce destination addresses for each result value in the plurality of result values; and transmit each result value to a destination accumulator associated with the destination address for the result value.