2020.08.26

김진철의 How-to-Big Data | 빅데이터의 미래 (10)

김진철 | CIO KR
최근 인공지능 관련 기술에서 가장 많이 주목을 받는 동시에 단일 품목으로 큰 시장이 열릴 것이라 기대되는 기술이 있다. 바로 인공지능 구현에 필요한 연산을 가속해주거나, 이런 연산에 최적화된 고성능 반도체 프로세서 기술이다. 

잘 알려진 인텔의 Xeon CPU, AMD의 Opteron CPU, ARM 코어 CPU는 일반 컴퓨터 작업을 위한 범용 프로세서고, 인공지능 구현에서 많이 쓰이는 행렬, 텐서 연산, 그리고 최적화(optimization) 연산의 성능 향상에 집중하여 프로세서를 설계, 양산한 제품이 인공지능 프로세서 반도체다.

인공지능 연산에 최적화된 프로세서들은 범용 CPU와는 다르게 일반적인 작업을 실행하지는 못하고, 인공지능 학습과 추론에 필요한 계산 성능을 향상하기 위한 목적으로 많이 쓰인다. 이 때문에 보통 일반 CPU와 함께 컴퓨터에 부가적으로 탑재되어 딥러닝 같은 인공지능 구현에 관련된 계산을 수행할 때만 해당 작업을 이런 인공지능 프로세서쪽으로 옮겨(off-load) 실행한 후, 그 결과를 CPU로 전달하여 다른 작업과 같이 수행하는 식으로 연산이 처리된다. 일종의 보조 프로세서(co-processor)인 셈이다.
 
그림 1. 다양한 고성능 컴퓨팅 프로세서 기술의 발전 양상. (그림 출처: [2], IBM TrueNorth [3-4], MIT Eyeriss [5], NVidia GPGPU TESLA V100 [6], Qualcomm NPU [7], Google TPU[8-9], Intel Xeon Phi Processor [10], DWave Quantum Computing Processor [11-12])

지난 스물 한 번째 글에서 최근 딥러닝 연산을 가속하기 위한 엔비디아(Nvidia)의 GPGPU(General Purpose Graphic Processing Unit; GP-GPU)인 테슬라(TESLA), 퀄컴(Qualcomm)의 신경 프로세싱 유닛(Neural Processing Unit; NPU), 구글의 텐서 프로세싱 유닛(Tensor Processing Unit; TPU)과 같은 고성능 딥러닝 프로세서 기술과 IBM의 트루노스(TrueNorth), MIT의 아이리스(Eyeriss)와 같은 신경모방(뉴로모픽 프로세서; neuromorphic processor)들을 잠시 살펴본 바 있다. 

반도체 설계 및 제조 기술이 발전함에 따라 이렇게 인공지능과 기계 학습에 많이 쓰이는 연산을 가속할 수 있는 새로운 형태의 프로세서들도 다양하게 나타나고 있다. 인공지능 기술 개발에 반도체 설계, 제조 기술을 이용해 활용하는 이런 경향이 앞으로 더 가속되면서 새로운 하드웨어 및 고성능 프로세서 제품이 새로운 시장을 열 가능성도 앞으로 더 높아질 것으로 보인다.
 
그림 2. 최근 발표된 다양한 신경모방(뉴로모픽) 하드웨어 플랫폼 기술들. (그림 출처: [14])

인공지능용 고성능 프로세서 기술
빅데이터의 미래 기술과 관련된 인공지능의 미래를 살펴볼 이번 글에서 사이버 물리 시스템의 두뇌가 될 인공지능을 담을 그릇이 될 기술로서 인공지능용 고성능 프로세서 기술에 대해 먼저 살펴보려고 한다. 

인공지능 관련 기술 대부분이 소프트웨어나 서비스에 관련된 것들이 많고, 실제로 인공지능의 기능을 구현하는 것은 소프트웨어이기 때문에 앞으로 살펴볼 미래 인공지능 기술에 관한 많은 내용들이 소프트웨어 기술에 관한 것이 될 것이다. 

이런 인공지능 소프트웨어들이 요구사항에 맞게 실행이 되기 위해서는 인공지능 소프트웨어 연산에 맞는 고성능 프로세서와 하드웨어가 꼭 필요하고, 인공지능을 이용한 제품과 서비스 대부분에서 이런 하드웨어와 고성능 프로세서를 사용할 것이기 때문에 인공지능 관련 제품 중에서 단일 품목으로 가장 많은 수익을 낼 수 있는 제품은 이런 하드웨어와 고성능 프로세서 기술이 될 것으로 보인다.

이런 측면에서 정부에서 최근 “프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서를 인공지능 시대를 대비할 기술로 선정하고 집중적으로 기술 개발, 산업으로 성장시키고자 하는 계획은 현재 우리나라의 반도체 기술 역량과 산업 현황에 비추어보면 적절한 선택이라고 볼 수 있다. 

최근 휴대폰에 많이 쓰이는 “응용 프로세서(Application Processor; AP)” 분야에서 삼성전자가 선전하고 있지만, 전통적으로 우리나라는 현재까지 메모리 반도체(DRAM 및 Flash 메모리)분야에서 강점을 가지고 있었다.

“프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서 기술을 개발하게 되면, 비메모리 분야 반도체 설계 및 제조 역량도 쌓을 수 있으면서 인공지능 시대를 대비할 수 있는 차세대 반도체 및 하드웨어 기술의 역량도 쌓을 수 있기 때문에 우리나라 반도체 기술 역량과 산업도 성장시키면서 인공지능 시대도 대비할 수 있는 좋은 선택이다.

“프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서는 현재 인공지능, 그 중에서도 딥러닝 기반 인공지능 연산을 가속하는데 좋은 반도체 아키텍처이다. 10년뒤에 어떤 새로운 인공지능 기술이 나타나 새로운 방식의 하드웨어와 반도체 제품이 시장을 장악할 것인지는 알 수 없기 때문에, “프로세서-인-메모리(PIM)” 방식과 같은 특정 하드웨어 아키텍처가 도태되거나 새로운 하드웨어 기술로 대체될 기술 위험의 가능성을 염두에 두고 추진하면 좋겠다.

인공지능 시대를 대비한 우리나라의 차세대 먹거리 기술로 선정된 “프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서에 대해 좀더 알아보도록 하자.

이 “프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서로 최근 나온 제품은 두 가지인데, 하나는 영국의 “그래프코어(GraphCore)”에서 개발한 “그래프코어 지능형 프로세싱 유닛(Intelligence Processing Unit; IPU)”이고, 다른 하나는 미국의 “세리브라스 시스템즈(Cerebras Systems, Inc.)”에서 개발한 “웨이퍼 스케일 엔진(Wafer-scale Engine)” 프로세서다. 

