home

기술동향칼럼

4차 산업혁명의 엔진 : 컴퓨팅 시스템의 핵심은 무엇이 될 것인가?
- AI 응용을 위한 CPU, GPU, FPGA, 전용 하드웨어 가속기를 중심으로

박 기 호 교수 | 세종대학교 컴퓨터공학과

1. 왜 지금 4차 산업혁명, AI, 빅데이터 등이 화두인가?

  요즈음 정보통신 관련 이야기 중 가장 많이 듣는 단어는 4차 산업혁명, 인공지능 (Artificial Intelligence, AI), 빅데이터 등의 용어들일 것이다. 우리 나라의 경우는 특히 2016년 3월 서울 한복판인 광화문에서 진행된 알파고와 이세돌 9단의 바둑 대결에서, 기존의 예상을 뒤엎고 인공지능 기반의 알파고가 4승 1패의 압도적인 결과로 승리하는 것을 직접 목격하였고, 이는 AI, 빅데이터 등에 대한 관심이 폭증하게 된 계기라고 할 수 있을 것이다. 1980년대에 퍼지 세탁기 등으로 우리에게 다가왔던 AI 기술이, 오랫동안의 침체기를 지나 최근에 와서 4차 산업혁명이라는 이름과 함께 큰 기대를 받게 되는 이유는 무엇일까? 이에 대한 답변은, 사물인터넷 (Internet of Things, IoT) 기술의 발전에 힘입어 많은 분야의 디지털화에 따른 엄청난 양의 빅데이터의 축적, 4G, 5G 등의 이동 통신 기술의 발전 등 다양한 분야에서의 발전에 따른 복합적인 영향에 의한 것이지만, 가장 중요한 이유 중 하나는 딥러닝 (deep learning) 기술 등을 비롯한 인공지능 기술의 발전일 것이다. 기계 학습의 일종인 딥러닝 기술은 영상 인식 등의 응용에서 탁월한 효과를 보이며, 이미 자율 주행 등의 다양한 분야에 활용되고 있다. 그럼 왜 지금 이러한 딥러닝이 왕성하게 활용되며, 일반 사람들의 관심을 가지게 될 정도로 발전하게 된 것일까? 기술적으로는 이러한 딥러닝 기술이 최근에 큰 발전을 이루게 된 이유는 크게 세 가지 영역의 발전에 힘입은 결과로 분석된다. 이 세 가지 영역은 딥 뉴럴넷 등을 활용하는 딥러닝 알고리즘의 획기적 발전, 이러한 딥러닝 알고리즘 등 기계 학습에 활용될 수 있는 막대한 양의 빅데이터의 축적, 그리고 엄청난 계산량을 요구하는 딥러닝 기법의 학습 (learning) 및 추론 (inference)을 수행할 수 있는 컴퓨팅 성능의 획기적인 발전이다. 이 글에서는 이 세 가지 중 딥러닝 학습에 요구되는 획기적인 연산 성능을 제공하는 컴퓨팅 시스템의 다양한 프로세싱 엔진을 위주로, AI 등의 미래 응용을 효율적으로 처리하는 미래 컴퓨터 시스템을 위한 프로세싱 엔진이 어떤 형태가 될 것인가에 대하여 생각해 보고자 한다.

