All topic

그래픽과의 작별: GPU가 AI와 컴퓨팅을 지배하게 된 과정

notion1635 2024. 7. 31. 14:44

 

그래픽과의 작별: GPU가 AI와 컴퓨팅을 지배하게 된 과정

30년 전에는 CPU와 기타 특수 프로세서가 사실상 모든 계산 작업을 처리했습니다. 그 시대의 그래픽 카드는 Windows와 애플리케이션에서 2D 모양을 그리는 속도를 높이는 데 도움이 되었지만 다른 용도는 없었습니다.

오늘날로 넘어가면 GPU는 업계에서 가장 지배적인 칩 중 하나가 되었습니다.

하지만 그래픽 칩의 유일한 기능이 그래픽이었던 시절은 벌써 지났습니다. 아이러니하게도 머신 러닝과 고성능 컴퓨팅은 겸손한 GPU의 처리 능력에 크게 의존합니다. 이 단일 칩이 어떻게 겸손한 픽셀 푸셔에서 부동 소수점 연산의 맹렬한 강자로 진화했는지 함께 살펴보겠습니다.

1990년대 후반으로 돌아가 봅시다. 슈퍼컴퓨터를 사용한 과학적 노력, 표준 서버에서의 데이터 처리, 워크스테이션에서의 엔지니어링 및 디자인 작업을 아우르는 고성능 컴퓨팅의 영역은 전적으로 두 가지 유형의 CPU에 의존했습니다. 1) 단일 목적을 위해 설계된 특수 프로세서, 2) AMD, IBM 또는 Intel의 기성품 칩.

ASCI Red 슈퍼컴퓨터는 1997년경 가장 강력한 슈퍼컴퓨터 중 하나였으며, 9,632개의 Intel Pentium II Overdrive CPU(아래 그림)로 구성되었습니다. 각 유닛이 333MHz로 작동하면서 이 시스템은 이론적으로 최대 3.2TFLOPS(초당 조개의 부동 소수점 연산)의 컴퓨팅 성능을 자랑했습니다.

이 글에서 TFLOPS를 자주 언급할 것이므로, 그것이 무엇을 의미하는지 설명하는 데 잠시 시간을 할애할 가치가 있습니다. 컴퓨터 과학에서 부동 소수점 또는 줄여서 float는 6.2815나 0.0044와 같은 정수가 아닌 값을 나타내는 데이터 값입니다. 정수라고 알려진 전체 값은 컴퓨터와 그 위에서 실행되는 모든 소프트웨어를 제어하는 ​​데 필요한 계산에 자주 사용됩니다.부동 소수점은 정밀도가 가장 중요한 상황, 특히 과학이나 공학과 관련된 모든 것에 필수적입니다. 원의 둘레를 결정하는 것과 같은 간단한 계산조차도 적어도 하나의 부동 소수점 값을 포함합니다.

CPU는 수십 년 동안 정수와 부동 소수점에 대한 논리 연산을 실행하기 위한 별도의 회로를 가지고 있었습니다. 앞서 언급한 Pentium II Overdrive의 경우 클록 사이클당 하나의 기본 부동 소수점 연산(곱셈 또는 덧셈)을 수행할 수 있었습니다. 이론적으로 이것이 ASCI Red가 9,632개 CPU x 3억 3,300만 클록 사이클 x 1개 연산/사이클 = 3,207,456만 FLOPS의 최대 부동 소수점 성능을 보인 이유입니다.

이러한 수치는 이상적인 조건(예: 캐시에 맞는 데이터에 대한 가장 간단한 지침 사용)을 기반으로 하며 실제로는 거의 달성할 수 없습니다. 그러나 시스템의 잠재적인 힘을 잘 보여줍니다.

다른 슈퍼컴퓨터도 비슷한 수의 표준 프로세서를 보유했습니다. 로렌스 리버모어 국립 연구소의 Blue Pacific 은 IBM의 PowerPC 604e 칩 5,808개를 사용했고 로스 앨러모스 국립 연구소의 Blue Mountain (위)은 MIPS Technologies R1000 6,144개를 탑재했습니다 .

테라플롭 수준의 처리에 도달하려면 수천 개의 CPU가 필요했고, 이 모든 것이 방대한 양의 RAM과 하드 드라이브 스토리지로 지원되었습니다. 이는 기계의 수학적 요구 사항 때문이었고, 지금도 그렇습니다.

