1. A method for processing convolutional neural networks (CNN), comprising: determining a workload for a convolutional neural networks; generating a control signal based upon the workload to permit a selection of a type of parallelism to be employed in processing a layer of the CNN; configuring an input switch to enable a number of convolvers which convolve an input in accordance with the control signal; configuring an output switch to enable a number of output branches for a given cycle in accordance with the control signal; and processing outputs from the output branches, said processing including reconfiguring the input switch and the output switch in accordance with a next layer of the CNN to be processed.