NPU는 Neural-network Processing Unit의 약자로 다양한 Neural Network를 가속하고 그 결과를 다양한 응용에 이용할 수 있게 해줍니다.
Machine Learning은 Object Detection, Segmentation, Depth Estimation, Noise Reduction, Natural Language Processing 응용 등에서 다양하게 쓰이고 있고 이의 핵심에는 Neural Network가 있습니다. 대표적인 Neural Network에는 Convolutional Neural Network (CNN)과 Transformer가 있는데 이는 둘 다 상업적으로 성공적으로 적용되어 활용되고 있습니다. 하지만 Neural Network는 기존의 CPU나 GPU에 최적화되어서 구현되기 힘듭니다. 따라서 Neural Network의 Workload를 분석하고 이를 바탕으로 최적의 Hardware 설계가 필요한데 이 Hardware를 NPU라 부르고 설계의 모든 과정을 NPU 파트에서 진행하고 있습니다.
이렇게 NPU를 설계하여 SoC에 탑재했을 때, CPU나 GPU만을 가지고 있는 SoC 대비 더 적은 전력을 사용하면서도 높은 성능을 구현할 수 있습니다. 이를 통해, 더 긴 Battery Time과 더 짧은 Response Time을 구현할 수 있게 되고 사용자 경험을 향상 시키며 더 복잡한 AI 모델을 실행할 수 있게 해줍니다.
현재 비전넥스트에는 다양한 Task에 AI를 사용하고 있습니다. Object Detection, Segmentation, Depth Estimation, Noise Reduction에 NPU를 사용하고 있지만 무엇보다 Vision에 특화된 SoC이기 때문에 화질에도 AI를 적용하여 차별성을 두고 있습니다.
특히 사람 눈에는 전혀 보이지 않는 극저조도 상황에서 Neural Network를 통해 Image Enhancement 과정을 거치게 되면 마치 밝은 화면을 찍은 것처럼 선명한 이미지를 얻을 수 있습니다. 이 때 많은 연산량과 데이터 이동, 전력 소모 등이 발생하게 됩니다. 현재 NPU 파트에서는 이를 최소화하기 위한 전용 NPU를 설계하고 있습니다.
저는 박사과정에서 Computer Vision을 가속하는 SoC를 설계했습니다. 그 당시에는 Neural Network가 Computer Vision에서 두각을 나타내기 전이어서 FAST, SIFT 등의 Model-based Pattern Recognition이 유행했습니다. 그래서 그 당시에 설계했던 칩은 SIFT 알고리즘을 가속하였지만 칩의 전체 Workload를 관장하는 조그마한 Scheduler에 Neural Network를 적용해서 설계했었고 이것이 제 커리어에서 AI를 가속한 첫 번째 경험이었습니다.
박사를 졸업할 때 즈음, Alexnet이 소개되고 ResNet이 엄청난 파장을 일으키면서 본격적으로 NPU 설계가 글로벌 기업과 소위 일류 대학을 중심으로 유행하기 시작했습니다. 그때 저도 CNN을 타깃으로 한 NPU를 개발하였고, 성공적으로 제품에 탑재한 경험을 쌓을 수 있었습니다.
이후에 비전넥스트에서 입사하여 그 때의 경험을 살려서 또 다른 종류의 NPU를 개발하고 있습니다. 비록 저의 주된 Skillset과 Background는 Computer Architecture과 Digital Circuit Design이지만 항상 AI 알고리즘의 변화를 주시하고 그 구조까지 이해하여 차별화 된 NPU Designer가 되려고 노력하고 있습니다. 최근에는 Transformer를 Cloud Computing의 도움 없이 Edge Device에서 가속하는 노력이 많이 보이는데 저도 이쪽을 다음 과제의 후보로 생각하고 연구 중에 있습니다.