2. 고성능 연산을 제공하기 위한 다양한 프로세싱 엔진

  그러면 우선 우리가 현재 사용하고 있는 고성능 연산을 위한 프로세싱 엔진에는 어떤 것들이 있을까? 가장 먼저 떠오르는 것이 CPU (중앙처리장치, Central Processing Unit)일 것이다. CPU는 데스크탑/노트북 PC, 서버 등 일반적인 범용 컴퓨터에서 다양한 연산을 수행하는 프로세서이다. 그 다음으로 많이 알려진 프로세서는 초기에는 3차원 (3-D) 그래픽 처리 등을 주로 수행하던 GPU (Graphic Processing Unit)가 있다. 좀 더 전문적인 영역에서 사용되는 FPGA (Field Programmable Gate Array)와 특정한 용도의 연산을 전용으로 수행하는 ASIC (Application Specific Integrated Circuit) 또한 대표적인 프로세싱 엔진이라 할 수 있다.

  그럼 이러한 많은 종류의 프로세싱 엔진은 왜 동시에 다양하게 존재하며 사용되는 것일까? 이는 아래 [그림 1]에서 보이는 것과 같이 사용하고자 하는 용도의 범위와 전력, 성능 효율성 간의 다양한 절충점 (trade-off)이 존재하기 때문이다. 일반인들에게 많이 사용되고 잘 알려진 CPU, GPU 등은 컴퓨터를 사용하는 다양한 응용에 사용하는 범용 (general purpose) 프로세서로, 처리하고자 하는 일을 프로그래머가 작성한 프로그램을 수행함으로써 처리하게 한다. 예를 들어 인터넷에서 정보를 검색하고자 하면, 인터넷익스플로러나 크롬 등의 웹 브라우저 프로그램을 수행하여 컴퓨터를 인터넷 검색을 하는 기계로 사용하게 된다. 동영상을 보고 싶다면 곰플레이어나, 미디어플레이어 등의 프로그램을 수행하여 컴퓨터를 동영상을 보여주는 기능을 하는 기계로 사용하게 되는 것이다. 따라서 CPU는 사용자의 필요에 따라 원하는 어떤 일을 처리하고 싶으면 그 일을 처리하도록 작성된 프로그램을 실행하여, 어떠한 일이라도 수행할 수 있는 특징이 있다. CPU가 인터넷 사용, 워드 프로세서, 동영상 재생 등 우리가 컴퓨터를 이용해서 수행하는 모든 일을 처리할 수 있는 이유가 여기에 있다. GPU의 경우는 CPU에 비해서는 제한적이지만, GPU 프로그래밍에 적합한 CUDA, OpenCL 등을 활용하여 프로그램 함으로써, 대량의 연산이 집중된 다양한 응용을 처리할 수 있다. 반면에 FPGA와 ASIC의 경우는 처리할 수 있는 일이 한 가지이거나 아주 작은 정도의 차이가 있어 큰 변화가 없는 것만을 수행하게 된다. ASIC (Application Specific Integrated Circuit, 주문형반도체)이라는 이름에서 알 수 있는 바와 같이, AISC은 특정한 응용을 수행하는 전용 하드웨어로서 해당 응용을 성능이나 전력 소모 측면에서는 최적으로 수행할 수 있으나, 특정한 응용을 위하여 설계 제작된 전용 하드웨어로 원래 목표로 설정한 응용 이외의 다른 응용을 수행하는 것은 거의 불가능하다. FPGA (Field Programmable Gate Array)는 여러 번 다시 프로그램을 하여 사용할 수 있는 특성을 가지고 있는 하드웨어로, 한번 프로그램을 하면 마치 ASIC처럼 전용 하드웨어와 같이 사용할 수 있으나, 다시 프로그램 하는데 필요한 노력이 CPU, GPU를 위한 프로그램보다 훨씬 크다는 단점이 있지만, 프로그램을 진행하여 하드웨어를 구성한 후 목표로 하는 응용을 수행할 때는, 전용 하드웨어에 가까운 성능을 제공하는 특징을 갖는다. 정리하면 CPU, GPU, FPGA, ASIC의 순으로 다양한 응용을 처리할 수 있는 우수한 유연성 (flexibility) 및 프로그래밍 가능성 (programmability)을 가지며, 성능 효율성 면에서는 그 반대의 순서로 우수한 특성을 갖는다. 이러한 다양한 프로세싱 엔진은 사용하고자 하는 용도에 따라, 만약 다양한 응용을 수행해야 하는 경우에는 유연성과 프로그래밍 가능성이 큰 CPU, GPU 등의 프로세싱 엔진을, 단일한 특성을 갖는 응용을 수행하고자 하는 경우에는 FPGA, 전용 하드웨어 등 효율이 좋은 전용의 프로세싱 엔진을 취사선택하여 사용하게 된다. 이를 염두에 두고 다음 장에서는 최근 많은 개발과 관심을 받고 있는 딥러닝 등에 기반한 AI 응용을 처리하기 위한 프로세싱 엔진의 개발 동향을 살펴보도록 하겠다.