학교에서 물리학, 화학 및 기타 과목의 방정식을 처음 접했을 때 모든 것은 1차원입니다. 즉, 거리, 속도, 질량, 시간 등에 단일 숫자를 사용합니다. 그러나 현상을 정확하게 모델링하고 시뮬레이션하려면 더 많은 차원이 필요하며 수학은 벡터, 행렬 및 텐서 영역으로 올라갑니다 .

수학에서는 이것들이 단일 엔터티로 취급되지만 여러 값으로 구성되어 있어 계산을 진행하는 모든 컴퓨터가 동시에 수많은 숫자를 처리해야 함을 의미합니다. 당시 CPU가 사이클당 1~2개의 부동 소수점만 처리할 수 있었기 때문에 수천 개가 필요했습니다.

SIMD가 경쟁에 참여:

1997년 인텔은 펜티엄 CPU 시리즈를 MMX 라는 기술 확장으로 업데이트했습니다. MMX 는 코어 내부의 8개 추가 레지스터를 활용한 명령어 세트입니다. 각각은 1~4개의 정수 값을 저장하도록 설계되었습니다. 이 시스템을 통해 프로세서는 여러 숫자에 걸쳐 한 명령어를 동시에 실행할 수 있었으며, 이 접근 방식은 SIMD(Single Instruction, Multiple Data)로 더 잘 알려져 있습니다.

1년 후, AMD는 3DNow! 라는 자체 버전을 출시했습니다 . 레지스터가 부동 소수점 값을 저장할 수 있었기 때문에 눈에 띄게 우수했습니다. 인텔이 Pentium III에 SSE (Streaming SIMD Extensions) 를 도입하면서 MMX에서 이 문제를 해결하기까지는 1년이 더 걸렸습니다 .

새로운 천년이 시작되면서 고성능 컴퓨터 설계자들은 벡터 수학을 효율적으로 처리할 수 있는 표준 프로세서를 사용할 수 있게 되었습니다.

수천 개로 확장되면 이러한 프로세서는 행렬과 텐서를 동등하게 잘 관리할 수 있습니다. 이러한 발전에도 불구하고 슈퍼컴퓨터 세계는 여전히 오래되거나 특수화된 칩을 선호했습니다. 이러한 새로운 확장은 이러한 작업을 위해 정확하게 설계되지 않았기 때문입니다. 이는 AMD나 Intel의 CPU보다 SIMD 작업에 더 뛰어난 또 다른 빠르게 대중화되고 있는 프로세서인 GPU에도 해당됩니다.

그래픽 프로세서의 초창기에는 CPU가 장면을 구성하는 삼각형에 대한 계산을 처리했습니다(따라서 AMD가 SIMD 구현에 사용한 3DNow!라는 이름이 있습니다). 그러나 픽셀의 채색 및 텍스처링은 GPU에서만 처리되었으며 이 작업의 많은 측면에는 벡터 수학이 포함되었습니다.

20년 이상 전의 최고의 소비자 등급 그래픽 카드, 예를 들어 3dfx Voodoo5 5500 과 Nvidia GeForce 2 Ultra는 뛰어난 SIMD 장치였습니다. 그러나 이들은 게임을 위한 3D 그래픽을 제작하기 위해 만들어졌을 뿐, 그 외의 용도는 없었습니다. 전문가용 시장의 카드조차도 렌더링에만 집중했습니다.

ATI의 2,000달러짜리 ATI FireGL 3는 두 개의 IBM 칩(GT1000 지오메트리 엔진과 RC1000 래스터라이저), 엄청난 128MB DDR-SDRAM, 그리고 30GFLOPS의 처리 능력을 자랑했습니다. 하지만 이 모든 것은 OpenGL 렌더링 API를 사용하여 3D Studio Max와 AutoCAD와 같은 프로그램에서 그래픽을 가속화하기 위한 것이었습니다.

그 시대의 GPU는 다른 용도로 사용할 수 없었습니다. 3D 객체를 변환하고 모니터 이미지로 변환하는 과정에는 상당한 양의 부동 소수점 수학이 포함되지 않았기 때문입니다. 사실, 상당 부분이 정수 수준이었고 그래픽 카드가 파이프라인 전체에서 부동 소수점 값으로 대량으로 작동하기까지는 몇 년이 걸렸습니다.