두 프로세서 모두 딥러닝을 비롯한 인공지능과 기계 학습 연산의 성능을 높이기 위해 만들어진 고성능 프로세서이고, 메모리과 컴퓨팅 코어가 고성능, 저지연(low latency) 패브릭(fabric)을 통해 긴밀하게 연결되어 있는 “프로세서-인-메모리(PIM)” 방식으로 설계되어 있다. 

“그래프코어(GraphCore)”에서 개발한 “그래프코어 지능형 프로세싱 유닛(Intelligence Processing Unit; IPU)”에 대해서 먼저 살펴보도록 하자. 그래프코어의 IPU는 회사 이름에서 유추할 수 있는 것과 같이, 인공지능용 프로세서로 개발됐다기보다는 원래 그래프 컴퓨팅(graph computing)에 적합한 프로세서로 설계, 개발됐다. 
 
그림 3. 그래프코어(Graphcore)의 2세대 IPU 프로세서인 Colossus MK2 내부 구조. 최근 대한민국 정부에서 집중적으로 육성 개발하겠다고 발표한 PIM 방식의 아키텍처로 구현되어 있다. (그림 출처: https://www.graphcore.ai/products/ipu)

여기서 말하는 “그래프(graph)”는 데이터 과학에서 흔히 얘기하는 데이터 가시화 방법의 하나인 차트(chart)를 말하는 그래프(graph)가 아니라, 수학과 컴퓨터 과학에서 많이 연구되는 객체이자 데이터 구조인 점과 선이 연결되어 구성되는 그래프를 말하는 것이다.

그래프 컴퓨팅은 최근 “연결 데이터(Linked data)”를 모델링, 분석, 계산하는데 많이 활용되고 있는데, 특히 소셜 네트워크 데이터 마이닝에 응용되면서 최근 많이 유명해졌다. 소셜 네트워크는 그 특성상 다양한 개인들의 데이터가 연결된 그래프(graph) 형태로 모델링 되는데, 이를 그래프 데이터 구조로 적절하게 표현하고, 이런 그래프 상에 부여된 다양한 자질(feature)과 파라미터들을 계산해내기 위한 방법론과 프로그래밍 모델들이 최근에 많이 연구되고 있다.

그래프 컴퓨팅 문제의 상당수가 많은 계산량을 요구하는 비다항식 계산 복잡도를 가진(NP-hard) 계산 문제인 경우가 많아서, 그래프에 관련된 모델링과 계산을 하기 위해서 고성능 컴퓨팅이 필요하다. 과거의 범용 CPU에서 그래프 컴퓨팅을 대규모로 하기 위해서는 리눅스 클러스터와 같은 병렬 컴퓨터를 만들어 쓸 정도로 고성능 컴퓨팅이 필요하다.

그래프코어의 IPU는 그래프 컴퓨팅에 적합하도록 프로세서 자체를 다시 설계한 경우이다. 그런데, 여기서 그래프 컴퓨팅과 인공지능이 무슨 관계인지 궁금한 독자들이 있을 것 같다. 그래프 모델은 최근 딥러닝 뿐만 아니라, 베이지안 모델(Bayesian model), 심층 신뢰 네트워크 모델(Deep Belief Network), 그래프 신경망(Graph Neural Network)등의 인공지능 모델에도 많이 활용되고 있다. 

뿐만 아니라, 딥러닝 모델을 원래 일컫는 말인 신경망 모델의 대표적인 응용 분야중의 하나가, 소위 세일즈맨의 문제(Traveling Salesman’s Problem; TSP)”로 알려진 경로 최적화(path optimization)와 같은 그래프 컴퓨팅 문제이고, 그래프로 모델링 될 수 있는 문제의 해법을 구하기 위한 방법으로도 신경망과 같은 인공지능 모델이 많이 사용된다.

또한 최근 텐서플로우(TensorFlow)와 같은 딥러닝 모델을 위한 소프트웨어 프레임워크들은 딥러닝 모델을 확장성 있게 계산할 수 있는 방법으로 비순환 방향성 그래프(Directed Acyclic Graph; 이하 DAG)와 같은 그래프 모델을 사용한다. DAG 형태로 구성된 컴퓨팅 모델이 최적의 성능과 자원을 이용해 연산을 수행할 수 있도록 자원과 컴퓨팅 요소들을 스케줄링하는 문제도 결국 그래프 컴퓨팅 문제가 된다. 

이 때문에 인공지능을 위한 계산을 위해서 그래프 컴퓨팅은 필수적으로 다루어야 하는 문제가 되었고, 그래프코어의 IPU 기술을 인공지능을 위한 기술로 볼 수 있는 것이다. 이런 측면에서, 그래프코어사의 IPU 기술은 인공지능 기술이라기 보다는 인공지능 기술이 더 잘 쓰일 수 있도록 하는 도구 기술이라고 볼 수 있다.

그래프코어 IPU 기술의 면면을 인공지능 기술과 연관 지어 같이 살펴보도록 하자. 그림 3은 그래프코어사의 2세대 IPU 프로세서인 콜로수스 마크2(Colossus MK2) IPU의 내부 구조를 그림으로 표현한 것이다. 빨간 색의 사각형과 주황색 사각형 하나가 묶여 있는 모듈이 “IPU 타일(tile)”이라 불리는 구조이다. 이 IPU 타일내에는 1개의 IPU프로세서 코어(Core)와, 이 IPU 코어(Core) 프로세서와 직접 연결된 메모리인 “프로세서내 메모리(In-Processor Memory)”가 배치되어 있다. 

콜로수스 마크2 IPU 프로세서내에는 1472개의 IPU 타일이 집적되어 있어, 한 번에 독립적인 프로그램 스레드를 병렬로 실행시킬 수 있다. 하나의 IPU 타일내에 있는 “프로세서내 메모리(In-Processor Memory)”의 용량은 900MB이며, IPU 하나당 초당 47.5테라바이트(47.5 TB/s)의 메모리 대역폭을 가지고 있어 “프로세서내 메모리(In-Processor Memory)”안에서 대용량 데이터 처리가 가능하다. 
 
그림 4. 그래프코어(Graphcore)의 IPU와 이를 장착한 최초의 서버 제품인 델(Dell)의 DSS8440 서버 내부 구조. (그림 출처: https://www.graphcore.ai/products/ipu)

그림 5는 그래프코어 IPU를 장착한 최초의 전용 서버 제품인 델(Dell)의 DSS 8440 서버 내부에서 IPU와 CPU사이에서, 그리고 IPU 프로세서 사이에서 어떻게 서로 통신을 하는지 보여주는 그림이다.  그림 4의 DSS 8440 서버 내부를 보면 알 수 있지만, IPU 프로세서는 보조 프로세서의 역할을 하여 IPU 프로세서가 장착된 보드가 PCIe 버스 슬롯에 꽂혀 동작하게 된다. 두 개의 IPU 프로세서가 장착된 하나의 IPU 카드는 통 200TFLOPS에 달하는 연산을 수행할 수 있다.

하나의 IPU 보드에는 두 개의 IPU 프로세서가 장착되며, IPU 프로세서간 통신을 위해 80개의 IPU 링크 버스가 연결되어 있다. 각 링크의 대역폭은 32Gbps로, 80개의 IPU 링크 버스를 통해서 IPU 프로세서 사이에서 전송될 수 있는 데이터는 2.5Tbps, 또는 450GB/s이다. 

이 버스 대역폭 중에서 192GB/s의 대역폭은 같은 IPU 카드상에 위치한 IPU 프로세서 사이의 통신을 위한 것이고, 256GB/s의 나머지 대역폭은 다른 카드에 위치한 IPU 프로세서들과의 통신을 위한 것이다. 다른 카드에 위치한 IPU 프로세서들과 통신을 위한 대역폭을 더 크고 넉넉하게 할당함으로써, 많은 수의 IPU 프로세서를 이용한 계산 확장성을 쉽게 얻을 수 있도록 설계되어 많은 계산이 필요한 인공지능 기술 개발에 적합하다.

DSS 8440 1대에 최고 8개까지 IPU 카드를 꽂을 수 있어 총 1.6PetaFLOPS의 연산 성능을 제공할 수 있다. CPU와 데이터를 주고받는 버스는 PCIe 3세대(PCIe Gen3)를 채택하고 있고, PCIe 버스내에 총 네 개의 스위치를 가지고 데이터 스트림 경로를 제어한다. 

일반적인 서버에서 PCIe 버스가 보통 하나나 두 개의 스위치를 가지는 것을 생각해보면 네 개의 스위치를 가지고 데이터 흐름을 제어하는 DSS 8440 서버 샤시는 IPU간 데이터 교환에서 대역폭을 더 높이고 지연을 효과적으로 줄일 수 있도록 한다. CPU-IPU간 데이터 통신을 위해 이런 PCIe Gen3 버스 아키텍처를 가진 DSS 8440 서버는 IPU 뿐만 아니라, GPU를 많이 사용하고 GPU 확장성이 필요한 딥러닝과 기계 학습 작업에도 적합하다.

그림 5의 하단에는 IPU 사이의 데이터 통신을 위한 패브릭의 구조가 좀더 자세하게 그려져 있다. 그래프코어(Graphcore)에서 IPU 전용 데이터 통신을 위해 만든 IPU 게이트웨이 칩(IPU Gateway System-on-Chip(SoC))은 다양한 버스와의 연결을 지원하여 그래프 컴퓨팅의 성능을 높일 수 있도록 한다. 

먼저, 빨간색으로 표현되어 있는 것과 같이, 앞서 설명한 192GB/s의 동일 Colossus Mk II 보드내 IPU간 통신을 위한 버스, 서로 다른 콜로수스 마크 II(Collossus MK II) 보드 사이의 통신을 위한 256GB/s 버스와의 연결 및 데이터 스트림 경로 제어가 가능하다.

이에 더해 M.2 NVMe SSD 스토리지에 저장되어 있는 데이터 입출력의 지연(latency)을 줄이면서 성능을 향상할 수 있는 데이터 통신 경로가 별도로 지원되며, 같은 방식으로 주 메모리와의 통신도 제공한다(보라색). 노드간 확장성을 위해 네트워크 인터페이스 카드와의 빠른 데이터 통신을 위한 대용량 데이터 패브릭 또한 지원된다.

대형(large-scale) 그래프 컴퓨팅에 필요한 확장성을 제공하기 위해 이렇게 도입된 IPU간 통신, 콜로수스 마크 II(Colossus MK II) 보드간 통신, 데이터가 저장되어 있는 DRAM 및 M.2 NVMe SSD와의 통신, 그리고 서버 노드간 통신을 위한 네트워크 인터페이스 카드와 다른 IPU 보드에 있는 IPU 게이트웨이 칩(IPU Gateway SoC)과의 통신을 모두 하나의 IPU 게이트웨어 칩에서 제어할 수 있다. 이렇게 IPU와 함께 같이 제공되는 IPU 게이트웨이 칩은 현재 서버 아키텍처에서는 어려웠던 확장성을 제공할 수 있게 하여 근본적으로 다른 수준의 그래프 컴퓨팅을 가능하게 한다.

이렇게 인공지능을 위해 필요한 연산에 적합한 확장성과 성능을 제공할 수 있도록 하드웨어 아키텍처 수준에서 근본적인 변화를 일으킨 그래프코어(Graphcore)사의 콜로수스 MK II(Colossuss MK II) 보드와 IPU 프로세서, IPU 게이트웨이 칩은 인공지능과 기계 학습 연산의 성능을 하드웨어 수준에서 끌어올릴 수 있어 인공지능 및 기계 학습의 응용 분야를 크게 넓힐 것으로 기대된다. 

하지만 기존의 하드웨어 아키텍처와는 근본적으로 다른 IPU 시스템의 아키텍처를 잘 활용할 수 있는 소프트웨어를 인공지능 소프트웨어 엔지니어들이 저수준부터 직접 모두 만들어야 한다면 이런 하드웨어 아키텍처 변화의 장점을 온전히 살린 서비스나 상품을 개발하는 것은 정말 힘들 것이다. 다행히, 그래프코어(Graphcore)에서 이런 IPU 아키텍처를 활용한 그래프 연산을 추상화한 라이브러리와 IPU를 장착한 서버 관리를 편리하게 지원하는 소프트웨어 스택을 제공하고 있다.
 
그림 5. IPU 장착이 가능한 델(Dell)의 DSS 8440 서버의 데이터 통신 패브릭 토폴로지와 아키텍처. 하나의 IPU 보드에 장착된 두 개의 IPU간 데이터 통신에 192GB/s, IPU 사이의 데이터 통신에 256GB/s의 대역폭으로 대용량 데이터 통신이 가능하다. 네 개의 스위치를 가진 PCIe Gen4 스위치를 통해서 대용량 데이터를 저지연(low latency)으로 CPU와 주고 받을 수 있다. (그림 출처: [20])

그림 6은 그래프코어(Graphcore)에서 IPU가 장착된 서버를 일반 인공지능 연구자들이나 소프트웨어 엔지니어들이 활용할 수 있도록 제공하는 소프트웨어 스택을 보여준다. 

먼저, 리눅스 기반의 운영체제에서 IPU 디바이스를 추상화해서 소프트웨어와 통합이 쉽도록 한 디바이스 드라이버와 “사용자 공간 응용 프로그램 인터페이스(User Spaces Application Programming Interface(API))”, “IPU 하드웨어 추상화 층(IPU Hardware Abstraction Layer(HAL))”이 제공되고, 이 소프트웨어 스택 위에서 IPU 디바이스에 추상화된 API로 쉽게 접근이 가능하도록 한 “그래프코어 디바이스 접근 소프트웨어 층(Graphcore Device Access)”이 제공된다. 여기까지는 하드웨어 제조사들이 통상적으로 제공하는 기본적인 수준의 시스템 소프트웨어 들이다.
 
그림 6. 그래프코어 IPU가 장착된 컴퓨터에서 활용가능한 포플라(POPLAR) 소프트웨어 스택. (그림 출처:  https://www.graphcore.ai/products/포플라(POPLAR))

인공지능, 기계 학습, 그리고 그래프 컴퓨팅 응용 프로그램 개발자들에게 중요한 것은 이 시스템 소프트웨어 위에서 제공되는 그래프 컴퓨팅 소프트웨어 스택인 “포플라(POPLAR)”이다. “포플라(POPLAR)”는 그래프코어 시스템 소프트웨어 층 바로 위에서 IPU 하드웨어가 그래프 컴퓨팅을 위한 추상화 수준으로 프로그래밍 될 수 있도록 하는 소프트웨어 층이다.

포플라(POPLAR)는 포플라(POPLAR) 디바이스 인터페이스라고 불리는 추상화 층을 다시 정의하고 이를 바탕으로 “그래프 엔진(Graph Engine)”과 “그래프 컴파일러(Graph Compiler)”를 제공하여 사용자의 고수준 그래프 정의를 IPU가 이해할 수 있도록 기계 수준의 기술(description)로 바꾸어 실행될 수 있도록 한다. 

이 “그래프 엔진(Graph Engine)”과 “그래프 컴파일러(Graph Compiler)”위에 “포플라 그래프 라이브러리(POPLAR Graph Library)”가 정의되어 있어, 그래프 컴퓨팅을 활용하는 일반 소프트웨어 엔지니어와 텐서플로우(TensorFlow), 파이토치(PyTorch)와 같은 기계 학습 소프트웨어 도구를 사용하는 기계 학습, 인공지능 엔지니어들이 손쉽게 IPU 하드웨어의 성능을 활용할 수 있도록 소프트웨어 스택이 구성되어 있다.

이 포플라(POPLAR) 소프트웨어 스택과 함께, 여러 대의 IPU 서버로 구성된 IPU 클러스터의 관리를 소프트웨어 정의(software-defined) 방식으로 손쉽게 하도록 하는 “IPU-POD 관리자(IPU POD Manager)” 및 “가상 IPU(Virtual IPU)” 소프트웨어 스택도 제공된다(그림 6). 

이 “IPU-POD 관리자(IPU POD Manager)” 및 “가상 IPU(Virtual IPU)”, “가상 팟 자원 관리자(Virtual IPU, vPOD Resource Manager)”는 슬럼(Slurm)과 같은 작업 스케줄러(job scheduler)와 쿠버네티스(Kubernetes)와 같은 컨테이너 기반의 자원 관리 기술을 활용해 포플라(POPLAR)를 이용한 그래프 컴퓨팅 및 기계 학습, 인공지능 소프트웨어 작업들을 IPU에 탄력적이고 유연하게 배치하여 실행할 수 있도록 한다.

이 IPU 팟 관리자와 함께 IPU 보드의 펌웨어와 시스템 관리를 위해서 “분산 관리 태스크 포스(Distributed Management Task Force; DMTF)”에서 제정한 시스템 관리 RESTful API 표준인 “레드피쉬(Redfish)” 표준에 준하는 원격 API와 리눅스 재단에서 개발, 제공하는 시스템 펌웨어 오픈 소스 스택인 OpenBMC와의 호환성도 제공하여 IPU 자원의 원격, 중앙 관리도 가능하도록 소프트웨어 스택이 구성되어 있다.

이 그래프코어 소프트웨어 스택의 핵심은 역시 IPU 하드웨어를 다룰 수 있도록 하는 디바이스 드라이버와 이 위에 그래프 컴퓨팅이 가능하도록 추상화된 포플라(POPLAR) 그래프 컴퓨팅 라이브러리겠지만, IPU 자원 관리를 위한 가상화 소프트웨어 및 시스템 관리 소프트웨어까지 같이 제공하는 것을 우리가 눈 여겨 볼 필요가 있다. 

뿐만 아니라, 쿠버네티스(Kubernetes)와 슬럼(Slurm), 그리고 OpenBMC 및 레드피쉬(Redfish)와 같은 오픈 소스 소프트웨어 지원까지 신경 써서 제공하는 것은 이제 그래프코어와 같은 반도체 및 하드웨어 제조사도 솔루션 기업으로서 비즈니스 전략을 짜지 않으면 시장 진입이 쉽지 않은 상황을 보여준다고 생각할 수 있다.

앞서 설명한 IPU와 델(Dell)의 DSS 8440 서버 제품에서 IPU 버스 및 PCIe 패브릭(fabric) 토폴로지와 구조를 살펴보면서 확인했던 것과 같이, IPU 프로세서와 IPU 확장 보드는 연산의 확장성을 제공하기 위해 다른 하드웨어에 비해 데이터 통신을 위한 버스 토폴로지와 대역폭을 개선하는데 많은 노력을 기울였다. 

이렇게 대규모 그래프 컴퓨팅 연산에 적합한 확장성을 제공할 수 있도록 패브릭 아키텍처에 공을 들인 콜로수스 마크 II IPU하드웨어와 델(Dell)의 DSS 8440 서버는 기계 학습에서 데이터 병렬(data parallel) 작업에도 효과적이지만, 대형 인공지능 기술을 개발하기 위한 모델 병렬(model parallel) 작업에 더 효과적이다. 
 
 



2020.08.26

김진철의 How-to-Big Data | 빅데이터의 미래 (10)

김진철 | CIO KR
최근 인공지능 관련 기술에서 가장 많이 주목을 받는 동시에 단일 품목으로 큰 시장이 열릴 것이라 기대되는 기술이 있다. 바로 인공지능 구현에 필요한 연산을 가속해주거나, 이런 연산에 최적화된 고성능 반도체 프로세서 기술이다. 

잘 알려진 인텔의 Xeon CPU, AMD의 Opteron CPU, ARM 코어 CPU는 일반 컴퓨터 작업을 위한 범용 프로세서고, 인공지능 구현에서 많이 쓰이는 행렬, 텐서 연산, 그리고 최적화(optimization) 연산의 성능 향상에 집중하여 프로세서를 설계, 양산한 제품이 인공지능 프로세서 반도체다.

인공지능 연산에 최적화된 프로세서들은 범용 CPU와는 다르게 일반적인 작업을 실행하지는 못하고, 인공지능 학습과 추론에 필요한 계산 성능을 향상하기 위한 목적으로 많이 쓰인다. 이 때문에 보통 일반 CPU와 함께 컴퓨터에 부가적으로 탑재되어 딥러닝 같은 인공지능 구현에 관련된 계산을 수행할 때만 해당 작업을 이런 인공지능 프로세서쪽으로 옮겨(off-load) 실행한 후, 그 결과를 CPU로 전달하여 다른 작업과 같이 수행하는 식으로 연산이 처리된다. 일종의 보조 프로세서(co-processor)인 셈이다.
 
그림 1. 다양한 고성능 컴퓨팅 프로세서 기술의 발전 양상. (그림 출처: [2], IBM TrueNorth [3-4], MIT Eyeriss [5], NVidia GPGPU TESLA V100 [6], Qualcomm NPU [7], Google TPU[8-9], Intel Xeon Phi Processor [10], DWave Quantum Computing Processor [11-12])

지난 스물 한 번째 글에서 최근 딥러닝 연산을 가속하기 위한 엔비디아(Nvidia)의 GPGPU(General Purpose Graphic Processing Unit; GP-GPU)인 테슬라(TESLA), 퀄컴(Qualcomm)의 신경 프로세싱 유닛(Neural Processing Unit; NPU), 구글의 텐서 프로세싱 유닛(Tensor Processing Unit; TPU)과 같은 고성능 딥러닝 프로세서 기술과 IBM의 트루노스(TrueNorth), MIT의 아이리스(Eyeriss)와 같은 신경모방(뉴로모픽 프로세서; neuromorphic processor)들을 잠시 살펴본 바 있다. 

반도체 설계 및 제조 기술이 발전함에 따라 이렇게 인공지능과 기계 학습에 많이 쓰이는 연산을 가속할 수 있는 새로운 형태의 프로세서들도 다양하게 나타나고 있다. 인공지능 기술 개발에 반도체 설계, 제조 기술을 이용해 활용하는 이런 경향이 앞으로 더 가속되면서 새로운 하드웨어 및 고성능 프로세서 제품이 새로운 시장을 열 가능성도 앞으로 더 높아질 것으로 보인다.
 
그림 2. 최근 발표된 다양한 신경모방(뉴로모픽) 하드웨어 플랫폼 기술들. (그림 출처: [14])

인공지능용 고성능 프로세서 기술
빅데이터의 미래 기술과 관련된 인공지능의 미래를 살펴볼 이번 글에서 사이버 물리 시스템의 두뇌가 될 인공지능을 담을 그릇이 될 기술로서 인공지능용 고성능 프로세서 기술에 대해 먼저 살펴보려고 한다. 

인공지능 관련 기술 대부분이 소프트웨어나 서비스에 관련된 것들이 많고, 실제로 인공지능의 기능을 구현하는 것은 소프트웨어이기 때문에 앞으로 살펴볼 미래 인공지능 기술에 관한 많은 내용들이 소프트웨어 기술에 관한 것이 될 것이다. 

이런 인공지능 소프트웨어들이 요구사항에 맞게 실행이 되기 위해서는 인공지능 소프트웨어 연산에 맞는 고성능 프로세서와 하드웨어가 꼭 필요하고, 인공지능을 이용한 제품과 서비스 대부분에서 이런 하드웨어와 고성능 프로세서를 사용할 것이기 때문에 인공지능 관련 제품 중에서 단일 품목으로 가장 많은 수익을 낼 수 있는 제품은 이런 하드웨어와 고성능 프로세서 기술이 될 것으로 보인다.

이런 측면에서 정부에서 최근 “프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서를 인공지능 시대를 대비할 기술로 선정하고 집중적으로 기술 개발, 산업으로 성장시키고자 하는 계획은 현재 우리나라의 반도체 기술 역량과 산업 현황에 비추어보면 적절한 선택이라고 볼 수 있다. 

최근 휴대폰에 많이 쓰이는 “응용 프로세서(Application Processor; AP)” 분야에서 삼성전자가 선전하고 있지만, 전통적으로 우리나라는 현재까지 메모리 반도체(DRAM 및 Flash 메모리)분야에서 강점을 가지고 있었다.

“프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서 기술을 개발하게 되면, 비메모리 분야 반도체 설계 및 제조 역량도 쌓을 수 있으면서 인공지능 시대를 대비할 수 있는 차세대 반도체 및 하드웨어 기술의 역량도 쌓을 수 있기 때문에 우리나라 반도체 기술 역량과 산업도 성장시키면서 인공지능 시대도 대비할 수 있는 좋은 선택이다.

“프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서는 현재 인공지능, 그 중에서도 딥러닝 기반 인공지능 연산을 가속하는데 좋은 반도체 아키텍처이다. 10년뒤에 어떤 새로운 인공지능 기술이 나타나 새로운 방식의 하드웨어와 반도체 제품이 시장을 장악할 것인지는 알 수 없기 때문에, “프로세서-인-메모리(PIM)” 방식과 같은 특정 하드웨어 아키텍처가 도태되거나 새로운 하드웨어 기술로 대체될 기술 위험의 가능성을 염두에 두고 추진하면 좋겠다.

인공지능 시대를 대비한 우리나라의 차세대 먹거리 기술로 선정된 “프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서에 대해 좀더 알아보도록 하자.

이 “프로세서-인-메모리(PIM)” 방식의 인공지능용 고성능 프로세서로 최근 나온 제품은 두 가지인데, 하나는 영국의 “그래프코어(GraphCore)”에서 개발한 “그래프코어 지능형 프로세싱 유닛(Intelligence Processing Unit; IPU)”이고, 다른 하나는 미국의 “세리브라스 시스템즈(Cerebras Systems, Inc.)”에서 개발한 “웨이퍼 스케일 엔진(Wafer-scale Engine)” 프로세서다. 

두 프로세서 모두 딥러닝을 비롯한 인공지능과 기계 학습 연산의 성능을 높이기 위해 만들어진 고성능 프로세서이고, 메모리과 컴퓨팅 코어가 고성능, 저지연(low latency) 패브릭(fabric)을 통해 긴밀하게 연결되어 있는 “프로세서-인-메모리(PIM)” 방식으로 설계되어 있다. 

“그래프코어(GraphCore)”에서 개발한 “그래프코어 지능형 프로세싱 유닛(Intelligence Processing Unit; IPU)”에 대해서 먼저 살펴보도록 하자. 그래프코어의 IPU는 회사 이름에서 유추할 수 있는 것과 같이, 인공지능용 프로세서로 개발됐다기보다는 원래 그래프 컴퓨팅(graph computing)에 적합한 프로세서로 설계, 개발됐다. 
 
그림 3. 그래프코어(Graphcore)의 2세대 IPU 프로세서인 Colossus MK2 내부 구조. 최근 대한민국 정부에서 집중적으로 육성 개발하겠다고 발표한 PIM 방식의 아키텍처로 구현되어 있다. (그림 출처: https://www.graphcore.ai/products/ipu)

여기서 말하는 “그래프(graph)”는 데이터 과학에서 흔히 얘기하는 데이터 가시화 방법의 하나인 차트(chart)를 말하는 그래프(graph)가 아니라, 수학과 컴퓨터 과학에서 많이 연구되는 객체이자 데이터 구조인 점과 선이 연결되어 구성되는 그래프를 말하는 것이다.

그래프 컴퓨팅은 최근 “연결 데이터(Linked data)”를 모델링, 분석, 계산하는데 많이 활용되고 있는데, 특히 소셜 네트워크 데이터 마이닝에 응용되면서 최근 많이 유명해졌다. 소셜 네트워크는 그 특성상 다양한 개인들의 데이터가 연결된 그래프(graph) 형태로 모델링 되는데, 이를 그래프 데이터 구조로 적절하게 표현하고, 이런 그래프 상에 부여된 다양한 자질(feature)과 파라미터들을 계산해내기 위한 방법론과 프로그래밍 모델들이 최근에 많이 연구되고 있다.

그래프 컴퓨팅 문제의 상당수가 많은 계산량을 요구하는 비다항식 계산 복잡도를 가진(NP-hard) 계산 문제인 경우가 많아서, 그래프에 관련된 모델링과 계산을 하기 위해서 고성능 컴퓨팅이 필요하다. 과거의 범용 CPU에서 그래프 컴퓨팅을 대규모로 하기 위해서는 리눅스 클러스터와 같은 병렬 컴퓨터를 만들어 쓸 정도로 고성능 컴퓨팅이 필요하다.

그래프코어의 IPU는 그래프 컴퓨팅에 적합하도록 프로세서 자체를 다시 설계한 경우이다. 그런데, 여기서 그래프 컴퓨팅과 인공지능이 무슨 관계인지 궁금한 독자들이 있을 것 같다. 그래프 모델은 최근 딥러닝 뿐만 아니라, 베이지안 모델(Bayesian model), 심층 신뢰 네트워크 모델(Deep Belief Network), 그래프 신경망(Graph Neural Network)등의 인공지능 모델에도 많이 활용되고 있다. 

뿐만 아니라, 딥러닝 모델을 원래 일컫는 말인 신경망 모델의 대표적인 응용 분야중의 하나가, 소위 세일즈맨의 문제(Traveling Salesman’s Problem; TSP)”로 알려진 경로 최적화(path optimization)와 같은 그래프 컴퓨팅 문제이고, 그래프로 모델링 될 수 있는 문제의 해법을 구하기 위한 방법으로도 신경망과 같은 인공지능 모델이 많이 사용된다.

또한 최근 텐서플로우(TensorFlow)와 같은 딥러닝 모델을 위한 소프트웨어 프레임워크들은 딥러닝 모델을 확장성 있게 계산할 수 있는 방법으로 비순환 방향성 그래프(Directed Acyclic Graph; 이하 DAG)와 같은 그래프 모델을 사용한다. DAG 형태로 구성된 컴퓨팅 모델이 최적의 성능과 자원을 이용해 연산을 수행할 수 있도록 자원과 컴퓨팅 요소들을 스케줄링하는 문제도 결국 그래프 컴퓨팅 문제가 된다. 

이 때문에 인공지능을 위한 계산을 위해서 그래프 컴퓨팅은 필수적으로 다루어야 하는 문제가 되었고, 그래프코어의 IPU 기술을 인공지능을 위한 기술로 볼 수 있는 것이다. 이런 측면에서, 그래프코어사의 IPU 기술은 인공지능 기술이라기 보다는 인공지능 기술이 더 잘 쓰일 수 있도록 하는 도구 기술이라고 볼 수 있다.

그래프코어 IPU 기술의 면면을 인공지능 기술과 연관 지어 같이 살펴보도록 하자. 그림 3은 그래프코어사의 2세대 IPU 프로세서인 콜로수스 마크2(Colossus MK2) IPU의 내부 구조를 그림으로 표현한 것이다. 빨간 색의 사각형과 주황색 사각형 하나가 묶여 있는 모듈이 “IPU 타일(tile)”이라 불리는 구조이다. 이 IPU 타일내에는 1개의 IPU프로세서 코어(Core)와, 이 IPU 코어(Core) 프로세서와 직접 연결된 메모리인 “프로세서내 메모리(In-Processor Memory)”가 배치되어 있다. 

콜로수스 마크2 IPU 프로세서내에는 1472개의 IPU 타일이 집적되어 있어, 한 번에 독립적인 프로그램 스레드를 병렬로 실행시킬 수 있다. 하나의 IPU 타일내에 있는 “프로세서내 메모리(In-Processor Memory)”의 용량은 900MB이며, IPU 하나당 초당 47.5테라바이트(47.5 TB/s)의 메모리 대역폭을 가지고 있어 “프로세서내 메모리(In-Processor Memory)”안에서 대용량 데이터 처리가 가능하다. 
 
그림 4. 그래프코어(Graphcore)의 IPU와 이를 장착한 최초의 서버 제품인 델(Dell)의 DSS8440 서버 내부 구조. (그림 출처: https://www.graphcore.ai/products/ipu)

그림 5는 그래프코어 IPU를 장착한 최초의 전용 서버 제품인 델(Dell)의 DSS 8440 서버 내부에서 IPU와 CPU사이에서, 그리고 IPU 프로세서 사이에서 어떻게 서로 통신을 하는지 보여주는 그림이다.  그림 4의 DSS 8440 서버 내부를 보면 알 수 있지만, IPU 프로세서는 보조 프로세서의 역할을 하여 IPU 프로세서가 장착된 보드가 PCIe 버스 슬롯에 꽂혀 동작하게 된다. 두 개의 IPU 프로세서가 장착된 하나의 IPU 카드는 통 200TFLOPS에 달하는 연산을 수행할 수 있다.

하나의 IPU 보드에는 두 개의 IPU 프로세서가 장착되며, IPU 프로세서간 통신을 위해 80개의 IPU 링크 버스가 연결되어 있다. 각 링크의 대역폭은 32Gbps로, 80개의 IPU 링크 버스를 통해서 IPU 프로세서 사이에서 전송될 수 있는 데이터는 2.5Tbps, 또는 450GB/s이다. 

이 버스 대역폭 중에서 192GB/s의 대역폭은 같은 IPU 카드상에 위치한 IPU 프로세서 사이의 통신을 위한 것이고, 256GB/s의 나머지 대역폭은 다른 카드에 위치한 IPU 프로세서들과의 통신을 위한 것이다. 다른 카드에 위치한 IPU 프로세서들과 통신을 위한 대역폭을 더 크고 넉넉하게 할당함으로써, 많은 수의 IPU 프로세서를 이용한 계산 확장성을 쉽게 얻을 수 있도록 설계되어 많은 계산이 필요한 인공지능 기술 개발에 적합하다.

DSS 8440 1대에 최고 8개까지 IPU 카드를 꽂을 수 있어 총 1.6PetaFLOPS의 연산 성능을 제공할 수 있다. CPU와 데이터를 주고받는 버스는 PCIe 3세대(PCIe Gen3)를 채택하고 있고, PCIe 버스내에 총 네 개의 스위치를 가지고 데이터 스트림 경로를 제어한다. 

일반적인 서버에서 PCIe 버스가 보통 하나나 두 개의 스위치를 가지는 것을 생각해보면 네 개의 스위치를 가지고 데이터 흐름을 제어하는 DSS 8440 서버 샤시는 IPU간 데이터 교환에서 대역폭을 더 높이고 지연을 효과적으로 줄일 수 있도록 한다. CPU-IPU간 데이터 통신을 위해 이런 PCIe Gen3 버스 아키텍처를 가진 DSS 8440 서버는 IPU 뿐만 아니라, GPU를 많이 사용하고 GPU 확장성이 필요한 딥러닝과 기계 학습 작업에도 적합하다.

그림 5의 하단에는 IPU 사이의 데이터 통신을 위한 패브릭의 구조가 좀더 자세하게 그려져 있다. 그래프코어(Graphcore)에서 IPU 전용 데이터 통신을 위해 만든 IPU 게이트웨이 칩(IPU Gateway System-on-Chip(SoC))은 다양한 버스와의 연결을 지원하여 그래프 컴퓨팅의 성능을 높일 수 있도록 한다. 

먼저, 빨간색으로 표현되어 있는 것과 같이, 앞서 설명한 192GB/s의 동일 Colossus Mk II 보드내 IPU간 통신을 위한 버스, 서로 다른 콜로수스 마크 II(Collossus MK II) 보드 사이의 통신을 위한 256GB/s 버스와의 연결 및 데이터 스트림 경로 제어가 가능하다.

이에 더해 M.2 NVMe SSD 스토리지에 저장되어 있는 데이터 입출력의 지연(latency)을 줄이면서 성능을 향상할 수 있는 데이터 통신 경로가 별도로 지원되며, 같은 방식으로 주 메모리와의 통신도 제공한다(보라색). 노드간 확장성을 위해 네트워크 인터페이스 카드와의 빠른 데이터 통신을 위한 대용량 데이터 패브릭 또한 지원된다.

대형(large-scale) 그래프 컴퓨팅에 필요한 확장성을 제공하기 위해 이렇게 도입된 IPU간 통신, 콜로수스 마크 II(Colossus MK II) 보드간 통신, 데이터가 저장되어 있는 DRAM 및 M.2 NVMe SSD와의 통신, 그리고 서버 노드간 통신을 위한 네트워크 인터페이스 카드와 다른 IPU 보드에 있는 IPU 게이트웨이 칩(IPU Gateway SoC)과의 통신을 모두 하나의 IPU 게이트웨어 칩에서 제어할 수 있다. 이렇게 IPU와 함께 같이 제공되는 IPU 게이트웨이 칩은 현재 서버 아키텍처에서는 어려웠던 확장성을 제공할 수 있게 하여 근본적으로 다른 수준의 그래프 컴퓨팅을 가능하게 한다.

이렇게 인공지능을 위해 필요한 연산에 적합한 확장성과 성능을 제공할 수 있도록 하드웨어 아키텍처 수준에서 근본적인 변화를 일으킨 그래프코어(Graphcore)사의 콜로수스 MK II(Colossuss MK II) 보드와 IPU 프로세서, IPU 게이트웨이 칩은 인공지능과 기계 학습 연산의 성능을 하드웨어 수준에서 끌어올릴 수 있어 인공지능 및 기계 학습의 응용 분야를 크게 넓힐 것으로 기대된다. 

하지만 기존의 하드웨어 아키텍처와는 근본적으로 다른 IPU 시스템의 아키텍처를 잘 활용할 수 있는 소프트웨어를 인공지능 소프트웨어 엔지니어들이 저수준부터 직접 모두 만들어야 한다면 이런 하드웨어 아키텍처 변화의 장점을 온전히 살린 서비스나 상품을 개발하는 것은 정말 힘들 것이다. 다행히, 그래프코어(Graphcore)에서 이런 IPU 아키텍처를 활용한 그래프 연산을 추상화한 라이브러리와 IPU를 장착한 서버 관리를 편리하게 지원하는 소프트웨어 스택을 제공하고 있다.
 
그림 5. IPU 장착이 가능한 델(Dell)의 DSS 8440 서버의 데이터 통신 패브릭 토폴로지와 아키텍처. 하나의 IPU 보드에 장착된 두 개의 IPU간 데이터 통신에 192GB/s, IPU 사이의 데이터 통신에 256GB/s의 대역폭으로 대용량 데이터 통신이 가능하다. 네 개의 스위치를 가진 PCIe Gen4 스위치를 통해서 대용량 데이터를 저지연(low latency)으로 CPU와 주고 받을 수 있다. (그림 출처: [20])

그림 6은 그래프코어(Graphcore)에서 IPU가 장착된 서버를 일반 인공지능 연구자들이나 소프트웨어 엔지니어들이 활용할 수 있도록 제공하는 소프트웨어 스택을 보여준다. 

먼저, 리눅스 기반의 운영체제에서 IPU 디바이스를 추상화해서 소프트웨어와 통합이 쉽도록 한 디바이스 드라이버와 “사용자 공간 응용 프로그램 인터페이스(User Spaces Application Programming Interface(API))”, “IPU 하드웨어 추상화 층(IPU Hardware Abstraction Layer(HAL))”이 제공되고, 이 소프트웨어 스택 위에서 IPU 디바이스에 추상화된 API로 쉽게 접근이 가능하도록 한 “그래프코어 디바이스 접근 소프트웨어 층(Graphcore Device Access)”이 제공된다. 여기까지는 하드웨어 제조사들이 통상적으로 제공하는 기본적인 수준의 시스템 소프트웨어 들이다.
 
그림 6. 그래프코어 IPU가 장착된 컴퓨터에서 활용가능한 포플라(POPLAR) 소프트웨어 스택. (그림 출처:  https://www.graphcore.ai/products/포플라(POPLAR))

인공지능, 기계 학습, 그리고 그래프 컴퓨팅 응용 프로그램 개발자들에게 중요한 것은 이 시스템 소프트웨어 위에서 제공되는 그래프 컴퓨팅 소프트웨어 스택인 “포플라(POPLAR)”이다. “포플라(POPLAR)”는 그래프코어 시스템 소프트웨어 층 바로 위에서 IPU 하드웨어가 그래프 컴퓨팅을 위한 추상화 수준으로 프로그래밍 될 수 있도록 하는 소프트웨어 층이다.

포플라(POPLAR)는 포플라(POPLAR) 디바이스 인터페이스라고 불리는 추상화 층을 다시 정의하고 이를 바탕으로 “그래프 엔진(Graph Engine)”과 “그래프 컴파일러(Graph Compiler)”를 제공하여 사용자의 고수준 그래프 정의를 IPU가 이해할 수 있도록 기계 수준의 기술(description)로 바꾸어 실행될 수 있도록 한다. 

이 “그래프 엔진(Graph Engine)”과 “그래프 컴파일러(Graph Compiler)”위에 “포플라 그래프 라이브러리(POPLAR Graph Library)”가 정의되어 있어, 그래프 컴퓨팅을 활용하는 일반 소프트웨어 엔지니어와 텐서플로우(TensorFlow), 파이토치(PyTorch)와 같은 기계 학습 소프트웨어 도구를 사용하는 기계 학습, 인공지능 엔지니어들이 손쉽게 IPU 하드웨어의 성능을 활용할 수 있도록 소프트웨어 스택이 구성되어 있다.

이 포플라(POPLAR) 소프트웨어 스택과 함께, 여러 대의 IPU 서버로 구성된 IPU 클러스터의 관리를 소프트웨어 정의(software-defined) 방식으로 손쉽게 하도록 하는 “IPU-POD 관리자(IPU POD Manager)” 및 “가상 IPU(Virtual IPU)” 소프트웨어 스택도 제공된다(그림 6). 

이 “IPU-POD 관리자(IPU POD Manager)” 및 “가상 IPU(Virtual IPU)”, “가상 팟 자원 관리자(Virtual IPU, vPOD Resource Manager)”는 슬럼(Slurm)과 같은 작업 스케줄러(job scheduler)와 쿠버네티스(Kubernetes)와 같은 컨테이너 기반의 자원 관리 기술을 활용해 포플라(POPLAR)를 이용한 그래프 컴퓨팅 및 기계 학습, 인공지능 소프트웨어 작업들을 IPU에 탄력적이고 유연하게 배치하여 실행할 수 있도록 한다.

이 IPU 팟 관리자와 함께 IPU 보드의 펌웨어와 시스템 관리를 위해서 “분산 관리 태스크 포스(Distributed Management Task Force; DMTF)”에서 제정한 시스템 관리 RESTful API 표준인 “레드피쉬(Redfish)” 표준에 준하는 원격 API와 리눅스 재단에서 개발, 제공하는 시스템 펌웨어 오픈 소스 스택인 OpenBMC와의 호환성도 제공하여 IPU 자원의 원격, 중앙 관리도 가능하도록 소프트웨어 스택이 구성되어 있다.

이 그래프코어 소프트웨어 스택의 핵심은 역시 IPU 하드웨어를 다룰 수 있도록 하는 디바이스 드라이버와 이 위에 그래프 컴퓨팅이 가능하도록 추상화된 포플라(POPLAR) 그래프 컴퓨팅 라이브러리겠지만, IPU 자원 관리를 위한 가상화 소프트웨어 및 시스템 관리 소프트웨어까지 같이 제공하는 것을 우리가 눈 여겨 볼 필요가 있다. 

뿐만 아니라, 쿠버네티스(Kubernetes)와 슬럼(Slurm), 그리고 OpenBMC 및 레드피쉬(Redfish)와 같은 오픈 소스 소프트웨어 지원까지 신경 써서 제공하는 것은 이제 그래프코어와 같은 반도체 및 하드웨어 제조사도 솔루션 기업으로서 비즈니스 전략을 짜지 않으면 시장 진입이 쉽지 않은 상황을 보여준다고 생각할 수 있다.

앞서 설명한 IPU와 델(Dell)의 DSS 8440 서버 제품에서 IPU 버스 및 PCIe 패브릭(fabric) 토폴로지와 구조를 살펴보면서 확인했던 것과 같이, IPU 프로세서와 IPU 확장 보드는 연산의 확장성을 제공하기 위해 다른 하드웨어에 비해 데이터 통신을 위한 버스 토폴로지와 대역폭을 개선하는데 많은 노력을 기울였다. 

이렇게 대규모 그래프 컴퓨팅 연산에 적합한 확장성을 제공할 수 있도록 패브릭 아키텍처에 공을 들인 콜로수스 마크 II IPU하드웨어와 델(Dell)의 DSS 8440 서버는 기계 학습에서 데이터 병렬(data parallel) 작업에도 효과적이지만, 대형 인공지능 기술을 개발하기 위한 모델 병렬(model parallel) 작업에 더 효과적이다. 
 
 

X