[그림 1] 다양한 프로세싱 엔진의 특성과 유연성, 성능 효율성 비교[1]

[그림 1] 다양한 프로세싱 엔진의 특성과 유연성, 성능 효율성 비교[1]

3. 딥러닝 등 AI 응용을 위한 프로세싱 엔진 개발 동향

  딥러닝 등 기계 학습 기반의 AI 응용의 효율적인 처리를 위하여 Intel, ARM, nVIDIA, Xilinx, Google 등은 다양한 형태의 프로세싱 엔진을 개발하여 발표하고 있다. CPU를 개발하는 Intel의 경우는 [그림 2]에서 보이는 바와 같이 차세대 CPU인 Cascade Lake에 딥러닝 처리에 요구되는 연산인 convolution 연산을 빠르게 처리할 수 있는 특화된 명령어인 Vector Neural Network Instruction (VNNI)을 새로이 적용하고, 이를 효율적으로 활용할 수 있는 라이브러리 등을 함께 개발하여, 기존 프로세서 대비 10배 이상의 성능 향상을 추구하고 있다[2]. 스마트폰, IoT 등에 활용되는 저전력 CPU를 개발하는 ARM사는 기계 학습을 위한 전용 프로세서를 개발하여 스마트폰 등의 용도로 제공하고 있다[3]. 또한 그래픽 프로세서 선두 개발업체인 nVIDIA는 자사의 GPU와 함께 DLA (Deep Learning Accelerator)라는 딥러닝 전용 하드웨어 가속기 등을 포함하는 Xavier라는 SoC (System on Chip)를 개발하여, 자율주행 등의 응용에 요구되는 다양한 연산을 효율적으로 지원하고자 하고 있다[4,5]. FPGA 분야의 선두 업체인 Xilinx사에서는 자사의 FPGA 적합한 딥 뉴럴 넷 (Deep Neural Network) 프로세서인 xDNN 프로세서와 최근 인수하여 합병한 Deephi등이 개발한 프로세서를 자사의 FPGA에 최적화하여 개발하고 있다[6]. AlphaGo등을 통하여 자사의 딥러닝 기술의 우수함을 보인 Google은 Tensor Processing Unit (TPU)을 3세대까지 개발하여, 자사의 서버에서 딥러닝 기반 서비스를 제공하는데 활용하고 있다[7,8].

[그림 2] Intel, ARM, nVIDIA, Xlinix, Google의 AI 응용 가속 프로세싱 엔진 개발 동향[2-8]

[그림 2] Intel, ARM, nVIDIA, Xlinix, Google의 AI 응용 가속 프로세싱 엔진 개발 동향[2-8]

