Skip to main content
QUICK REVIEW

[논문 리뷰] EFloat: Entropy-coded Floating Point Format for Deep Learning.

Rajesh Bordawekar, Bülent Abali|arXiv (Cornell University)|2021. 02. 04.
Numerical Methods and Algorithms참고 문헌 42인용 수 4
한 줄 요약

EFloat는 자주 발생하는 지수 값과 부호를 엔트로피 인코딩하는 방식을 활용하여 평균 지수 필드 폭을 줄이고, 이를 통해 더 높은 정밀도를 가진 가수 필드에 비트를 할당하는 새로운 부동소수점 형식이다. 이는 표준 형식인 FP32, BFloat16 및 8비트 부동소수점보다 평균 4~6비트의 추가 정밀도를 달성하여, 메모리 사용을 줄이고 저정밀도 딥러닝 모델의 정확도를 향상시킨다.

ABSTRACT

We describe the EFloat floating-point number format with 4 to 6 additional bits of precision and a wider exponent range than the existing floating point (FP) formats of any width including FP32, BFloat16, IEEE-Half precision, DLFloat, TensorFloat, and 8-bit floats. In a large class of deep learning models we observe that FP exponent values tend to cluster around few unique values which presents entropy encoding opportunities. The EFloat format encodes frequent exponent values and signs with Huffman codes to minimize the average exponent field width. Saved bits then become available to the mantissa increasing the EFloat numeric precision on average by 4 to 6 bits compared to other FP formats of equal width. The proposed encoding concept may be beneficial to low-precision formats including 8-bit floats. Training deep learning models with low precision arithmetic is challenging. EFloat, with its increased precision may provide an opportunity for those tasks as well. We currently use the EFloat format for compressing and saving memory used in large NLP deep learning models. A potential hardware implementation for improving PCIe and memory bandwidth limitations of AI accelerators is also discussed.

연구 동기 및 목표

  • 대규모 딥러닝 모델에서 발생하는 메모리 및 대역폭 제약을 해결하기 위해 더 효율적인 부동소수점 형식을 설계한다.
  • 딥러닝 워크로드에서 지수 값의 엔트로피 분포를 활용하여, 일부 지수 값이 다른 지수 값보다 훨씬 더 자주 발생하는 특성을 이용한다.
  • 비트 폭을 늘리지 않고도 저정밀도 형식(예: 8비트, 16비트)의 유효 정밀도를 높이기 위해 지수와 부호의 엔트로피 인코딩을 적용한다.
  • 개선된 정밀도로 인해 양자화 오차를 줄여 저정밀도 딥러닝에서 더 정확한 학습과 추론을 가능하게 한다.
  • 정밀도 손실을 최소화하면서도 큰 NLP 모델 가중치를 압축하고 저장하기 위한 실용적인 형식을 제공한다.

제안 방법

  • EFloat 형식은 높은 빈도로 발생하는 지수 값과 부호 조합을 히프만 인코딩하여 그 표현 비용을 줄인다.
  • 높은 빈도로 발생하는 지수 및 부호 패턴에 짧은 코드를 할당함으로써, 평균 지수 필드 폭을 표준 부동소수점 형식보다 낮춘다.
  • 압축된 지수 필드에서 확보한 비트는 가수 필드로 재할당되어 평균적으로 4~6비트의 유효 정밀도 향상을 이룬다.
  • 기존 딥러닝 프레임워크 및 하드웨어와의 호환성을 고려하여 설계되어, 모델 압축 및 메모리 절약에 적용 가능하다.
  • FP32, BFloat16 및 8비트 부동소수점과 같은 동일한 비트 폭을 가진 기존 부동소수점 형식에 적용하여 비트 폭을 늘리지 않고도 정밀도를 향상시킨다.
  • AI 가속기의 PCIe 및 메모리 대역폭 제약을 완화하기 위해 데이터 이동을 줄이기 위한 하드웨어 구현 방안을 제안한다.

실험 결과

연구 질문

  • RQ1부동소수점 형식에서 지수 값과 부호를 엔트로피 인코딩하면 평균 필드 폭을 줄이고, 가수 정밀도 향상을 위해 비트를 확보할 수 있는가?
  • RQ2EFloat는 BFloat16 및 8비트 부동소수점과 같은 표준 저정밀도 형식보다 유효 정밀도를 얼마나 향상시킬 수 있는가?
  • RQ3실제 딥러닝 워크로드, 특히 대규모 NLP 모델에서 EFloat는 메모리 압축 및 정확도 측면에서 어떻게 성능을 발휘하는가?
  • RQ4EFloat는 AI 가속기에서 메모리 대역폭과 데이터 이동에 어떤 영향을 미칠 수 있는가?
  • RQ5EFloat는 정밀도 향상을 통해 저정밀도 딥러닝에서 더 정확한 학습을 가능하게 할 수 있는가?

주요 결과

  • EFloat는 동일한 폭을 가진 표준 부동소수점 형식(FP32, BFloat16 등)과 비교해 평균 4~6비트의 추가 유효 정밀도를 달성한다.
  • 딥러닝 워크로드에서 특정 지수 값의 높은 빈도를 활용하여 평균 지수 필드 폭을 줄여 비트 절약을 가능하게 한다.
  • 절약된 비트는 가수 필드로 재할당되어 총 비트 폭을 늘리지 않고도 수치 정밀도를 향상시킨다.
  • 특히 높은 메모리 요구량을 가진 대규모 NLP 모델에 유리한 더 정확한 모델 압축 및 저장을 가능하게 한다.
  • 낮은 데이터 이동으로 인한 메모리 대역폭 압박 감소를 통해 하드웨어 가속화 잠재력을 보여준다.
  • 엔트로피 인코딩 기법은 8비트 부동소수점 및 기타 저정밀도 형식에 적용 가능하여, 새로운 저정밀도 AI 워크로드로의 활용도를 확장한다.

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

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

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

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