첫 번째 중 하나는 ATI의 R300 프로세서 로 , 8개의 별도 픽셀 파이프라인이 있어 모든 수학을 24비트 부동 소수점 정밀도로 처리했습니다. 안타깝게도 그래픽 이외의 용도로 그 힘을 활용할 방법이 없었습니다. 하드웨어와 관련 소프트웨어는 전적으로 이미지 중심이었습니다.

컴퓨터 엔지니어들은 GPU가 엄청난 양의 SIMD 파워를 가지고 있지만 다른 분야에 적용할 방법이 없다는 사실을 모르고 있지 않았습니다. 놀랍게도, 이 까다로운 문제를 해결하는 방법을 보여준 것은 게임 콘솔이었습니다.

통일의 새로운 시대

마이크로소프트의 Xbox 360은 2005년 11월에 출시되었으며, IBM이 PowerPC 아키텍처를 기반으로 설계하고 제조한 CPU와 ATI가 설계하고 TSMC가 제조한 GPU를 탑재했습니다.코드명 '제노스'인 이 그래픽 칩은 전통적인 정점 파이프라인과 픽셀 파이프라인을 완전히 피한 레이아웃을 적용했다는 점에서 특별했습니다.

그 자리에는 SIMD 배열의 3방향 클러스터가 있었습니다. 구체적으로, 각 클러스터는 16개의 벡터 프로세서로 구성되었으며, 각각 5개의 수학 단위를 포함했습니다. 이 레이아웃을 통해 각 배열은 사이클당 80개의 부동 소수점 데이터 값에 대해 스레드에서 두 개의 순차적인 명령을 동시에 실행할 수 있었습니다.

통합 셰이더 아키텍처 로 알려진 각 어레이는 모든 유형의 셰이더를 처리할 수 있습니다. 칩의 다른 측면을 더 복잡하게 만들었음에도 불구하고 Xenos는 오늘날에도 사용되는 디자인 패러다임을 불러일으켰습니다. 500MHz의 클록 속도로 전체 클러스터는 이론적으로 곱셈-추가 명령의 세 스레드에 대해 240GFLOPS(500 x 16 x 80 x 2)의 처리 속도를 달성할 수 있습니다.

이 수치에 규모를 어느 정도 더하기 위해, 10년 전 세계 최고의 슈퍼컴퓨터 중 일부는 이 속도에 맞설 수 없었습니다. 예를 들어, 1994년 3,680개의 Intel i860 CPU로 세계 슈퍼컴퓨터 목록에서 1위를 차지한 Sandia National Laboratories의 Aragon XP/S140은 최고 184GFLOPS를 기록했습니다. 칩 개발 속도가 이 기계를 빠르게 앞지르지만, GPU도 마찬가지였습니다.

CPU는 수년 동안 자체 SIMD 배열을 통합해 왔습니다. 예를 들어, Intel의 원래 Pentium MMX는 최대 8개의 8비트 정수를 포함하는 벡터에서 명령을 실행하기 위한 전용 장치를 가지고 있었습니다. Xbox의 Xenos가 전 세계 가정에서 사용되기 시작했을 때 이러한 장치는 크기가 적어도 두 배는 커졌지만 Xenos의 장치에 비하면 여전히 미미했습니다.

소비자용 그래픽 카드가 통합 셰이더 아키텍처를 갖춘 GPU를 탑재하기 시작했을 때, 이미 Xbox 360의 그래픽 칩보다 눈에 띄게 높은 처리 속도를 자랑했습니다.

GeForce 8800 GTX (2006) 에 사용된 Nvidia의 G80(위)은 이론적 최대 346 GLFOPS를 가지고 있었고, Radeon HD 2900 XT (2007)에 사용된 ATI의 R600은 476 GLFOPS를 자랑했습니다.

두 그래픽 칩 제조업체는 모두 이 컴퓨팅 파워를 전문가용 모델에 빠르게 활용했습니다. ATI FireGL V8650과 Nvidia Tesla C870은 가격이 엄청 비싸지만 하이엔드 과학용 컴퓨터에 적합했습니다. 그러나 최고 수준에서 전 세계 슈퍼컴퓨터는 표준 CPU에 계속 의존했습니다. 사실, GPU가 가장 강력한 시스템에 등장하기까지는 몇 년이 걸렸습니다.