4. AI 등 새롭게 등장하는 응용의 처리를 위한 미래 컴퓨팅 엔진

  앞에서 CPU, GPU, FPGA의 선도 업체들과 TPU를 개발한 Google 등의 업체들이 AI 전용 하드웨어 등 딥러닝 응용에 적합한 다양한 프로세싱 엔진을 개발하는 전략을 취하고 있는 것을 살펴보았는데, 그럼 과연 미래에 새롭게 대두되는 AI 등의 응용을 위한 컴퓨팅 엔진은 어떠한 것이 될 것인가? 이 물음에 대한 답은 새롭게 등장하는 딥러닝 등의 응용이 특정하게 정해진 연산을 수행하는 전용 하드웨어로 수행할 수 있는 정해진 응용인지, 아니면 여러 개의 응용 프로그램을 수행하는 것과 같이 다양한 프로그램을 수행해야 하는 것인가에 따라 결정될 것이다. [그림 3]은 영상 인식을 위한 다양한 알고리즘의 시간에 따른 정확도의 변화와 이러한 다양한 알고리즘이 요구하는 연산량 및 파라미터의 개수를 보이고 있다. 그림에서 볼 수 있는 바와 같이 같은 데이터 셋인 ImageNet을 이용한 영상 분류의 응용을 처리하는 딥러링 알고리즘의 경우에도, 지속적으로 진화하는 다양한 알고리즘이 발표되고, 이렇게 발표된 알고리즘이 필요로 하는 요구 성능이나 연산에 사용되는 파라미터의 개수가 매우 다름을 알 수 있다. 이에 따라 영상 분류라는 단일한 일을 수행하는 것으로 보이는 알고리즘을 수행하는 프로세싱 엔진의 경우에도, 상당히 다양한 알고리즘을 처리할 수 있는 능력이 있어야 한다. 그러나 또 다른 측면에서는 이러한 분류를 수행하는 다양한 딥러닝 알고리즘이 공통적으로 행렬 곱셈 등을 주요 연산으로 사용하고 있으므로 서로 다른 알고리즘이나 이전 알고리즘에서 일정한 개선을 이룬 알고리즘의 경우에는 기존의 연산에서 약간의 변경된 형태의 연산을 처리할 수 있는 능력을 가지는 정도의 낮은 수준의 유연성을 가지면 될 것이다.

[그림 3] 영상처리 알고리즘의 시간에 따른 정확도 변화와 연산 요구량 및 파라미터 수[9,10]

[그림 3] 영상처리 알고리즘의 시간에 따른 정확도 변화와 연산 요구량 및 파라미터 수[9,10]

  이에 따라, 획기적인 새로운 연산을 수행하는 알고리즘이 새로 개발되지 않는 정도의 발전이 이루어진다면, 딥러닝을 위한 프로세싱 엔진은 Google에서 개발한 TPU나 nVIDIA, ARM 등에서 개발한 딥 러닝 가속기 (DLA)나 기계 학습 프로세서 (Machine Learning Processor)등의 전용 하드웨어나, 일부 알고리즘의 변경을 반영하여 수정할 수 있는 FPGA 기반의 프로세싱 엔진이 사용될 것으로 보인다. 이는 이들 전용 프로세서와 FPGA가 제공하는 성능 효율성 측면의 장점이 매우 크기 때문이다. 반면에 새로운 딥러닝 알고리즘의 개발이나, 새롭게 등장할 응용에 최적화된 다른 종류의 연산을 주로 사용하는 크게 변화된 형태의 딥러닝 알고리즘이 개발된다면, 이러한 알고리즘의 처리를 위해서는 유연성과 프로그래밍 가능성을 갖는 CPU나 GPU 등이 보다 우선적으로 활용될 것으로 판단된다.

  그럼 이 글에서 살펴보고자 한 AI 응용 등 4차 산업혁명 시대의 미래 응용을 효율적으로 처리하는 컴퓨터 시스템을 위한 프로세싱 엔진이 어떤 것이 될 것인가를 생각해보자, 우선 딥러닝 등 특정 응용 분야에 필요한 새로운 알고리즘이 활발히 개발되어, 다양한 처리 방법과 주요 연산을 갖는 알고리즘들이 빠른 시간 안에 개발되는 초기 연구 및 적용 단계에는 CPU, GPU 등 유연성과 프로그래밍 가능성을 효과적으로 제공하는 프로세싱 엔진이 주로 사용되고, 알고리즘의 개발이 어느 정도 진행되어, 해당 알고리즘에 요구되는 주요 연산 등이 정해지고, 이후에 이러한 주요 연산에 대한 변경이 크게 일어나지 않는 성숙기에 진입하는 시기가 되면, 연산 효율이 우수한 FPGA나 전용 하드웨어가 프로세싱 엔진이 주로 사용될 것으로 예상된다. 그런데 이러한 범용 프로세싱 엔진에서 전용 하드웨어로의 변화는 기술의 성숙도의 변화만이 아니라 해당 알고리즘을 활용하는 분야의 시장 규모 등이 매우 중요한 역할을 한다는 점 또한 염두에 두어야 할 것이다. 즉 영상 인식 응용의 경우 자율 주행 등 관련 분야의 시장 규모가 일정 정도 이상 커지게 되면, 이러한 시장에 대응하기 위하여 전용 하드웨어 등을 개발하여 사용될 가능성이 더 커질 것이다. 이는 특정 응용을 위한 전용 하드웨어를 개발, 제작하는 비용이 작게는 수백억 원에서 많게는 수조 원에 이르는 대규모의 개발 비용이 요구되기 때문이다. 이와 함께 시장 규모가 상대적으로 작은 경우에는 CPU, GPU를 적절히 활용하면서 필요에 따라 FPGA나 작은 규모의 하드웨어 가속기를 함께 혼합하여 활용하는 방법 역시 유용하게 사용될 것으로 예상된다.



