미니 NPU라 하는 물건은....
- LaPL
- 조회 수 1556
- 2021.01.13. 00:08
저도 배우는 입장에서 약간의 첨언을 (알쓸신잡 수준으로)드리면, NPU는 기존의 DSP,ISP랑 별 차이 없는 원리와 동작형태를 보여주고 있습니다.
Ti의 DSP는 OpenCL을 동작할 정도로 범용성을 띄지만 본래 이런 회로들은 ASIC과 같이 특정 영역의 연산만을 전담해서 CPU의 부하를 줄이는 목적입니다. (즉 로직으로 찍어낸 연산만이 가능....)
NPU라고 거창하게 붙인건 해당 로직의 동작이 Ai....특히 Deep learning에서 주로 사용되는 곱셈 후 누산(FMA)연산에 특화되어있고 사용을 위한 API도 그러합니다.
현재 코드상에서 NPU를 사용하는 대부분의 방법은, 외부 Deep Learning모델을 가져와서 추론시 부가 옵션으로 동작하게 구성되어있으며 다시 말하면 절대적으로 현재는 추론시에만 사용됩니다. 이는 다양한 Deep Learning 모델의 학습(Training)시 사용되는 복잡한 forward&backward path를 제한적인 회로에서 진행하기 힘들기에....
또한 대부분 현실적인 문제로 32비트 float가 아닌 float16이나 int8로 양자화(quantization)된 모델에서 동작하는것이 거의 강제됩니다. (Nvidia의 TensorRT나 구글의 TF-Lite) 이는 Deep Learning이 추론 단계에서는 대략적인 minimum근처에서 수렴하는 값 정도만 도출해도 어지간하면 쓸만한 결과가 나오기 때문인데....(data의 정밀도가 높을 필요가 없음) 그렇기에 태생부터 다른 연산에 써먹기 애매한 상황이죠. (Ai빼고 float16이나 int8을 써먹는 연산이 거의 없....)
지금은 NPU가 ARM AP들에 유행처럼 들어가는데(주로 저가인 Rockchip, Amlogic칩셋에도 들어가더군요....) 사실 사용처는 매우 제한되는 상황입니다(...) 범용으로 잘 쓰려면 API만드는 쪽에서 잘 해줘야 비벼라도 보는....
p.s 아래는 Nvidia의 Tegra Xavier에 들어간 NPU입니다. Xavier는 GPU+NPU(mp2-5TOPs/NPU)로 32TOPs라고 합니다.(8bit정수기준) 엑시 2100은 NPU혼자서 26TOPs는 충분히 높기는 합니다만, 기본적으로 ASIC과 같이 게이트를 직접하는 만큼 나오는 성능이라서 5nm가 좋기는 좋네요.
일단 맞습니다