strides are in bytes, but per element strides are convenient when adapting to many apis. caveat: its possible that byte-strides may not be element aligned -- also figure out how to identify this case