참고문헌
  • [1]kaze Sato, Cliff Young, David Patterson, “An in-depth look at Google’s first Tensor Processing Unit (TPU), https://cloud.google.com/blog/products/gcp/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu ,May 2017
  • [2]Akhilesh Kumar, Sailesh Kottapalli, and et. al, .”Future Intel® Xeon® Scalable Processor (Codename: Cascade Lake-SP),” HotChps 2018, August, 2018
  • [3]Ian Bratt, “Arm’s First-Generation Machine Learning Processor,” HotChps 2018, August, 2018
  • [4]Michael Ditty, Ashish Karandikar, David Reed, “NVIDIA’S XAVIER SOC,” HotChps 2018, August, 2018
  • [5]Bill Dally, “Efficient Methods and Hardware for Machine Learning,” ISCA TIML Workshop, June, 2017
  • [6]Jeff Dean, David Patterson, and Cliff Young, “A New Golden Age in Computer Architecture: Empowering the Machine-Learning Revolution,” IEEE MICRO, March/April 2018 pp. 21-29
  • [7]Norman P. Jouppi, Cliff Young, Nishant Patil and David Patterson, “A Domain-Specific Architecture for Deep Neural Networks,” Communications of the ACM, Sep. 2018, (Vol. 61, No. 9), pp. 50 – 59.
  • [8]Song Yao, Shuang Liang, Junbin Wang, Zhongmin Chen, Shaoxia Fang, Lingzhi Sui, Qian Yu, Dongliang Xie, Xiaoming Sun, Song Han, Yi shan, and Yu Wang, “The Evolution of Accelerators upon Deep Learning Algorithms,” HotChps 2018, August, 2018
  • [9]Canziani, Alfredo, Adam Paszke, and Eugenio Culurciello. "An analysis of deep neural network models for practical applications." arXiv preprint arXiv:1605.07678 (2016).
  • [10]Guo, Yanming, Yu Liu, Ard Oerlemans, Songyang Lao, Song Wu, and Michael S. Lew. "Deep learning for visual understanding: A review." Neurocomputing, vol. 187, 2016, pp. 27-48
  • 박 기 호
    박 기 호 교수
    • 소속  세종대학교 컴퓨터공학과
    • 주 연구분야
      컴퓨터 구조, AI/ML 가속기 설계, 엣지 컴퓨팅, 저전력/모바일
      시스템 설계, 사물 인터넷
    • E-mail  ghpark@sejong.edu
    • Homepage  http://sdl.sejong.ac.kr/
상단으로