목록DNN/Quantization (4)
The Beautiful Future

Quantization scheme affine mapping of integers q to real numbers r r = S(q-Z), r: real value, q: quantized value, S: scale, Z: zero point S는 양의 실수 이다, Z는 q와 같은 타입의 콴타이즈되어있는 수이고 q = Z 이면 real value 0이다. weight는 8bit integer로 퀀타이즈되고 bias는 32bit로 콴타이즈된다. Integerarithmeticonly matrix multiplication (4)에서 M 만 int가 아니다. M을 int로 바꾸고 fixed-point mul을 한다. 실험적으로 S1, S2, S3는 항상 (0,1)사이에 있다는 것을 찾았다. M0 는 [0..
https://github.com/google/gemmlowp/blob/master/doc/quantization.md google/gemmlowp Low-precision matrix multiplication. Contribute to google/gemmlowp development by creating an account on GitHub. github.com Overview gemmlowp 은 내부적으로 32bit accumulator을 사용하고 최종으로는 8bit 출력을 내보낸다. Quantization as an affine map $$ real value = A * quantized value + B $$ $$ real value = C * (quantized value + D) $$ Do..
@ tensorflow quantize tf.quantization.quantize( input, min_range, max_range, T, mode='MIN_COMBINED', round_mode='HALF_AWAY_FROM_ZERO', name=None, narrow_range=False, axis=None, ensure_minimum_range=0.01 ) - min_range = min( input_tensor ), max_range = max( input_tensor) - MIN_COMBINED mode 인경우, out[i] = (in[i] - min_range) * range(T) / (max_range - min_range) if ( T == qint8 ) out[i] -= (range(T..
https://pytorch.org/docs/stable/quantization.html Quantization — PyTorch 1.6.0 documentation Shortcuts pytorch.org Introduction 콴타이제이션하면 2~4배 빠르다. x86 CPU에서 AVX2 이상 SIMD연산을 지원한다. ARM CPU에서 일반적으로 mobile/embedded devices를 찾을 수 있다. Backend 파이토치는 콴타이제이션은 현재 x86과 ARM용으로 두가지 백엔드를 지원한다. fbgemm for x86, qnnpack for ARM QNNPACK 이 두 모드지원은 qconfig에서 설정이 가능하다. post training quantization qconfig = torch.quan..