An apparatus for performing forward computation of an artificial neural network, the apparatus comprising a controller unit , the apparatus further comprising a master computation module , multiple slave computation modules , and an H tree module , wherein: the controller unit is configured to read instructions and decode the instructions into micro instructions for controlling the H tree module, the master computation module and the multiple slave computation modules; the master computation module is configured to transmit an input neuron vector of a layer of the artificial neural network to all of the multiple slave computation modules via the H tree module ; wherein the multiple slave computation modules are configured to utilize the same input neuron vector and respectively different weight vectors to parallel-compute respective output neuron values; wherein the H tree module is configured to, after each of the multiple slave computation modules completing its computation, splice the respective output neuron values of the multiple slave computation modules stage-by-stage into an intermediate result vector; and wherein the master computation module performs any one of the following operations on the intermediate result vector: bias-adding operation, which adds a bias to the intermediate result vector; activating the intermediate result vector, wherein the activation function active is any one of sigmoid, tanh, relu, or softmax; sampling operation, which compares the intermediate result vector with a random number, and outputs 1 if it is greater than the random number, and outputs 0 if it is less than the random number; or pooling operation, including a max-pooling or an average pooling, AVGPOOLING; wherein the H tree module forms a data channel between the master computation module and the multiple slave computation modules . the controller unit is configured to read instructions and decode the instructions into micro instructions for controlling the H tree module, the master computation module and the multiple slave computation modules; the master computation module is configured to transmit an input neuron vector of a layer of the artificial neural network to all of the multiple slave computation modules via the H tree module ; wherein the multiple slave computation modules are configured to utilize the same input neuron vector and respectively different weight vectors to parallel-compute respective output neuron values; wherein the H tree module is configured to, after each of the multiple slave computation modules completing its computation, splice the respective output neuron values of the multiple slave computation modules stage-by-stage into an intermediate result vector; and wherein the master computation module performs any one of the following operations on the intermediate result vector: bias-adding operation, which adds a bias to the intermediate result vector; activating the intermediate result vector, wherein the activation function active is any one of sigmoid, tanh, relu, or softmax; sampling operation, which compares the intermediate result vector with a random number, and outputs 1 if it is greater than the random number, and outputs 0 if it is less than the random number; or pooling operation, including a max-pooling or an average pooling, AVGPOOLING; bias-adding operation, which adds a bias to the intermediate result vector; activating the intermediate result vector, wherein the activation function active is any one of sigmoid, tanh, relu, or softmax; sampling operation, which compares the intermediate result vector with a random number, and outputs 1 if it is greater than the random number, and outputs 0 if it is less than the random number; or pooling operation, including a max-pooling or an average pooling, AVGPOOLING; wherein the H tree module forms a data channel between the master computation module and the multiple slave computation modules . <EOS>