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.