I don’t know which 3rd party libraries you are using, but note that e.g. cudnn can internally transpose your NCHW data to NHWC if a faster kernel can be found and the overall performance with the permutation would still be better than the alternative NCHW kernel. Depending on your custom backend you might also use a similar 3rd party library.