[논문 리뷰] FFT Convolutions are Faster than Winograd on Modern CPUs, Here is Why
이 논문은 기존의 믿음과는 반대로 최신 다중 및 다수코어 CPU에서 FFT 기반 컨볼루션은 윈오그라드 기반 컨볼루션을 능가함을 보여준다. 루프라이드 성능 모델링을 통해 저자들은 FFT 방법에서 더 높은 산술 강도와 더 나은 메모리 대역폭 활용도가, 특히 큰 타일 크기를 사용할 경우 더 많은 연산 수에도 불구하고 뛰어난 성능을 이끌어내며, 이는 계산 대 메모리 비율이 높은 시스템에서 특히 두드러진다.
Winograd-based convolution has quickly gained traction as a preferred approach to implement convolutional neural networks (ConvNet) on various hardware platforms because it requires fewer floating point operations than FFT-based or direct convolutions. This paper compares three highly optimized implementations (regular FFT--, Gauss--FFT--, and Winograd--based convolutions) on modern multi-- and many--core CPUs. Although all three implementations employed the same optimizations for modern CPUs, our experimental results with two popular ConvNets (VGG and AlexNet) show that the FFT--based implementations generally outperform the Winograd--based approach, contrary to the popular belief. To understand the results, we use a Roofline performance model to analyze the three implementations in detail, by looking at each of their computation phases and by considering not only the number of floating point operations, but also the memory bandwidth and the cache sizes. The performance analysis explains why, and under what conditions, the FFT--based implementations outperform the Winograd--based one, on modern CPUs.
연구 동기 및 목표
- CPU에서 딥러닝 추론을 위한 윈오그라드 기반 컨볼루션의 우월성이 널리 공유된 믿음에 도전하기 위해.
- 최적화된 FFT 기반(일반 및 가우스-FFT) 및 윈오그라드 기반 컨볼루션 구현체의 성능을 최신 다중 및 다수코어 CPU에서 비교하기 위해.
- 산술 강도, 메모리 대역폭, 캐시 영향, 계산 대 메모리 비율에 중점을 두어 루프라이드 모델을 사용해 성능 차이를 분석하기 위해.
- FFT 기반 방법이 윈오그라드 기반 방법보다 성능이 뛰어나지 않는 조건을 특정하고, 특히 데이터 이동과 확장성 측면에서 분석하기 위해.
- 최신 CPU(AVX2/AVX512)를 위한 FFT 및 윈오그라드 컨볼루션의 오픈소스 고성능 구현체를 제공하기 위해.
제안 방법
- AVX2 또는 AVX512 지시어 세트를 타겟으로 하는 최적화된 세 가지 컨볼루션 커널(일반 FFT, 가우스-FFT, 윈오그라드 기반)을 구현하였다.
- 공정한 비교를 위해 루프 타일링, 데이터 레이아웃 변환, 벡터화된 연산과 같은 표준 CPU 최적화 기법을 모든 세 방법에 적용하였다.
- 각 방법의 계산 단계를 분석하기 위해 루프라이드 성능 모델을 사용하였으며, 산술 강도, 메모리 대역폭, 캐시 동작에 중점을 두었다.
- 다양한 타일 크기와 커널 크기에서 각 방법의 연산 수와 데이터 이동 비용을 정량화하였으며, 연산 수와 산술 강도 추정을 위해 검색 테이블을 사용하였다.
- VGG와 AlexNet 네트워크를 사용해 10종의 최신 CPU 시스템에서 종단 간 벤치마크를 수행하여 실제 성능 차이를 측정하였다.
- 이론적 예측을 실측 측정과 비교하여, MKL-DNN 및 LIBXSMM와 같은 최첨단 라이브러리와의 비교를 통해 이론적 예측의 타당성을 검증하였다.
실험 결과
연구 질문
- RQ1왜 더 많은 부동소수점 연산을 요구함에도 불구하고 FFT 기반 컨볼루션은 최신 CPU에서 윈오그라드 기반 컨볼루션을 능가하는가?
- RQ2산술 강도가 더 높은 FFT 기반 방법이 더 많은 연산을 수행함에도 불구하고, 어떤 조건에서 윈오그라드를 능가하는가?
- RQ3메모리 대역폭, 캐시 크기, 데이터 이동 비용은 최신 CPU 아키텍처에서 FFT와 윈오그라드의 상대적 성능에 어떤 영향을 미치는가?
- RQ4윈오그라드 방법의 수치적 불안정성은 타일 크기를 얼마나 제한하며, 이는 CPU에서의 성능에 어떤 영향을 미치는가?
- RQ5최신 CPU의 계산 대 메모리 비율은 FFT 기반 대비 윈오그라드 기반 컨볼루션의 성능 우위에 어떤 영향을 미치는가?
주요 결과
- 평균적으로, 다양한 최신 CPU 시스템에서 FFT 기반 컨볼루션(일반 및 가우스-FFT)이 윈오그라드 기반 컨볼루션을 능가하며, 계산 대 메모리 비율이 높을수록 성능 격차가 커진다.
- 일반 FFT 및 가우스-FFT 방법은 복소수 연산 덕분에 더 높은 산술 강도를 확보하여 현대 CPU의 계산 대 메모리 불균형을 더 잘 활용한다.
- 윈오그라드의 수치적 불안정성은 타일 크기를 매우 작은 값으로 제한하여 재귀적 계산을 줄이는 능력을 제한하지만, FFT 방법은 임의의 큰 타일 크기를 지원한다.
- 더 많은 부동소수점 연산을 요구함에도 불구하고, FFT 기반 방법은 데이터 이동 비용을 줄이고 캐시 계층을 더 효과적으로 활용함으로써 더 뛰어난 성능을 달성한다.
- 계산 대 메모리 비율이 높은 시스템(예: 20–40)에서는 FFT 기반 방법이 윈오그라드보다 훨씬 빠르며, 특히 VGG와 AlexNet의 깊거나 넓은 레이어에서 두드러진다.
- 실측 결과에 따르면, AVX512 호환 시스템에서 FFT 기반 구현체가 MKL-DNN 및 LIBXSMM와 같은 최첨단 라이브러리보다 뛰어난 성능을 보였다. 이는 3×3 커널이 아닌 경우에 특히 두드러진다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.