슈퍼컴퓨터와 유사한 시스템은 설계, 구축 및 운영 비용이 엄청나게 많이 듭니다. 수년 동안 이들은 거대한 CPU 배열을 중심으로 구축되었기 때문에 다른 프로세서를 통합하는 것은 하룻밤 사이에 이루어진 일이 아니었습니다. 이러한 시스템은 칩 수를 늘리기 전에 철저한 계획과 초기 소규모 테스트가 필요했습니다.

둘째, 이 모든 구성 요소를 조화롭게 작동시키는 것은, 특히 소프트웨어와 관련하여, 결코 쉬운 일이 아니며, 이는 당시 GPU의 상당한 약점이었습니다. GPU는 고도로 프로그래밍 가능해졌지만, 이전에 사용할 수 있었던 소프트웨어는 다소 제한적이었습니다.

Microsoft의 HLSL(Higher Level Shader Language), Nvidia의 Cg 라이브러리 , OpenGL의 GLSL은 렌더링을 위해서만이라도 그래픽 칩의 처리 능력에 쉽게 접근할 수 있도록 해주었습니다.

2006년에 당시 AMD의 자회사 가 된 ATI와 Nvidia는 각각 CTM(Close To Metal)과 CUDA (Compute Unified Device Architecture) 라는 API를 통해 그래픽 이외의 분야에도 이러한 성능을 제공하는 소프트웨어 툴킷을 출시했습니다 .

그러나 과학 및 데이터 처리 커뮤니티에 정말 필요한 것은 포괄적인 패키지였습니다. 즉, 엄청난 양의 CPU 및 GPU 배열(종종 이기종 플랫폼이라고 함)을 여러 개의 컴퓨팅 장치로 구성된 단일 개체로 처리할 수 있는 패키지였습니다.

그들의 요구는 2009년에 충족되었습니다. 원래 Apple에서 개발한 OpenCL은 몇 년 전 OpenGL을 흡수한 Khronos Group에서 출시하여 일상적인 그래픽 외부에서 GPU를 사용하기 위한 사실상의 소프트웨어 플랫폼이 되었고, 당시 이 분야는 GPGPU로 알려졌는데, 이는 Mark Harris 가 만들어낸 용어로 GPU에서의 범용 컴퓨팅을 의미했습니다 .

기술 리뷰의 광대한 세계와 달리, 전 세계적으로 수백 명의 리뷰어가 슈퍼컴퓨터의 성능 주장을 테스트하지 않습니다. 그러나 1990년대 초 독일 만하임 대학교에서 시작한 진행 중인 프로젝트는 바로 그것을 하려고 합니다.

TOP500 으로 알려진 이 그룹은 매년 두 번씩 세계에서 가장 강력한 슈퍼컴퓨터 10대의 순위 목록을 발표합니다.GPU를 자랑하는 첫 번째 항목은 2010년에 등장했으며, 중국에서는 Nebulae와 Tianhe-1이라는 두 시스템이 있었습니다. 이들은 각각 Nvidia의 Tesla C2050 (기본적으로 아래 그림에서 볼 수 있듯이 GeForce GTX 470)과 AMD의 Radeon HD 4870 칩에 의존했으며, 전자는 이론적으로 2,984 TFLOPS의 최고 성능을 자랑했습니다.

하이엔드 GPGPU의 초기 시절, 엔비디아는 성능 때문이 아니라(AMD의 라데온 카드는 보통 더 높은 수준의 처리 성능을 제공했기 때문에) 소프트웨어 지원 때문에 컴퓨팅 거대 기업을 꾸리는 데 선호되는 공급업체였습니다. CUDA는 빠르게 개발되었고 AMD가 적절한 대안을 갖기까지 몇 년이 걸렸으며, 사용자들이 대신 OpenCL을 사용하도록 장려했습니다.

하지만 인텔의 제온 파이 프로세서가 자리를 차지하려고 하면서 엔비디아는 시장을 완전히 지배하지는 못했습니다. Larrabee라는 중단된 GPU 프로젝트 에서 나온 이 거대한 칩은 여러 개의 펜티엄 유사 코어(CPU 부분)와 대형 부동 소수점 유닛(GPU 부분)으로 구성된 독특한 CPU-GPU 하이브리드였습니다.

