세미나 필기 | 2021년 3월 3일 Accelerating deep learning: from hardware to software

내가 학기 중에 제일 좋아하는 시간인 세미나 시간!!

오늘은 딥러닝 액셀레러이팅에 관한 내용이다.

내 연구주제와 관련있어서 오늘은 특히 좋다.


오늘은 한양대학교에서 오신 최정욱 교수님이 세미나를 해주신다!!

근데 왜 담당 교수님이 안 계시지..?? 아무튼.


그럼 필기 시작!!!


Accelerating Deep Learning: Algorithm - software - hardware

딥러닝 트레이닝, 인퍼런스 시에 많은 컴퓨팅파워가 필요함.

--> 딥러닝 엑셀러레이터들이 많이 나온다. 인텔 Nervana, 구글 TPU, IBM 뭐시기 뭐시기...

여러 딥러닝 프레임워크들이 많은 MatMul 오퍼레이션을 요구함

컴파일러: Nvidia 텐서RT, 구글, 인텔 nGraph ...... DL-SW(Perf-Driven SW)

하드웨어: Nvidia V100, Google TPU, Intel NPU, ..... DL-HW(Versatile DL HW)


compute-Efficient Deep Learning Algorithms

"reduced-precision computation" for efficient DL inference and training

- 90% of DNN conputation is MatMul (GEMM)

이때 이 2^e-127의 precision이 필요한가? 아니라는것

그래서 Bit reduction을 통해 에너지를 절약할 수 있다. (Horowits, 연도는못봄)

- Reducing precision of all GEMMs into 8-bit Floating Point

>> 인제 fwd/bwd/upd에서 다 8비트 곱셈을 하겠다는것이다

- Two key ideas to avoid "swamping error"

큰 수와 작은 수를 더할때 생기는 에러. 정보를 잃어버림

1. chunk-based accumulation

implement할때 for 루프를 2번써서 chunk 단위로 더하고 전체 chunk를 더하면 swamping error를 줄일수있음. 행렬곱에서 유용

2. Stochastic rounding

weight update에서는 행렬곱이 안쓰인?니까? 확률적으로 rounding을 하는 방식을 사용.

작은 gradient도 확률적으로 update 될 수 있다

- Extend towards NLP, Speech, Object detection via HFP8

>>암튼 적용했더니 잘됐다

- Benefit of FP8-training in hardware

>> 메모리 용량 2배 줄임

>> 못봄

- inference시에도 더 precision 줄일수있다. quantization-aware training 사용하여.

ResNet 구조에서  뭔가 중요한 내용을 말씀해주셨으나 배가 고파서 전혀 이해를 못했다

- Activation quantization: Parameterized clipping ACTivation(PACT)

- 렐루는 양자화에러가 크고... 클리핑액티베이션은 클리핑에러가 커서... 트레이드오프로... 양자화에러와 클리핑에러를... 이 두개를 알파라는 파라미터로 놓고... back-prop 사용하여 알파를 조절...?????

- weight quantization: statistics-aware weight binning (SAWB)

sweeping을 사용하여... 알파를 analytically 구할 수있다... 알파라는거는 뭐지..?? 양자화하는데 쓰이는 파라미터인듯...

- PACT + SAWB(+Full prec short-cut)

>> 다 합쳤더니 아주 효율적으로 잘됐다.


Versatile Deep Learning Hardware

큰일났다 이거 잘 모르는데

- Design a flexible yet high-performing accelerator for DL training

GEMM 말고도 다른 연산이 많은데... batch norm등

초기 레이어에서는 activation dominant 하고싶고 나중 레이어에서는 weight dominant 하고싶다.

-Overall architecture of RaPiD

컴구 청강을 해야되는데... 진짜 해야되는데...

Weight/Input/Output의 stationary dataflow를 support한다.

SFU: special function unit

-Programmble PE/ ...으아 못적었다

큰일났다... 진심 하나도 못알아듣겠다... 


Performance-Driven Deep Learning Software

다양한 DNN 알고리즘을 HW로 매핑

자동으로 필요한 연산을 분석해서 매핑을 효율적으로 해줄수 있어야함

"Deeptools": Performance-driven rintime extension that performs spatio-temporal mapping of DL algorithm to HW

이해가안가서 일단 다 캡쳐해옴

최적화 1: workload partition across the cores

최적화 2: 연산 순서 최적화 (temporal work sequence)

이후로는 이해를 포기하였음... 아무튼 래피드 플랫폼에서 티피컬 딥러닝 프레임워크 내부 프로시져라고 함


댓글