1 Introduction
Binarized-neural-network (BNN) [1], [2], [3] is an alternative type of deep-neural-networks (DNNs). Compared to general DNNs, such as multi-layer-perceptrons (MLPs) and convolution-neural-networks (CNNs), the major difference of BNN is that it uses a single bit to represent each entry of the input and weight matrices. BNN evolved from DNN through binarized-weight-network (BWN) [4]. It was first observed that if the weight matrix can be binarized to +1 and -1, the floating-point (FP) multiplications can be degraded to addition (i.e., mul +1) and subtraction (i.e., mul -1). Later, it was further observed that if the input matrix can be binarized as well, then even the floating-point additions and subtractions in BWN can be degraded to logical operations (i.e., xnor for bit dot-product and popc for bit accumulation) [1], [2], [3].