ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Neural Processing Unit (NPU)의 기술 및 시장 동향
    최신 기술동향 2021. 10. 9. 12:57
    반응형

     Autonomous Vehicle, Smart Factory 등 급부상하고 있는 핵심 산업에서 가장 주도적인 역할을 하는 기술은 AI라는 것은 모두가 동의할 것이다. 그 중에서도 CNN 기반의 이미지 처리, 비디오 분석 등의 기술이 고도화되면서, 실시간 상황 판단을 필요로 하는 다양한 사업에 적용되고 있으며, RNN을 기반으로 하는 Attention[1]과 Transformer 등의 AI 구조 등이 연구되면서, BERT, GPT 등의 AI 모델들이 자연어처리 (NLP)에 사용되고 있다. 2020년에 OpenAI에서 Arxiv에 공개한 GPT-3 [2]는 놀랄 정도의 언어 구사력을 보여주며, 자연어처리 연구에 힘을 실어주는 역할을 했다. 이 밖에도, AI를 통신에 적용하는 연구들, AI로 단백질의 패턴을 찾는 연구 등 다양한 산업에서 AI가 활용되고 있다.

     지금은 각광받고 있는 AI 연구가 처음부터 활발했던 것은 아니다. 조금만 Neural Network Layer가 깊어져도, Gradient가 작아져서, 학습이 잘 되지 않는 Gradient Vanishing Problem을 해결하기 위해 'Relu' Activation Function이 나오고 Deep Learning 연구가 탄력을 받기 시작했다. 이 후에도, Layer를 더 깊게 쌓으면서도, Back-propagation이 잘 되도록, Bypass를 뚫는 Residual Block 등 모델의 구조를 바꿈으로써 성능을 높이는 연구들이 계속 Proposal되었다.

     이처럼 모델의 구조를 바꾸는 알고리즘 연구들도 있던 반면, AI 모델이 잘 돌아가기 위한 Hardware에 Focus하는 연구들도 몹시 중요한 위치를 차지하고 있다. 특히, 게임의 이미지처리에 자주 쓰이던 Graphic Processing Unit (GPU)가 덧셈, 곱셈 등의 단순 연산의 병렬처리에 효율적이라는 것을 캐치한 연구진들은 기존 연산을 책임지던 CPU 대비 수 십배 이상의 속도로 AI를 학습시키고, 활용하는데 성공한다. AI 세계관의 최강자인 Google은 AI를 위한 플랫폼인 Tensorflow와 이를 최적으로 연산하기 위한 Tensor Processing Unit (TPU)를 발표한다. 알파고에도 사용되었다고 알려진 TPU는 특정 조건에서 GPU 대비 10배 이상의 연산처리 속도를 보이면서, 후속 연구가 진행되고 있다. 현재 AI 가속기 시장에서는 Nvidia의 GPU가 약 97%에 이르는 점유율을 보이고 있으며, 2020년에는 A100이라는 GPU를 공개하면서 기존 V100 대비 20배의 성능을 보였다.

     대부분의 Computing Chip들이 폰-노이만 구조를 사용하고 있는데, 메모리와 Computing 처리량의 차이에서 나오는 폰-노이만 병목, 데이터 처리에 따른 Power consumption이 매번 허들로 지목되어 왔다. 더욱이, AI의 성능을 위해 모델이 무거워지는 상황에서는 Power Consumption도 증가하고, 연산 속도도 느려진다. 모바일 및 Computing Resource가 부족한 환경에서 AI를 활용하기 힘들어지면서, HW 최적화 연구가 주목받고 있다. 적은 에너지로 많은 연산을 처리하는 사람의 뇌구조와 비슷한 구조를 가지는 방식인 Neuromorphic 등의 Chip과 Spiking Neural Network (SNN) 등의 방식들이 제시되고 있다. 이번 글에서는 AI 연산을 위해 최적화 된 Chip인 NPU에 대해 정리하고자 한다.

     

    Neural Processing Unit (NPU)

     NPU 소개를 시작하기에 앞서, 어떤 Chip 들에서 AI를 돌릴 수 있는지를 보자. 모든 연산이 가능하지만, AI에 적합하지는 않은 CPU는 제외하고, 가장 먼저 GPU를 생각해볼 수 있을 것 같다. GPU는 위에서 설명한 것처럼, 병렬처리의 Advantage를 가지고, 한번에 많은 연산을 처리할 수 있다. 즉, 빵빵한 Resource를 가지고 힘으로 눌러버리는 이미지를 생각해볼 수 있을 것 같다. 그 다음은 FPGA와 ASIC을 생각해볼 수 있다. FPGA와 ASIC 모두 '어떤 연산을 잘 돌릴 수 있는 구조로 최적화한다'는 개념인데, 여기서는 이 연산이 AI 연산이 된다고 생각하면 된다. FPGA는 이 구조를 Flexible하게 할 수 있고, ASIC은 공장에서 한 번에 구워서 나온다는 차이가 있다. ASIC이 Flexibility는 떨어지지만 한 번에 구워서 나오기 때문에 값이 상대적으로 저렴하고, Power 소모가 적다는 장점이 있어서, 모바일 단말에 자주 활용이 된다. NPU는 3가지 모델의 성능 지표 중에 Flexibility는 포기하고, Power 소모와 가격 면에서의 AI에 최적화된 ASIC 느낌이라고 생각하면 된다. Flexibility를 포기했기 때문에, 특정 AI 모델을 돌리는데는 빠르고 적합하지만, AI 모델이 바뀌면 훨씬 느려질 수 있다. 만약 특정 Layer만 NPU를 사용하고, 나머지 Layer를 GPU나 CPU를 사용하게 된다면, 해당 부분이 Bottleneck이 되어 전체 속도가 하락할 수 있다.

     NPU의 동작에 대해 자세히 설명하는 Technical Report도 있지만 이번 글에서는 NPU에 대한 대략적인 소개만 한다. NPU의 연구 방향 중 하나인 Spiking Neural Network (SNN)은 뇌의 시냅스에서 전기 신호가 오고가는 것에서 착안한 방식으로 일정 기간동안 작은 전기신호들이 모이면 하나의 큰 스파이크를 형성해서 출력되는 방식으로 동작한다. 이처럼 AI가 인간을 모방하는 것이라면, 연산하는 방식도 모방해보자는 Neuromorphic Chip이 연구되고 있다. 이 외에도, 메모리에서 데이터를 가져와서 연산하고, 연산된 결과를 저장하는 폰-노이만 방식의 병목현상을 극복하기 위한 연구들이 제안되고 있다. 하지만, 아직까지는 '딱 이런 방식이 NPU다!'라고 선도할만한 연구보다는, 방향성을 제시하고, 주어진 환경에서 주어진 AI 모델을 조금 더 최적화해서 잘해서 돌리기 위한 Chip이라고 생각하면 될 것 같다. 앞서 소개한 TPU도 구글에서 AI를 잘 돌리기 위해 설계한 NPU의 일종이라고 생각하면 될 것 같다.

     방향성만을 제시하고, Paper work에 머무는 것 아니냐고 할 수 있지만, 이미 삼성, Qualcomm 등의 기업에서는 NPU를 연구하고, 제품에 적용하는 것을 고려하고 있다. 특히, 저전력 고효율을 필요로 하는 모바일 기기를 판매하는 기업인 삼성의 엑시노스, 퀄컴의 스냅드래곤, 화웨이의 기린 등의 Chip과 NPU를 효율적으로 적용하기 위한 노력을 거듭하고 있다. 이 외에도 전통적인 Computing 강자인 IBM, 인텔 등에서도 해당 연구를 진행하고 있다. 많은 연산을 처리해야하는 데이터센터 및 서버에 적용하기 위한 Training용 / Inference 용 AI 반도체 등의 설계도 필요하기 때문에 수요는 꾸준히 늘어가는 추세다.

     SKT에서는 AI 반도체 사피온 X220를 개발하면서, AI 반도체 개발 전선에 뛰어들었다.[3] 최근 SKT의 채용공고에 NPU Compiler 경력자를 뽑는 공고도 올라온 것을 본 기억이 난다. 이처럼 통신사인 SKT도 NPU 연구에 힘을 쏟는 이유는 AI가 SKT의 통신 및 AI 비즈니스 등 다양한 사업포트폴리오에 활용될 수 있기 때문이다. 이 점이 사피온 X220을 Inference 용으로 개발한 것과 연결이 된 것으로 보인다. AI를 위한 Training은 다른 Chip에서 돌리더라도, 이를 User들에게 '서비스를 제공'하기 위해서는 Inference가 빨라야한다. 개인적으로도 AI를 Inference하는 것을 최적화시키는 것에 초점을 맞춰야한다고 생각한다. Training 자체는 시간과 Power가 많이 든다는 문제점이 있지만, 데이터를 열심히 모아서, 빵빵한 Resource를 갖고 있는 서버에서 학습을 하고 기기에 탑재할 때까지 학습된 가중치들을 뽑기만 하면 된다. 하지만, 사용자들이 이를 이용하는 Device에서 수 ms 수준의 Delay로 서비스를 받으려면 Inference 시간이 획기적으로 줄어야한다. 이를 위해서는 Cloud Computing 및 Edge Computing에서의 Inference 속도가 빨라져야 하고 이를 위한 NPU가 필요하다. 더 나아가, 이런 기술 및 노하우는 모바일 단말향 NPU를 개발할 때도 도움이 될 수 있을 것이라 생각한다.

     

    Conclusion

     이번 글에서는 NPU의 대략적인 소개와 기업들의 동향에 대해 소개했다. NPU의 필요성 및 방향성을 이해하려면, 반도체 하나만이 아니라 전체 서비스가 이루어지는 E2E 구조를 이해하고 있는 것이 필요하다고 생각한다. 물론, 전체적인 시스템을 몰라도, AI에 최적화된 Module 단위의 Chip 설계는 할 수 있겠지만, 어떤 Use case에 쓰이는지에 따라서 고려해야할 요소가 많아질 것이기 때문이다. 단순히 Training을 하는 것이 아닌, SKT처럼 서비스 제공을 위한 추론용 NPU를 개발하려고 한다면 더욱 이런 고민이 필요하다. Server에서 서비스를 추론하고, Inference 결과를 단말로 보내줄 때는 모뎀과 어떤 Interface로 통신하고, 어떻게 최적화할지 결정해야 한다. 더 나아가 앞으로의 6G 통신의 Use case와 접목한다면, 어떻게 Inference를 하고 해당 결과를 전송하는 것이 Energy, Throughput 등의 성능에서 최적일지를 Qualcomm 등의 단말 기업에서는 이미 고민을 하고 있을 것이다. 이런 시스템 구조와 전체 사용자 서비스에 대한 이해가 앞으로의 NPU 연구를 진행함에 있어서, 실용적인 시스템이 될 지, 신기하고 어렵지만 쓰기 힘든 기술로 끝날지에 영향을 미칠 것이라고 생각한다.

     

    Reference

    [1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000–6010.

    [2] Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. arXiv preprint arXiv:2005.14165, 2020.

    [3]  https://news.sktelecom.com/127902

     

    “SKT는 다 계획이 있구나” AI 반도체 내놓은 SKT의 속내 | SK텔레콤 뉴스룸

    지난 11월 SKT가 국내 최초로 AI 반도체(NPU, Neural Processing Unit) 시장 진출을 선언했습니다. SKT와 반도체라니, 다시 들어도 새롭죠. 도대체 왜, SKT는 AI 반도체를 개발한 것일까요? 여기에는 ‘특별한

    news.sktelecom.com

     

    반응형

    댓글

Designed by Tistory.