[논문 리뷰] Efficient and Generic 1D Dilated Convolution Layer for Deep Learning
이 논문은 Intel AVX-512 및 BFloat16 지침을 사용하여 LIBXSMM의 BRGEMM 커널을 활용한 최적화된 일반적인 1D 확장 컨벌루션 레이어를 제시한다. 이는 Cascade Lake 및 Cooper Lake CPU에서 최대 80%의 이론적 피크 효율성을 달성하며, 엔드 투 엔드 유전체학 학습에서 8장의 V100 GPU보다 최대 2.27배 빠른 성능을 보이며, 대규모 데이터셋과 다양한 초모수 설정에서 선형 스케일링을 보인다.
Convolutional neural networks (CNNs) have found many applications in tasks involving two-dimensional (2D) data, such as image classification and image processing. Therefore, 2D convolution layers have been heavily optimized on CPUs and GPUs. However, in many applications - for example genomics and speech recognition, the data can be one-dimensional (1D). Such applications can benefit from optimized 1D convolution layers. In this work, we introduce our efficient implementation of a generic 1D convolution layer covering a wide range of parameters. It is optimized for x86 CPU architectures, in particular, for architectures containing Intel AVX-512 and AVX-512 BFloat16 instructions. We use the LIBXSMM library's batch-reduce General Matrix Multiplication (BRGEMM) kernel for FP32 and BFloat16 precision. We demonstrate that our implementation can achieve up to 80% efficiency on Intel Xeon Cascade Lake and Cooper Lake CPUs. Additionally, we show the generalization capability of our BRGEMM based approach by achieving high efficiency across a range of parameters. We consistently achieve higher efficiency than the 1D convolution layer with Intel oneDNN library backend for varying input tensor widths, filter widths, number of channels, filters, and dilation parameters. Finally, we demonstrate the performance of our optimized 1D convolution layer by utilizing it in the end-to-end neural network training with real genomics datasets and achieve up to 6.86x speedup over the oneDNN library-based implementation on Cascade Lake CPUs. We also demonstrate the scaling with 16 sockets of Cascade/Cooper Lake CPUs and achieve significant speedup over eight V100 GPUs using a similar power envelop. In the end-to-end training, we get a speedup of 1.41x on Cascade Lake with FP32, 1.57x on Cooper Lake with FP32, and 2.27x on Cooper Lake with BFloat16 over eight V100 GPUs with FP32.
연구 동기 및 목표
- 유전체학 및 음성 처리 분야의 CPU 기반 딥러닝 워크로드에 대해 효율적이고 일반적인 1D 컨벌루션 구현의 부족를 해결한다.
- AVX-512 및 BFloat16 지침을 활용해 x86 CPU용 1D 확장 컨벌루션 레이어를 최적화하여 성능과 에너지 효율성을 향상시킨다.
- 다양한 입력 폭, 필터 크기, 확장률, 채널 구성에 걸쳐 높은 성능을 달성한다.
- 멀티소켓 CPU 시스템을 사용하여 대규모 유전체학 데이터셋에서의 확장성과 효율성을 입증한다.
- 실제 학습 시나리오에서 oneDNN 및 GPU 기반 구현보다 뛰어난 성능을 내는 것을 목표로 한다.
제안 방법
- 단일 정밀도(FP32) 및 BFloat16(BF16) 정밀도 계산을 위해 LIBXSMM의 배치 감소 GEMM(BRGEMM) 커널을 활용한다.
- JIT 코드 생성 및 캐시 블로킹을 적용하여 메모리 액세스 패턴을 최적화하고 데이터 국소성을 향상시킨다.
- im2col 변환을 통해 1D 확장 컨벌루션을 GEMM 연산으로 매핑하여 고도로 최적화된 GEMM 커널의 재사용을 가능하게 한다.
- 현대 Intel CPU에서 벡터 수준 병렬성을 활용하기 위해 AVX-512 및 AVX-512 BFloat16 지침을 사용한다.
- 변동 가능한 입력 폭, 필터 크기, 확장률, 채널 수를 지원하는 일반적인 인터페이스를 설계한다.
- 최적화된 레이어를 AtacWorks와 같은 실제 유전체학 모델을 위한 엔드 투 엔드 학습 파이프라인에 통합한다.
실험 결과
연구 질문
- RQ1GEMM 기반 접근법과 현대 지침 세트를 사용하여 x86 CPU에서 일반적인 1D 확장 컨벌루션 레이어를 효율적으로 구현할 수 있는가?
- RQ2다양한 초모수 설정에서 제안된 구현의 성능이 oneDNN 및 GPU 기반(V100) 구현과 비교해 어떻게 되는가?
- RQ3데이터셋 크기 증가와 멀티소켓 CPU 구성 증가에 따라 최적화된 1D 컨벌루션 레이어의 확장성은 어느 정도인가?
- RQ4AVX-512를 사용한 CPU 기반 유전체학 학습 워크로드에서 BFloat16 정밀도를 사용할 경우 어떤 성능 향상이 달성되는가?
- RQ5매우 긴 입력 시퀀스로 인한 메모리 제약 상황에서도 최적화된 레이어가 메모리 초과 오류 없이 작동할 수 있는가?
주요 결과
- 최적화된 1D 컨벌루션 레이어는 Intel Xeon Cascade Lake 및 Cooper Lake CPU에서 최대 80%의 이론적 피크 성능를 달성한다.
- 16개 소켓의 Cascade Lake CPU에서 AtacWorks 모델을 사용한 FP32 학습에서 8장의 V100 GPU보다 1.41배 빠른 성능을 기록한다.
- BFloat16 정밀도를 사용할 경우, 16개 소켓의 Cooper Lake는 8장의 V100 GPU보다 2.27배 빠른 성능을 보이며, CPU에서 BFloat16의 이점을 입증한다.
- 입력 폭, 필터 크기, 확장률, 채널 수의 모든 테스트 설정에서 oneDNN 라이브러리보다 뛰어난 성능을 기록한다.
- 데이터셋 크기에 따라 선형적으로 확장된다: 훈련 세트 크기가 9.16배 증가할 경우, 에포크당 훈련 시간도 약 9.16배 증가하였고, 일관된 성능 유지가 가능했다.
- 60만 염기서열 길이의 신호 트랙 세그먼트에 대해 메모리 초과 오류 없이 성공적으로 학습이 완료되었으며, V100 GPU는 메모리 제약으로 실패했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.