Nvidia Tesla C2050의 내부를 살펴보면 캐시와 중앙 컨트롤러로 구분된 스트리밍 멀티프로세서(SM)라는 14개의 블록이 있습니다. 각 블록에는 정수 값과 부동 소수점 값을 위한 모든 수학 연산을 실행하는 32개의 논리 회로 세트(Nvidia에서 CUDA 코어라고 함)가 포함되어 있습니다. 후자의 경우 코어는 단일(32비트) 정밀도에서 클록 사이클당 하나의 FMA(Fused Multiply-Add) 연산을 관리할 수 있습니다. 이중 정밀도(64비트) 연산에는 최소 2개의 클록 사이클이 필요합니다.

Xeon Phi 칩의 부동 소수점 유닛(아래 표시)은 다소 유사해 보이지만, 각 코어는 C2050의 SM보다 절반의 데이터 값을 처리합니다. 그럼에도 불구하고 Tesla의 14개에 비해 반복 코어가 32개이므로 단일 Xeon Phi 프로세서는 전체적으로 클록 사이클당 더 많은 값을 처리할 수 있습니다. 그러나 Intel의 첫 번째 칩 출시는 프로토타입에 가까웠고 잠재력을 완전히 실현할 수 없었습니다. Nvidia의 제품은 더 빨리 실행되고 전력 소모가 적었으며 궁극적으로 더 우수함이 입증되었습니다.이는 AMD, Intel, Nvidia 간의 3자 GPGPU 경쟁에서 반복되는 주제가 될 것입니다. 한 모델은 더 많은 처리 코어를 보유하고 있는 반면, 다른 모델은 더 빠른 클록 속도 또는 더 강력한 캐시 시스템을 가질 수 있습니다.

 

CPU는 모든 유형의 컴퓨팅에 필수적이었으며, 많은 슈퍼컴퓨터와 하이엔드 컴퓨팅 시스템은 여전히 ​​AMD 또는 Intel 프로세서로 구성되었습니다. 단일 CPU는 평균 GPU의 SIMD 성능과 경쟁할 수 없었지만, 수천 개로 연결하면 충분하다는 것이 입증되었습니다. 그러나 이러한 시스템은 전력 효율성이 부족했습니다.

예를 들어, Radeon HD 4870 GPU가 Tianhe-1 슈퍼컴퓨터에 사용되고 있을 때, AMD의 가장 큰 서버 CPU(12코어 Opteron 6176 SE )가 돌고 있었습니다. 약 140W의 전력 소비로 CPU는 이론적으로 220GFLOPS에 도달할 수 있었고, GPU는 단 10W만 더 추가하면 1,200GFLOPS의 최대 성능을 제공했으며, 비용도 훨씬 저렴했습니다.

몇 년 후, GPU를 활용하여 대량으로 병렬 계산을 수행하는 것은 전 세계의 슈퍼컴퓨터뿐만이 아니었습니다 . Nvidia는 과학 및 기타 애플리케이션을 위한 GPU 가상화 서비스인 GRID 플랫폼을 적극적으로 홍보했습니다 . 원래 클라우드 기반 게임을 호스팅하는 시스템으로 출시되었지만, 대규모 저렴한 GPGPU에 대한 수요가 증가하면서 이러한 전환이 불가피했습니다. 연례 기술 컨퍼런스에서 GRID는 다양한 분야의 엔지니어에게 중요한 도구로 발표되었습니다.

같은 행사에서 GPU 제조업체는 Volta라는 코드명의 미래 아키텍처를 엿볼 수 있었습니다 . 공개된 세부 정보는 거의 없었고, 일반적인 가정은 이것이 Nvidia의 모든 시장에서 제공되는 또 다른 칩이 될 것이라는 것이었습니다.

한편, AMD는 비슷한 일을 하고 있었습니다. 게임 중심의 Radeon 라인업과 FirePro 및 Radeon Sky 서버 기반 카드에서 정기적으로 업데이트되는 Graphics Core Next(GCN) 디자인을 활용했습니다. 그때쯤에는 성능 수치가 놀라웠습니다. FirePro W9100의 최대 FP32 처리량은 5.2TFLOPS(32비트 부동 소수점)였는데, 이는 20년도 채 안 된 슈퍼컴퓨터에서는 상상도 할 수 없는 수치였습니다.

