Shifted and Squeezed 8-bit Floating Point format for Low-Precision Training of Deep Neural Networks
arXiv:2001.05674
Abstract
Training with larger number of parameters while keeping fast iterations is an increasingly adopted strategy and trend for developing better performing Deep Neural Network (DNN) models. This necessitates increased memory footprint and computational requirements for training. Here we introduce a novel methodology for training deep neural networks using 8-bit floating point (FP8) numbers. Reduced bit precision allows for a larger effective memory and increased computational speed. We name this method Shifted and Squeezed FP8 (S2FP8). We show that, unlike previous 8-bit precision training methods, the proposed method works out-of-the-box for representative models: ResNet-50, Transformer and NCF. The method can maintain model accuracy without requiring fine-tuning loss scaling parameters or keeping certain layers in single precision. We introduce two learnable statistics of the DNN tensors - shifted and squeezed factors that are used to optimally adjust the range of the tensors in 8-bits, thus minimizing the loss in information due to quantization.
References in corpus (7)
- DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients
- Training Deep Neural Networks with 8-bit Floating Point Numbers
- A Survey on Methods and Theories of Quantized Neural Networks
- Mixed Precision Training of Convolutional Neural Networks using Integer Operations
- Rethinking floating point for deep learning
- A Study of BFLOAT16 for Deep Learning Training
- Mixed Precision Training With 8-bit Floating Point