엑사스케일 슈퍼컴퓨터로 배우는 SW생태계의 중요성

날짜2022.07.25
조회수9708
글자크기
    • 2022년 5월 30일 독일에서 개최된 국제 슈퍼컴퓨팅 컨퍼런스(International Supercomputing Conference, ISC)에서는 최초의 엑사스케일 슈퍼컴퓨터인 미국의 프론티어(Frontier)가 공개됐다. 엑사스케일(Exascale)이란 1초에 100경 번 연산을 처리할 수 있는 단일 시스템을 의미한다. 만약 전 세계 77억 인구가 1초에 한 번의 연산을 수행한다고 가정할 때, 100경 번 연산을 하기 위해서는 약 6년이 소요된다.1) 이러한 계산을 단 1초에 수행할 수 있는 엑사스케일 슈퍼컴퓨터는 페타(peta-, 1015)에서 엑사(exa-, 1018)로 계산의 스케일이 변경되는 이정표다.
    • 그림1_엑사스케일 슈퍼컴퓨터 프론티어 / 엑사크케일 슈퍼컴퓨터 프론티어 이미지 / 자료 : https://www.flickr.com/photos/olcf/52117839159/in/photostream/
    • 2~3년이 지나면 구식이 되어버리는 컴퓨터의 발전 속도로 미루어보면, 더 많은 계산을 할 수 있는 컴퓨터의 등장은 시간 문제처럼 보인다. 실제로 슈퍼컴퓨터의 성능 단위가 변화(테라에서 페타, 페타에서 엑사로의 변화로 1,000배의 차이)하는 데 걸리는 시간은 약 11년 정도였다. 그러나 그 저변에는 컴퓨터의 성능향상을 위한 각고의 노력과 더불어 급격한 환경의 변화가 있었다.
    • 컴퓨터의 성능향상은 2010년까지 무어의 법칙에 따라 시간이 지날수록 곱절로 발전했다. 무어의 법칙은 컴퓨터의 물리적인 계산성능을 좌우하는 연산처리장치가 매 18개월마다 그 성능이 2배로 향상된다는 것을 의미하지만, 2010년 이후에는 생산 공정의 한계로 성능 향상에 소요되는 시간이 길어지는 상황에 직면했다. 여기서 등장한 것이 연산처리장치를 보조하는 계산 전용 가속기(accelerator)다.
    • 대표적인 가속기에는 그래픽 연산처리장치(Graphical Processing Unit, GPU)가 있다. GPU는 각종 그래픽 작업, 3D 모델링 등에 활용하기 위해 반복적이고 규모가 큰 계산에 최적화된 하드웨어이다. GPU는 수천 개의 계산 가능한 코어를 갖는 시스템으로 병렬처리를 통한 막대한 계산량에 강점을 가지고 있어 슈퍼컴퓨터의 영역에서도 큰 주목을 받았다. GPU는 2010년부터 본격적으로 슈퍼컴퓨터에 탑재되어 지속적인 성장세를 이어갔다. 특히 GPU를 생산하는 주요 기업인 NVIDIA에서는 GPU 프로그래밍 도구인 CUDA(Compute Unified Device Architecture)를 개발 및 보급하고, AMD와 Intel은 오픈소스 프레임워크인 OpenCL(Open Computing Language)를 지원하여 가속기 컴퓨팅 시대를 열었다.
    • 그러나 GPU는 얼마 지나지 않아 다양한 한계에 직면했다. 먼저 GPU는 계산성능 자체는 매우 우수하나, 이 성능을 십분 달성할 수 있는 알고리즘의 범위가 좁았다. 또한 그간의 슈퍼컴퓨터를 지탱해왔던 중앙연산처리장치(CPU)기반의 생태계를 대체할 수 있을 정도로 GPU의 SW생태계(핵심 라이브러리, 컴파일러 등)가 견실하지 않았다.
    • GPU의 가능성이 정체되어있는 가운데 Intel은 2013년부터 본격적으로 자사의 SW생태계를 활용한 계산 전용 가속기인 Xeon Phi를 출시하게 된다. Xeon Phi는 CPU에서 사용되는 고성능 라이브러리를 그대로 활용할 수 있는 하드웨어로 구성되어, 기존에 슈퍼컴퓨터를 활용하던 연구진의 수요를 성공적으로 흡수했다. 우리나라 슈퍼컴퓨터 5호기인 누리온 역시 Xeon Phi를 선택했을 정도로 Xeon Phi는 슈퍼컴퓨터에서 GPU를 대체할 수 있는 계산자원으로 각광받았다.
    • Xeon Phi가 슈퍼컴퓨터에서 지분을 넓혀가던 중 2016년 알파고 대국이 개최된다. 알파고로 인해 인공지능(이하 AI)이 급격하게 확산됨에 따라, 알파고의 근간이 된 딥러닝 기술에 대한 폭발적인 수요가 발생했다. 딥러닝은 대규모 데이터를 깊은 인공신경망 모델로 학습시켜 패턴을 인식하거나 현상을 예측하는 기술이다. 특히 딥러닝은 계산적인 측면에서 큰 의미를 갖는다. 먼저 깊은 인공신경망을 대규모 데이터로 학습한다는 행위는 컴퓨팅 파워의 절대적인 수요로 이어지고, 최적의 결과를 도출하기 위해 다양한 모델을 학습시키는 귀납적 과정을 필요로 하기 때문이다.
    • 이러한 딥러닝의 기술적 속성은 고성능 가속기의 수요로 이어졌다. 특히 가격대비 성능이 우수한 가속기인 GPU가 다시 주목을 받게 된다. GPU는 딥러닝 전용 하드웨어로 자리매김함에 따라 슈퍼컴퓨터의 가속기에도 영향을 미쳤다. 딥러닝 SW생태계를 착실하게 강화한 NVIDIA는 독점수준의 딥러닝 가속기 공급기업으로 등극하게 된다. 또한 슈퍼컴퓨터급 계산자원을 활용한 AI 연구 성과(신경망 구조 탐색, 거대 언어모델 등)가 등장함에 따라 슈퍼컴퓨터에서의 주요 응용 분야로 AI가 큰 주목을 받게 된다.
    • 이렇게 AI로 향하는 환경의 변화는 전통적인 슈퍼컴퓨터의 수요를 충족시키려 했던 Xeon Phi의 단종(2020년)으로 이어진다. Xeon Phi는 딥러닝에서 가격대비 성능으로 GPU에 비교우위를 점할 수 없었기 때문이다. 슈퍼컴퓨터 가속기의 주류는 AI의 등장으로 Xeon Phi에서 다시 GPU로 향하고 있다. 특히 현재까지 공식적으로 개발을 발표한 엑사스케일 슈퍼컴퓨터는 모두 GPU를 탑재한 시스템으로 구성되어 있다. 이 사실은 바로 AI가 엑사스케일 슈퍼컴퓨터의 방향을 제시하고 있다는 것을 의미한다.
    • 세계 최초의 엑사스케일 슈퍼컴퓨터인 미국 오크리지 국립연구소의 프론티어는 AMD의 딥러닝 전용 GPU인 Instinct를 탑재했다. 현재 NVIDIA가 거의 독점하고 있는 딥러닝 가속기 시장에 대항마로 등장하여 향후 행보가 주목된다. 또한 Intel은 Xeon Phi를 대체하기 위한 차세대 가속기인 Xe GPU를 개발하고 있으며, 이것은 미국의 또 다른 슈퍼컴퓨터인 오로라(Aurora)에 탑재될 예정이다. 이로써 딥러닝을 둘러싼 글로벌 기업의 경쟁은 더욱 치열해질 것이다. 결론적으로 엑사스케일 슈퍼컴퓨터의 등장은 AI로 인한 GPU의 재조명이 매우 크다고 볼 수 있다. 최근 AI 분야의 주된 연구성과인 거대 언어 모델의 경우 모델의 크기와 성능이 비례관계가 있음이 관측됨에 따라, 슈퍼컴퓨터급 계산자원의 수요는 더욱 늘어날 전망이다.
    • 엑사스케일 슈퍼컴퓨터가 우리에게 주는 교훈은 바로 SW생태계의 중요성이다. 2010년대 초반 NVIDIA와 Intel의 가속기 경쟁은 Intel의 승리였다. Intel은 그간 최적화해 온 수치 라이브러리를 바탕으로 사용자의 편의성과 성능의 두 마리 토끼를 잡았다. NVIDIA는 소수의 분야에서 Intel Xeon Phi를 상회하는 성능을 보여줬으나, 범용성이 상대적으로 낮았던 점이 패착이라고 볼 수 있다. 그러나 딥러닝의 등장으로 Intel은 급격하게 내리막을 겪게 된다. GPU와 비교해 우위를 점할 수 없을 뿐만 아니라, NVIDIA가 절치부심하여 구축해 온 딥러닝 SW생태계가 견실했기 때문이다.
    • 현재 우리가 흔하게 접할 수 있는 딥러닝 공개SW인 텐서플로우나 파이토치를 보면 자동으로 NVIDIA GPU를 사용하기 위한 라이브러리인 cuBLAS(CUDA Basic Linear Algebraic Subroutines)2)와 cuDNN(CUDA Deep Neural Network)3)이 설치되는 것을 알 수 있다. 이 라이브러리는 GPU 병렬처리에 대한 지식이 없어도 GPU를 최대한 활용할 수 있게 하기 때문에, 과거 Intel과 마찬가지로 사용의 편의성과 성능을 모두 확보했다.
    • 엑사스케일 슈퍼컴퓨터로 다변화되는 GPU 업계도 바로 SW생태계에 주목해야 한다. 먼저 가격 경쟁력을 확보하여 보다 많은 사용자를 유입시키고, 사용자가 주는 피드백을 최대한 빠르게 처리하여 최적화하는 과정이 필수적일 것이다. 우리 나라가 중점적으로 투자하고 있는 AI 칩이나 반도체 역시 SW생태계의 힘을 간과해서는 안된다. 보다 많은 사용자를 유입시켜 지속적으로 개선해 나가 더 많은 사용자를 유입시키는 SW생태계의 선순환은 하드웨어의 우수성보다도 더 중요하다는 사실을 반드시 기억해야 한다.
    • 1) HPE (2020), Meet Frontier Infographic
    • 2) 기초 선형대수 루틴(BLAS)은 과학계산에서 “계산”의 모듈이되는 벡터-벡터, 행렬-벡터, 행렬-행렬 연산을 단계별로 나누어 구축한 라이브러리로, BLAS의 성능에 따라 알고리즘의 성능이 민감하게 변화
    • 3) cuBLAS를 활용하여 구현한 딥러닝 라이브러리로, GPU의 활용을 극대화하기 위해 최적화됨