[논문 리뷰] Escort: Efficient Sparse Convolutional Neural Networks on GPUs
Escort는 GPU용 직접적인 희소 컨볼루션 커널을 제안하여 행렬 곱셈 내림내림을 생략함으로써 병렬성과 데이터 국소성을 최적화하여, 희소 컨볼루션에서 CUBLAS 및 CUSPARSE 대비 2.63배에서 3.07배의 성능 향상을 달성하고, 전체 추론 속도에서 1.38배에서 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.38x and 1.60x, compared to CUBLAS and CUSPARSE respectively.
연구 동기 및 목표
- 희소성에 기인한 비정규성과 낮은 메모리 대역폭 활용도로 인해 GPU에서 희소 컨볼루션의 효율성이 떨어지는 문제를 해결한다.
- 모델 크기를 줄이는 가중치 프루닝으로 인해 비록 높은 희소성임에도 불구하고 GPU에서 추론 속도가 저하되는 성능 저하 문제를 극복한다.
- 행렬 곱셈으로의 내림내림을 피하는 GPU 최적화된 희소 컨볼루션 커널을 설계하여 데이터 재사용성과 정규성을 유지한다.
- 직접적인 희소 계산 방식을 통해 병렬성과 국소성을 조율하여 희소 컨볼루션에서 고성능을 달성한다.
제안 방법
- 행렬 곱셈으로의 내림내림 없이 직접적인 희소 컨볼루션 커널을 구현하여 데이터 국소성을 유지하고 메모리 대역폭 낭비를 줄인다.
- 스레드 수준 및 데이터 수준의 병렬성을 조율하여 희소 연산을 GPU 스트리밍 다중처리기로 효율적으로 매핑한다.
- 맞춤형 메모리 액세스 패턴과 타일링 전략을 적용하여 데이터 재사용을 극대화하고 비정규적인 메모리 액세스 패턴을 최소화한다.
- 커널 실행 구성 및 메모리 연속성 최적화를 통해 점유율을 향상시키고 희소 계산의 지연을 감소시킨다.
- 효율적인 희소 가중치 표현과 메모리 액세스를 위해 압축된 희소 행렬(CSR)-유사 형식을 사용한다.
- 실제 모델에서 종단 간 성능을 평가하기 위해 전체 추론 파이프라인에 커널을 통합한다.
실험 결과
연구 질문
- RQ1직접적인 희소 컨볼루션은 GPU에서 행렬 곱셈 기반 접근 방식과 비교해 성능 면에서 어떻게 다른가?
- RQ2최적화된 병렬성과 데이터 국소성은 다수의 병렬 GPU에서 희소 연산의 비효율성을 어느 정도 완화할 수 있는가?
- RQ3고도로 최적화된 라이브러리인 CUBLAS 및 CUSPARSE보다 맞춤형 희소 컨볼루션 커널이 희소 추론 환경에서 성능 면에서 뛰어나게 될 수 있는가?
- RQ4희소성은 추론 속도에 어떤 영향을 미치며, 알고리즘적 및 아키텍처 최적화를 통해 이를 어떻게 보완할 수 있는가?
주요 결과
- Escort는 NVIDIA GPU에서 CUBLAS 대비 2.63배, CUSPARSE 대비 3.07배의 희소 컨볼루션 속도 향상을 달성한다.
- CUBLAS 및 CUSPARSE 대비 전체 모델 추론 속도에서 각각 1.38배와 1.60배의 성능 향상을 이룬다.
- 행렬 곱셈 내림내림을 피름으로써 Escort는 메모리 대역폭 압력을 감소시키고 희소 연산에서의 데이터 재사용성을 향상시킨다.
- 직접적인 희소 커널 설계가 GPU 점유율과 성능을 저해하는 비정규적인 메모리 액세스 패턴을 효과적으로 완화한다.
- 스레드 매핑, 메모리 액세스, 타일링에 대한 맞춤형 최적화가 희소 컨볼루션 커널의 성능을 크게 향상시킨다.
- 성능 향상은 다양한 모델과 희소 수준에서 일관되게 유지되어 현대 GPU 아키텍처에서의 강건성과 확장성을 입증한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.