GPU는 여전히 주로 3D 그래픽을 위해 설계되었지만, 렌더링 기술의 발전으로 인해 이러한 칩은 일반 컴퓨팅 워크로드를 처리하는 데 점점 더 능숙해져야 했습니다. 유일한 문제는 고정밀 부동 소수점 수학, 즉 FP64 이상에 대한 제한된 기능이었습니다.

2015년 최고의 슈퍼컴퓨터를 살펴보면 CPU 기반인 슈퍼컴퓨터에 비해 Intel의 Xeon Phi나 Nvidia의 Tesla와 같은 GPU를 사용하는 슈퍼컴퓨터의 수는 상대적으로 적습니다.

이 모든 것은 Nvidia가 2016년에 Pascal 아키텍처를 출시하면서 바뀌었습니다 . 이는 고성능 컴퓨팅 시장을 위한 GPU를 독점적으로 설계한 회사의 첫 시도였으며, 다른 GPU는 여러 부문에서 사용되었습니다. 전자는 단 하나(GP100)만 만들어졌고 5개의 제품만 생산되었지만, 이전 아키텍처는 모두 소수의 FP64 코어만 자랑했지만 이 칩은 거의 2,000개의 FP64 코어를 수용했습니다.Tesla P100은 FP32 처리에서 9TFLOPS 이상을 제공하고 FP64에서는 그 수치의 절반을 제공하므로 매우 강력했습니다. Vega 10 칩을 사용하는 AMD의 Radeon Pro W9100은 FP32에서 30% 더 빨랐 지만 FP64에서는 800% 더 느렸습니다 . 이 시점에서 Intel은 판매 부진으로 인해 Xeon Phi를 중단할 위기에 처해 있었습니다.

1년 후, 엔비디아는 마침내 볼타를 출시하면서 회사가 GPU를 HPC 및 데이터 처리 시장에 출시하는 데만 관심이 있는 것이 아니라 다른 시장도 타깃으로 하고 있다는 사실이 즉시 분명해졌습니다.

 

딥 러닝은 머신 러닝 이라는 더 광범위한 학문 분야 내의 한 분야로 , 다시 말해 인공 지능의 하위 집합입니다. 여기에는 신경망이라고 알려진 복잡한 수학적 모델을 사용하여 주어진 데이터에서 정보를 추출합니다.이에 대한 예로는 제시된 이미지가 특정 동물을 묘사할 확률을 결정하는 것입니다. 이를 위해 모델을 '훈련'해야 합니다. 이 예에서는 해당 동물의 수백만 개의 이미지와 동물을 보여주지 않는 수백만 개의 이미지를 보여줍니다. 관련된 수학은 행렬 및 텐서 계산에 근거합니다.

수십 년 동안 이러한 워크로드는 거대한 CPU 기반 슈퍼컴퓨터에만 적합했습니다. 그러나 2000년대 초에 GPU가 이러한 작업에 이상적이라는 것이 분명해졌습니다.

그럼에도 불구하고, 엔비디아는 딥 러닝 시장의 상당한 확장에 도박을 걸었고, 이 분야에서 두각을 나타내기 위해 Volta 아키텍처에 추가 기능을 추가했습니다. 텐서 코어 로 마케팅된 이들은 FP16 로직 유닛의 뱅크였으며, 대규모 어레이로 함께 작동하지만 매우 제한된 기능을 가졌습니다.

사실, 그들은 너무 제한적이어서 단 하나의 기능만 수행했습니다. 두 개의 FP16 4x4 행렬을 곱한 다음 결과에 다른 FP16 또는 FP32 4x4 행렬을 더하는 것입니다(GEMM 연산이라고 알려진 프로세스). Nvidia의 이전 GPU와 경쟁사의 GPU도 이러한 계산을 수행할 수 있었지만 Volta만큼 빠르지는 않았습니다. 이 아키텍처를 사용하여 만든 유일한 GPU인 GV100은 총 512개의 텐서 코어를 수용했으며 각각은 클록 사이클당 64개의 GEMM을 실행할 수 있었습니다.

