1. In a system performing multiplication of an input vector and an input matrix having a limited number of possible values for any element of said input matrix, a method to efficiently perform said multiplication comprising: grouping elements of said input matrix across a second dimension of said input matrix to form groups of matrix elements; pre-computing all possible permutations of partial results for each of said groups of matrix elements; assigning said partial results from each of said groups of matrix elements to each of a corresponding index of a first dimension of said input matrix to form a matrix of assigned partial results; and summing said assigned partial results along said first dimension of said matrix of assigned partial results to form a vector of full matrix multiplication results.