def _get_fast_ew_dims(size): # TODO: I can probably do much better than this code below, # but I think most tensors are evenly divisable by 256 off the bat. ew_size = 256 while ew_size > 0: if size % ew_size == 0: break ew_size -= 32 if ew_size == 0: ew_size = 255 while ew_size > 0: if size % ew_size == 0: break ew_size -= 1 shape = (size // ew_size, ew_size) return (shape, ng._contiguous_strides(shape))
def _get_fast_ew_dims(size): # TODO: I can probably do much better than this code below, # but I think most tensors are evenly divisable by 256 off the bat. ew_size = 256 while ew_size > 0: if size % ew_size == 0: break ew_size -= 32 if ew_size == 0: ew_size = 255 while ew_size > 0: if size % ew_size == 0: break ew_size -= 1 shape = (size // ew_size, ew_size) return (shape, ng._contiguous_strides(shape))