데이터 세트의 행렬 크기와 사용된 부동 소수점 크기에 따라 Tesla V100 카드는 이론적으로 이러한 텐서 계산에서 125TFLOPS에 도달할 수 있습니다. Volta는 분명히 틈새 시장을 위해 설계되었지만 GP100이 슈퍼컴퓨터 분야에 제한적으로 진출한 반면, 새로운 Tesla 모델은 빠르게 채택되었습니다.

PC 매니아라면 엔비디아가 이후 튜링 아키텍처에서 일반 소비자용 제품에 텐서 코어를 추가하고, GPU의 코어를 사용하여 업스케일링 이미지에 신경망을 실행하고 프레임의 모든 아티팩트를 보정하는 DLSS(딥 러닝 슈퍼 샘플링) 라는 업스케일링 기술을 개발했다는 ​​사실을 알고 있을 것입니다.

짧은 기간 동안 엔비디아는 GPU 가속 딥 러닝 시장을 독점했고, 데이터 센터 부문은 매출이 급증했습니다. 2017 회계연도에는 145%, 2018 회계연도에는 133%, 2019 회계연도에는 52%의 성장률을 기록했습니다. 2019 회계연도 말까지 HPC, 딥 러닝 등의 매출은 총 29억 달러에 달했는데, 이는 매우 긍정적인 결과였습니다.

하지만 그때, 시장은 정말 폭발적으로 성장했습니다 . 2023년 4분기 회사의 총 수익은 221억 달러로, 전년 대비 무려 265% 증가했습니다. 그 성장의 대부분은 회사의 AI 이니셔티브에서 나왔고, 184억 달러의 수익을 창출했습니다.

하지만 돈이 있는 곳에는 경쟁이 불가피하며, 엔비디아가 압도적으로 최고의 GPU 공급업체이기는 하지만 다른 대형 기술 회사들도 가만히 있지는 않습니다.

2018년, 구글은 자체적으로 개발한 텐서 처리 칩에 대한 액세스를 클라우드 서비스를 통해 제공하기 시작했습니다. Amazon은 곧 자사의 전문 CPU인 AWS Graviton 으로 뒤를 따랐습니다 . 한편, AMD는 GPU 사업부를 재편하여 두 가지 뚜렷한 제품군을 형성했습니다. 하나는 주로 게임용(RDNA)이고 다른 하나는 컴퓨팅 전용(CDNA)입니다.

RDNA는 이전 버전과 눈에 띄게 달랐지만, CDNA는 GCN의 자연스러운 진화였으며, 엄청난 수준으로 확장되었습니다. 오늘날 슈퍼컴퓨터, 데이터 서버, AI 머신을 위한 GPU를 살펴보면 모든 것이 엄청납니다.

AMD의 CDNA 2 기반 MI250X 는 220개의 컴퓨트 유닛을 탑재하여 48TFLOPS의 이중 정밀도 FP64 처리량과 128GB의 고대역폭 메모리(HBM2e)를 제공하며, 두 가지 측면 모두 HPC 애플리케이션에서 많이 요구됩니다. Hopper 아키텍처 와 576개의 텐서 코어를 사용하는 Nvidia의 GH100 칩은 AI 행렬 계산에서 저정밀 INT8 숫자 형식으로 잠재적으로 4000TOPS에 도달할 수 있습니다.

인텔의 폰테 베키오 GPU도 1,000억 개의 트랜지스터를 탑재해 거대하고, AMD의 MI300은 여러 개의 CPU, 그래픽, 메모리 칩렛으로 구성되어 460억 개 더 많습니다.하지만, 그들이 모두 공유하는 한 가지는, 그들이 확실히 아닌 것, 즉 GPU가 아니라는 것입니다. Nvidia가 마케팅 도구로 이 용어를 차용하기 훨씬 전에, 이 약어는 Graphics Processing Unit(그래픽 처리 장치)의 약자였습니다. AMD의 MI250X에는 렌더 출력 장치(ROP)가 전혀 없으며, GH100조차도 GeForce GTX 1050과 비슷한 수준의 Direct3D 성능 만 가지고 있어 GPU의 'G'는 중요하지 않습니다.

그러면 대신 뭐라고 부를 수 있을까?

