High Performance Im2win and Direct Convolutions using Three Tensor Layouts on SIMD Architectures

Xiang Fu, Xinpeng Zhang, Jixiang Ma, Peng Zhao, Shuai Lu +1 more
8/1/2024
cs.LGcs.AIcs.NE

No confident code implementation found for this paper. 3 possible matches can be shown below.

Abstract

Convolution is the core component within deep neural networks and it is computationally intensive and time consuming. Tensor data layouts significantly impact convolution operations in terms of memory access and computational efficiency. Yet, there is still a lack of comprehensive performance characterization on data layouts on SIMD architectures concerning convolution methods. This paper proposes three novel data layouts for im2win convolution: NHWC, CHWN, and CHWN8, and introduces a set of general optimization techniques for both direct and im2win convolutions. We compare the optimized im2win convolution with the direct convolution and PyTorch's im2col-based convolution across the aforementioned layouts on SIMD machines. The experiments demonstrated that the im2win convolution with the new NHWC layout achieved up to 355% performance speedup over NCHW layout. Our optimizations also significantly improve the performance of both im2win and direct convolutions. Our optimized im2win and direct convolutions achieved up to 95% and 94% of machine's theoretical peak performance, respectively.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 3 weaker matches are hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Cite this paper

@article{fu2024high,
  title  = {High Performance Im2win and Direct Convolutions using Three Tensor Layouts on SIMD Architectures},
  author = {Xiang Fu and Xinpeng Zhang and Jixiang Ma and Peng Zhao and Shuai Lu and Xu T. Liu},
  year   = {2024},
  eprint = {2408.00278},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2408.00278v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2408.00278.svg)](https://codeofpaper.com/paper/2408.00278)

Discussion