[논문 리뷰] Escoin: Efficient Sparse Convolutional Neural Network Inference on GPUs
이 논문은 GPU용 직접적인 희소 컨볼루션 방법인 Escort를 제안한다. 이 방법은 행렬 곱셈으로의 내림작업을 생략하여 추론 속도를 향상시킨다. 비정규적인 희소 계산을 위한 병렬성과 데이터 국소성을 최적화함으로써, Escort는 CUSPARSE 대비 3.07배, CUBLAS 대비 1.60배의 속도 향상을 달성한다. 하드웨어나 프레임워크 변경 없이도 희소성을 성능 향상으로 전환한다.
Deep neural networks have achieved remarkable accuracy in many artificial intelligence applications, e.g. computer vision, at the cost of a large number of parameters and high computational complexity. Weight pruning can compress DNN models by removing redundant parameters in the networks, but it brings sparsity in the weight matrix, and therefore makes the computation inefficient on GPUs. Although pruning can remove more than 80% of the weights, it actually hurts inference performance (speed) when running models on GPUs. Two major problems cause this unsatisfactory performance on GPUs. First, lowering convolution onto matrix multiplication reduces data reuse opportunities and wastes memory bandwidth. Second, the sparsity brought by pruning makes the computation irregular, which leads to inefficiency when running on massively parallel GPUs. To overcome these two limitations, we propose Escort, an efficient sparse convolutional neural networks on GPUs. Instead of using the lowering method, we choose to compute the sparse convolutions directly. We then orchestrate the parallelism and locality for the direct sparse convolution kernel, and apply customized optimization techniques to further improve performance. Evaluation on NVIDIA GPUs show that Escort can improve sparse convolution speed by 2.63x and 3.07x, and inference speed by 1.43x and 1.69x, compared to CUBLAS and CUSPARSE respectively.
연구 동기 및 목표
- 가중치 프루닝으로 인한 GPU에서의 희소 컨볼루션 신경망 추론 성능 저하 문제를 해결하기 위해.
- 희소 컨볼루션을 행렬 곱셈으로 내림작업하는 방식의 비효율성을 해결하여 메모리 대역폭 낭비와 데이터 재사용 감소 문제를 해결하기 위해.
- 최적화된 병렬성과 메모리 액세스 패턴을 통해 GPU에서의 성능을 향상시키기 위해.
- 현대 GPU 아키텍처에서 희소성이 성능 저하가 아니라 성능 향상 요소로 활용될 수 있음을 입증하기 위해.
- 모델 훈련, 프루닝, 기초 하드웨어 변경 없이도 구현 가능한 순수 소프트웨어 솔루션을 제공하기 위해.
제안 방법
- 행렬 곱셈으로의 내림작업 없이 컨볼루션을 계산하는 직접적인 희소 컨볼루션 커널을 제안하여, 불필요한 데이터 중복과 메모리 대역폭 낭비를 방지한다.
- 스레드 수준 및 데이터 수준의 병렬성을 조율하여 GPU의 할당률을 극대화하고 메모리 지연을 숨긴다.
- 메모리 액세스를 코alescing하고 스레드 블록을 연속적인 데이터 세그먼트를 액세스하도록 구성하여 데이터 국소성을 극대화한다.
- 희소 가중치 구조에 맞게 맞춤형 커널 레이아웃을 사용하여 비정규적인 메모리 액세스 패턴을 최소화한다.
- 루프 타일링과 레지스터 블로킹을 적용하여 산술 밀도를 향상시키고 글로벌 메모리 트랜잭션을 줄인다.
- CUDA로 구현하여 Tesla P100과 GTX 1080Ti GPU에서 표준 CNN인 AlexNet, GoogLeNet, ResNet을 사용해 평가한다.
실험 결과
연구 질문
- RQ1프루닝된 DNN에 대해 GPU에서 직접적인 희소 컨볼루션은 행렬 곱셈 기반 접근보다 성능이 뛰어나게 될 수 있는가?
- RQ2내림작업 단계를 생략함으로써 희소 컨볼루션에서 메모리 대역폭 압박을 줄이고 데이터 재사용을 향상시킬 수 있는가?
- RQ3맞춤형 커널 설계를 통해 비정규적인 희소 계산을 GPU의 데이터 병렬 아키텍처에 효율적으로 매핑할 수 있는가?
- RQ4희소성은 GPU에서 성능 저하가 아니라 성능 향상으로 얼마나 효과적으로 활용될 수 있는가?
- RQ5하드웨어나 고수준 프레임워크를 수정하지 않고도 희소 CNN에서 상당한 속도 향상을 달성할 수 있는가?
주요 결과
- Escort는 NVIDIA GPU에서 희소 추론에 대해 CUBLAS 대비 기하 평균 1.38배, CUSPARSE 대비 1.60배의 속도 향상을 달성한다.
- Tesla P100에서 Escort는 CUBLAS 대비 2.63배, CUSPARSE 대비 3.07배의 속도 향상을 기록한다.
- GTX 1080Ti에서 Escort는 AlexNet, GoogLeNet, ResNet에 대해 각각 CUBLAS 대비 1.74배, 1.34배, 1.43배의 속도 향상을 기록한다.
- 모델 간 일관된 성능 향상이 나타나며, 특히 컨볼루션 레이어에서 더 높은 희소성을 가진 AlexNet에서 가장 큰 속도 향상을 보였다.
- 기타 레이어를 제외한 상황에서도 Escort는 Tesla P100에서 CUBLAS 대비 1.47배의 속도 향상을 유지하여, 희소 컨볼루션 자체에 대한 효과를 확인한다.
- 모델 훈련, 프루닝, 하드웨어 변경 없이도 구현 가능하므로 기존 딥러닝 파이프라인에 실용적이고 이식 가능한 최적화 방법이다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.