VW-SDK: Efficient Convolutional Weight Mapping Using Variable Windows for Processing-In-Memory Architectures

Johnny Rhe1,a, Sungmin Moon1,b and Jong Hwan Koy2
1Department of Electrical and Computer Engineering, Sungkyunkwan University, Suwon, South Korea
adjwhsdj@skku.edu
bsang6989@skku.edu
2College of Information and Communication Engineering, Sungkyunkwan University, Suwon, South Korea
jhko@skku.edu

ABSTRACT


With their high energy efficiency, processing-inmemory (PIM) arrays are increasingly used for convolutional neural network (CNN) inference. In PIM-based CNN inference, the computational latency and energy are dependent on how the CNN weights are mapped to the PIM array. A recent study proposed shifted and duplicated kernel (SDK) mapping that reuses the input feature maps with a unit of a parallel window, which is convolved with duplicated kernels to obtain multiple output elements in parallel. However, the existing SDKbased mapping algorithm does not always result in the minimum computing cycles because it only maps a square-shaped parallel window with the entire channels. In this paper, we introduce a novel mapping algorithm called variable-window SDK (VW-SDK), which adaptively determines the shape of the parallel window that leads to the minimum computing cycles for a given convolutional layer and PIM array. By allowing rectangular-shaped windows with partial channels, VW-SDK utilizes the PIM array more efficiently, thereby further reduces the number of computing cycles. The simulation with a 512×512 PIM array and Resnet- 18 shows that VW-SDK improves the inference speed by 1.69× compared to the existing SDK-based algorithm.

Keywords: Convolutional Neural Network, Processing In Memory, Weight Mapping.



Full Text (PDF)