A user definition of a memory shape can be received and a multidimensional, contiguous, physical portion of a memory array can be allocated according to the memory shape. The user definition of the memory shape can include a quantity of contiguous columns of the memory array, a quantity of contiguous rows of the memory array, and a major dimension of the memory shape. The major dimension can correspond to a dimension by which to initially stride data stored in the memory shape.