"GPGPU"는 이상적이지 않습니다. 일반화된 컴퓨팅에서 GPU를 사용하는 것을 지칭하는 어색한 문구이지 장치 자체는 아닙니다. "HPCU"(High Performance Computing Unit)도 그다지 낫지 않습니다. 하지만 아마도 실제로는 중요하지 않을 것입니다.

결국, "CPU"라는 용어는 엄청나게 광범위하며 다양한 프로세서와 용도를 모두 포괄합니다.

그러면 대신 뭐라고 부를 수 있을까?

"GPGPU"는 이상적이지 않습니다. 일반화된 컴퓨팅에서 GPU를 사용하는 것을 지칭하는 어색한 문구이지 장치 자체는 아닙니다. "HPCU"(High Performance Computing Unit)도 그다지 낫지 않습니다. 하지만 아마도 실제로는 중요하지 않을 것입니다.

결국, "CPU"라는 용어는 엄청나게 광범위하며 다양한 프로세서와 용도를 모두 포괄합니다.

그러나 그래픽에만 전념하는 GPU 내의 구성 요소는 비교적 적습니다. 삼각형 설정 엔진과 ROP가 가장 눈에 띄고, 최근 릴리스의 레이 트레이싱 장치도 매우 전문화되어 있습니다. 그러나 나머지는 본질적으로 강력하고 복잡한 메모리/캐시 시스템으로 지원되는 대규모 병렬 SIMD 칩입니다.기본 설계는 그들이 얻을 수 있는 최고 수준이며, 미래의 개선은 단순히 반도체 제조 기술의 발전에 달려 있습니다. 다시 말해, 더 많은 논리 장치를 수용하거나, 더 높은 클럭 속도로 실행하거나, 두 가지를 결합함으로써만 개선될 수 있습니다.

물론, 더 광범위한 시나리오에서 작동할 수 있도록 새로운 기능을 통합할 수 있습니다. 이는 GPU 역사 전반에 걸쳐 여러 번 발생했지만 통합 셰이더 아키텍처로의 전환은 특히 중요했습니다. 텐서나 레이 트레이싱 계산을 처리하기 위한 전용 하드웨어를 갖는 것이 바람직하지만, 최신 GPU의 핵심은 속도가 느리더라도 모든 것을 관리할 수 있습니다.

이것이 AMD MI250과 Nvidia GH100이 데스크톱 PC 대응 제품과 매우 유사한 이유이며, HPC와 AI에 사용하도록 의도된 미래 디자인은 이러한 추세를 따를 가능성이 높습니다. 그렇다면 칩 자체가 크게 바뀌지 않는다면 응용 프로그램은 어떨까요?

AI와 관련된 모든 것이 본질적으로 계산의 한 분야라는 점을 감안할 때, GPU는 수많은 SIMD 계산을 수행해야 할 때마다 사용될 가능성이 높습니다. 과학 및 엔지니어링 분야에서 이러한 프로세서가 이미 활용되지 않은 분야는 많지 않지만, GPU 파생 제품의 사용이 급증할 가능성이 큽니다.

현재 텐서 계산을 가속화하는 것이 유일한 기능인 소형 칩이 장착된 휴대전화를 구입할 수 있습니다. ChatGPT 와 같은 도구가 계속해서 강력해지고 인기를 얻으면서 이러한 하드웨어를 탑재한 더 많은 기기를 볼 수 있을 것입니다.

단순한 GPU는 CPU보다 더 빠르게 게임을 실행하기 위해 고안된 장치에서 벗어나, 전 세계의 워크스테이션, 서버, 슈퍼컴퓨터에 동력을 공급하는 범용 가속기로 발전했습니다.

전 세계 수백만 명의 사람들이 매일 이를 사용합니다. 컴퓨터, 휴대전화, TV, 스트리밍 기기뿐만 아니라 음성 및 이미지 인식을 통합하거나 음악 및 비디오 추천을 제공하는 서비스를 이용할 때도 마찬가지입니다.

GPU의 미래는 아직 알 수 없는 영역일 수 있지만, 한 가지 확실한 것은 그래픽 처리 장치가 앞으로도 수십 년 동안 컴퓨팅과 AI를 위한 지배적인 도구가 될 것이라는 것입니다