A deep neural network, DNN, processor module configured to execute layer descriptors and functions for managing the flow of descriptors through the DNN processor module, the DNN processor module comprising: means to retrieve and execute descriptors contained in a layer descriptor list for configuring for layer and operation fencing and dependency management wherein the layer descriptor list is precompiled and includes instructions for performing a forward pass of a neural network by the DNN processor module using descriptors in the layer descriptor list which configure aspects of the operation of the DNN processor module by configuring a plurality of neurons in the DNN processor module to implement the DNN using: a memory device storing the layer descriptor list comprising a first layer descriptor for the DNN, the first layer descriptor specifying an identifier, ID, for a second layer descriptor upon which its execution is dependent; at least one hardware register storing an ID of a most recently completed layer descriptor, wherein the at least one hardware register indicates for the most recently completed descriptor a descriptor type; and a controller configured to determine whether the ID of the most recently completed layer descriptor for the descriptor type stored in the hardware register is less than an ID of the second layer descriptor, cause the DNN processor module to execute the first layer descriptor responsive to determining that the ID of the most recently completed layer descriptor is not less than the ID of the second layer descriptor, and cause the DNN processor module to stall execution of the first layer descriptor responsive to determining that the ID for the most recently completed layer descriptor is less than the ID of the second layer descriptor, wherein the DNN processor module is further configured to execute layer descriptors in the layer descriptor list and to store the ID of the most recently completed layer descriptor and its descriptor type in the at least one hardware register. means to retrieve and execute descriptors contained in a layer descriptor list for configuring for layer and operation fencing and dependency management wherein the layer descriptor list is precompiled and includes instructions for performing a forward pass of a neural network by the DNN processor module using descriptors in the layer descriptor list which configure aspects of the operation of the DNN processor module by configuring a plurality of neurons in the DNN processor module to implement the DNN using: a memory device storing the layer descriptor list comprising a first layer descriptor for the DNN, the first layer descriptor specifying an identifier, ID, for a second layer descriptor upon which its execution is dependent; at least one hardware register storing an ID of a most recently completed layer descriptor, wherein the at least one hardware register indicates for the most recently completed descriptor a descriptor type; and a controller configured to determine whether the ID of the most recently completed layer descriptor for the descriptor type stored in the hardware register is less than an ID of the second layer descriptor, cause the DNN processor module to execute the first layer descriptor responsive to determining that the ID of the most recently completed layer descriptor is not less than the ID of the second layer descriptor, and determine whether the ID of the most recently completed layer descriptor for the descriptor type stored in the hardware register is less than an ID of the second layer descriptor, cause the DNN processor module to execute the first layer descriptor responsive to determining that the ID of the most recently completed layer descriptor is not less than the ID of the second layer descriptor, and cause the DNN processor module to stall execution of the first layer descriptor responsive to determining that the ID for the most recently completed layer descriptor is less than the ID of the second layer descriptor, wherein the DNN processor module is further configured to execute layer descriptors in the layer descriptor list and to store the ID of the most recently completed layer descriptor and its descriptor type in the at least one hardware register.