Skip to main content
QUICK REVIEW

[논문 리뷰] Accelerating SLIDE Deep Learning on Modern CPUs: Vectorization, Quantizations, Memory Optimizations, and More

Shabnam Daghaghi, Nicholas Meisburger|arXiv (Cornell University)|2021. 03. 05.
Advanced Image and Video Retrieval Techniques참고 문헌 10인용 수 16
한 줄 요약

이 논문은 AVX-512 벡터화, bfloat16 정량화, 메모리 접근 최적화를 활용하여 현대 x86 CPU용으로 SLIDE 딥러닝 시스템을 최적화함으로써, V100 GPU에서의 텐서플로우보다 최대 7배 빠른 학습 속도와 동일 하드웨어에서의 TF-CPU보다 7.9배 빠른 학습 속도를 달성함으로써, 소프트웨어 수준의 최적화가 대규모 희소 모델에 대해 전용 하드웨어 성능을 뛰어넘을 수 있음을 보여줌.

ABSTRACT

Deep learning implementations on CPUs (Central Processing Units) are gaining more traction. Enhanced AI capabilities on commodity x86 architectures are commercially appealing due to the reuse of existing hardware and virtualization ease. A notable work in this direction is the SLIDE system. SLIDE is a C++ implementation of a sparse hash table based back-propagation, which was shown to be significantly faster than GPUs in training hundreds of million parameter neural models. In this paper, we argue that SLIDE's current implementation is sub-optimal and does not exploit several opportunities available in modern CPUs. In particular, we show how SLIDE's computations allow for a unique possibility of vectorization via AVX (Advanced Vector Extensions)-512. Furthermore, we highlight opportunities for different kinds of memory optimization and quantizations. Combining all of them, we obtain up to 7x speedup in the computations on the same hardware. Our experiments are focused on large (hundreds of millions of parameters) recommendation and NLP models. Our work highlights several novel perspectives and opportunities for implementing randomized algorithms for deep learning on modern CPUs. We provide the code and benchmark scripts at https://github.com/RUSH-LAB/SLIDE

연구 동기 및 목표

  • 대규모 딥러닝 모델 학습에서 CPU와 GPU 간의 성능 격차를 해소하기 위해 현대 x86 아키텍처에 최적화된 SLIDE 시스템을 개선하는 것.
  • AVX-512, bfloat16, 메모리 접근 패턴과 같은 아직 활용되지 않은 CPU 기능을 활용하여 희소 딥러닝 워크로드를 가속화하는 것.
  • 소프트웨어 수준의 최적화가 대규모 추천 및 NLP 모델에 대해 전용 하드웨어인 GPU와 경쟁하거나 뛰어나게 만들 수 있음을 입증하는 것.
  • 희소성과 시스템 수준 최적화를 활용하여 단일 CPU 기반 시스템에서 수십억 파라미터 모델의 확장성 있고 메모리 효율적인 학습을 가능하게 하는 것.

제안 방법

  • 16비트 정수 16개를 한 명령어에 처리함으로써 SLIDE의 희소 파라미터 업데이트에서 밀도 있는 연산을 가속화하기 위해 AVX-512 벡터화 적용.
  • 메모리 대역폭을 줄이고 산술 집중도를 높이기 위해 가중치와 활성화 모두에 bfloat16 정량화 통합.
  • 랜덤화된 파라미터 업데이트 파이프라인에서 DRAM 지연을 줄이고 데이터 국소성을 향상시키기 위해 메모리 접근 최적화 구현.
  • 벡터화, 정량화, 메모리 최적화를 통합하여 AVX-512를 지원하는 인텔 Xeon CPU를 대상으로 한 고도로 최적화된 SLIDE 구현체 개발.
  • 최소한의 종속성으로 구현된 C++ 기반 SLIDE 프레임워크를 사용하여 일반 x86 플랫폼에서의 이식성과 성능 확보.
  • 통제된 조건에서 대규모 추천 및 NLP 데이터셋(예: Amazon-670K, WikiLSH-325K, Text8)을 대상으로 성능 평가.

실험 결과

연구 질문

  • RQ1현대 CPU에서 AVX-512 벡터화가 희소 딥러닝 워크로드를 상당히 가속화할 수 있는가?
  • RQ2SLIDE에서 bfloat16 정량화는 모델 정확도를 훼손하지 않으면서 학습 처리량을 얼마나 향상시키는가?
  • RQ3랜덤화된 희소 딥러닝 시스템에서 메모리 접근 최적화를 통해 얻을 수 있는 성능 향상은 어느 정도인가?
  • RQ4완전히 최적화된 CPU 기반 SLIDE 구현체가 대규모 모델에 대해 V100에서 최적화된 텐서플로우 프레임워크를 뛰어넘을 수 있는가?
  • RQ5벡터화, 정량화, 메모리 최적화가 SLIDE의 전체 속도 향상에 기여하는 상대적 기여도는 각각 얼마인가?

주요 결과

  • 인텔 Xeon 플래티넘 8368(CPX)에서 최적화된 SLIDE는 Text8 데이터셋에서 텐서플로우 V100 GPU 대비 최대 15.5배 빠른 학습 속도를 달성함.
  • Amazon-670K 데이터셋에서 CPX에서 최적화된 SLIDE는 V100 GPU에서의 TF-GPU 대비 7.8배 빠르고, 동일한 CPU에서의 TF-CPU 대비 7.9배 빠름.
  • AVX-512 벡터화만으로도 학습 시간이 최대 1.2배 감소하여 계산 집약적 단계에서의 상당한 영향을 입증함.
  • BF16 정량화는 Amazon-670K 및 WikiLSH-325K에서 성능을 최대 1.39배 향상시키지만, Text8에서는 성능 저하를 초래하여 데이터셋에 따라 영향이 다름.
  • 메모리 최적화가 가장 큰 성능 향상 기여를 하며, 벡터화 및 정량화를 초월한 2–7배의 향상 중 대부분을 차지함.
  • 최적화된 SLIDE는 전체 소프트맥스 기반 베이스라인과 비교해 P@1 성능을 유사하게 유지함으로써 정확도가 강력한 최적화에도 불구하고 손상되지 않았음을 확인함.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.