I am confused with the number in {}
. For example, the below code is sample XLA HLO, and I am having trouble understanding what %bitcast.26
does.
%gather.347 = f16[8192,768]{1,0} gather(f16[30522,768]{1,0} %convert.339, s32[8192]{0} %bitcast.25), offset_dims={1}, collapsed_slice_dims={0}, start_index_map={0}, index_vector_dim=1, slice_sizes={1,768}
%bitcast.26 = f16[16,512,768]{2,1,0} bitcast(f16[8192,768]{1,0} %gather.347)
Of course, I can see that the dimension changed from f16[8192,768]{1,0}
to f16[16,512,768]{2,1,0}
, but I do not get what {1,0}
and {2,1,0}
represents.
Square bracket([]
): logical dimension.
Curly bracket({}
): physical dimension layout that is going to be stored on the device (GPU, CPU, or TPU, whatever).