Quantization [1]

eric9687·2022년 1월 11일
0

Quantization

(signal processing): mapping input values from a large set to output values in a smaller set

ex)

  • error는 구간간격의 반.

(neural network): 모델의 사이즈를 줄이는 것. 32bit float을 8bit int(256개의 bin)으로 fixed point mapping.

  • 이점:
    - 일반적인 필터 연산과정: input * weight(+ bias) -> activation
    • 하드웨어에서는 MAC(Multiply-Accumulate) unit을 통하여 연산을 수행.
    • 따라서, 에너지 소비 관정에서 유리하다.
    • 외부 메모리 접근의 높은 cost
    • 하지만, 한번에 읽어오는 크기도 늘어나므로, 효율이 더 좋아짐

이론

  • Fixed Points & Floating Points, 수 표현의 방법
    • fixed point(32 bit)
      - 등간격으로 수를 표현, 항상 동일한 해상도를 가짐
    • floating point(32 bit)
      - (부호)Mantissa * 2^(Exponent)
    • floating point은 가변간격을 가져 더 넓은 구간을 가짐
  • Quantization mapping
  • Quantized Matrix Multiplication
    • Y 를 계산하기 위해선 mpn회의 곱셈, m(p-1)n회의 덧셈을 수행해야함 => 미리 계산하여 상수처럼 활용 가능.
  • Quantized Activations
  • Layer Fusion
    : 학습을 더 이상 수행하지 않을 runtime시점에, Conv layer뒤에 추가되는 Activation layer, Batchnorm layer들을 fuse하여, 하나의 Conv로 표현하는 방법.
    Layer가 줄어들어 실제 inference에서도 속도가 향상됨.
    • Conv - BN
    • Conv - Activation
profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글