DSA는 어떻게 NVIDIA GPU보다 성능이 뛰어납니까?

SambaNova Systems는 미국 678대 유니콘 기업 중 하나로 2021년 50월 SoftBank가 주도한 시리즈 D 자금 조달 라운드에서 XNUMX억 XNUMX만 달러를 조달하여 XNUMX억 달러라는 엄청난 가치 평가를 달성했습니다. 회사의 이전 자금 조달 라운드에는 Google Ventures, Intel Capital, SK, Samsung Catalyst Fund 및 기타 주요 글로벌 벤처 캐피탈 회사와 같은 유명 투자자가 참여했습니다. SambaNova는 전 세계 일류 투자 기관의 광범위한 관심을 끌기 위해 어떤 파괴적인 기술을 개발했습니까?

SambaNova의 초기 마케팅 자료에 따르면, 이 회사는 AI 거대 기업인 NVIDIA에 도전하기 위해 다른 접근 방식을 취했습니다.

삼바노바

비교는 매우 놀랍습니다. 단일 SambaNova 시스템은 NVIDIA 플랫폼에서 엄청난 컴퓨팅 성능으로 구축된 1024노드 NVIDIA V100 클러스터와 동일하다고 주장됩니다. SN10 RDU를 기반으로 하는 이 8세대 제품은 단일 XNUMX카드 머신입니다.

일부에서는 NVIDIA가 DGX A100을 보유하고 있기 때문에 비교가 불공평하다고 주장할 수도 있습니다. SambaNova는 이를 인정한 것으로 보이며, 30세대 제품인 SNXNUMX은 다른 비교를 제시합니다.

DGX-A100

DGX A100은 5페타플롭스의 컴퓨팅 파워를 제공하는 반면, SambaNova의 5세대 DataScale도 100페타플롭스를 제공합니다. 메모리 측면에서 DGX A320은 30GB의 HBM을 가지고 있고, SN8은 4TB의 DDR3를 자랑합니다(저자는 이것이 오타일 수 있으며, 실제 수치는 8TB * XNUMX이어야 한다고 추측합니다).

10세대 칩은 SN10 RDU의 Die-to-Die 버전입니다. SN320 RDU의 아키텍처 사양은 16TFLOPS@BF320, 1.5M SRAM 및 4T DDR30입니다. SNXNUMX RDU는 기본적으로 아래 설명과 같이 이러한 사양을 두 배로 늘립니다.

“이 칩에는 BF640 부동 소수점 정밀도에서 320테라플롭 이상의 컴퓨팅을 갖춘 16개의 패턴 컴퓨팅 유닛이 있었고, 640MB의 온칩 SRAM과 320TB/초의 온칩 메모리 대역폭을 갖춘 150개의 패턴 메모리 유닛도 있었습니다. 또한 각 SN10 프로세서는 1.5TB의 DDR4 보조 메모리를 처리할 수 있었습니다.”

“Cardinal SN30 RDU를 사용하면 RDU의 용량이 두 배로 늘어나는데, 그 이유는 SambaNova가 처음부터 멀티다이 패키징을 활용하도록 아키텍처를 설계했기 때문입니다. 이번 경우 SambaNova는 두 개의 새로운 RDU(우리가 추측하는 것은 대규모 기초 모델을 더 잘 지원하기 위해 마이크로아키텍처 변경 사항을 적용한 두 개의 조정된 SN10)를 SN30이라는 단일 컴플렉스에 집어넣음으로써 DataScale 시스템의 용량을 늘리는 것입니다. DataScale 시스템의 각 소켓은 이제 XNUMX세대 머신에 비해 컴퓨팅 용량, 로컬 메모리 용량, 메모리 대역폭이 두 배로 늘어났습니다.”

높은 대역폭과 대용량은 상호 배타적인 선택입니다. NVIDIA는 HBM으로 높은 대역폭을 선택했고, SambaNova는 DDR4로 대용량을 선택했습니다. 성능 관점에서 SambaNova는 AI 워크로드에서 NVIDIA를 능가하는 것으로 보입니다.

Hot Chips 10의 SambaNova SN33 RDU

Cardinal SN10 RDU는 SambaNova의 30세대 칩이고, SN10은 1.5세대 칩(SNXNUMX의 Die-to-Die 버전)입니다. 우리는 대규모 온칩 SRAM, 대규모 온칩 대역폭, 엄청난 XNUMXT DRAM 용량을 포함한 중요한 기능을 확인했습니다.

SN40L은 64세대 칩(HBM이 추가됨)입니다. 처음 두 세대의 칩은 Dataflow의 공간 프로그래밍 특성에 의존하여 높은 DRAM 대역폭에 대한 수요를 줄이고 대용량 DDR 경로를 선택했습니다. 그러나 XNUMX세대 칩은 이러한 기반을 바탕으로 대역폭과 용량을 모두 결합한 XNUMXGB의 HBM을 통합합니다.

Hot Chips 10의 SambaNova SN33 RDU

이는 특히 대규모 DRAM 용량을 구성할 때 시스템을 확장하는 방법과 다른 옵션보다 DDR4를 선택한 이유라는 흥미로운 주제로 이어집니다.

소개에 따르면 SN10-8R에는 랙의 1/4을 차지하는 256개의 카드가 있습니다. 각 RDU에는 10개의 채널 메모리가 포함되어 있으며 각 채널의 용량은 8GB입니다. SN48-12R은 4개 채널, 총 2667TB로 채널당 DDR4-3200을 사용하며 Q&A에서도 DDRXNUMX-XNUMX을 언급했습니다.

SN10-8R에는 48개의 채널이 있습니다.

또한 소프트웨어 스택은 주류 AI 프레임워크와 호환됩니다. 데이터 흐름 그래프 분석기는 원래 DAG에서 RDU에 대한 예약 및 배포에 적합한 하위 그래프를 구성하여 데이터 흐름 그래프를 형성합니다.

데이터 흐름 컴파일러는 데이터 흐름 그래프를 기반으로 컴파일 및 배포하고 EDA의 P&R 도구와 유사한 연산자 템플릿 라이브러리(공간 템플릿)를 호출하여 데이터 흐름 그래프를 RDU의 하드웨어 컴퓨팅 및 저장 장치에 배포합니다.

또한 SambaNova는 사용자가 연산자를 사용자 정의하고 필요에 따라 사용자 정의 연산자를 지원하는 방법을 제공합니다. 저자는 SN10 코어 아키텍처에 수동 코딩이 필요할 수 있는 많은 SIMD 명령이 포함되어 있기 때문에 이것이 LLVM에서 제공하는 C+Intrinsic API를 기반으로 한다고 추측합니다.

삼바플로우 소프트웨어

재구성 가능한 하드웨어에서는 통신도 프로그래밍 가능하며 이는 또 다른 아키텍처인 Groq에서 강력하게 강조하는 점입니다.

전통적인 아키텍처와 비교하여 저자는 SambaNova 아키텍처에서 이러한 접근 방식의 이점은 다음과 같다고 개인적으로 이해합니다.

1. 공간 프로그래밍 패러다임은 소프트웨어로 제어할 수 있는 보다 규칙적인 통신 패턴을 가지고 있습니다. 대조적으로, 전통적인 접근 방식은 더 혼란스러운 통신 패턴을 가지고 있어 혼잡이 발생할 수 있습니다.

2. 막대한 DRAM 용량으로 더 많은 데이터를 카드에 저장할 수 있어 일부 카드 간 통신을 카드 내 DRAM 데이터 교환으로 변환하여 통신 오버헤드를 줄이고 카드 간 통신 대역폭에 대한 수요를 낮춥니다.

sambaflow는 고도로 최적화된 데이터 흐름 매핑을 생성합니다.

GPU는 특정 특정 애플리케이션에서 탁월하지만 단일 GPU에 적합하거나 효율적으로 실행될 수 없는 매우 큰 모델의 경우 성능이 저하될 수 있습니다.

골디락스 존

SambaNova의 데이터 흐름 아키텍처는 병렬 및 데이터 지역성 최적화에 활용할 수 있는 수많은 컴퓨팅 PCU(0.5 TOPS)와 스토리지 PMU(0.5M)를 갖추고 있습니다. 아래 예에서는 PMU가 PCU 간 데이터 교환을 촉진하고 이상적인 데이터 위치 제어를 제공함으로써 어떻게 여러 PCU를 연결하여 세분화된 파이프라인 병렬 처리를 구현하는지 보여줍니다.

Dataflow는 데이터 지역성과 병렬성을 활용합니다.

잠재적 문제

일반 데이터 병렬 처리: Parallel.For와 같은 작업에는 데이터 교환을 위한 공유 메모리가 필요합니다. SN10, SN30에서는 DDR로 제한되나요? SN40L에서는 HBM을 사용하여 잠재적으로 대기 시간을 향상시킬 수 있습니다.

PCU 및 PMU 세분성: PCU 및 PMU의 세분성은 매우 정밀합니다. DAG는 어떻게 이 수준으로 분해됩니까?

(A) 데이터 흐름 그래프 분석기는 작업자가 이를 통해 상호 작용하여 미세한 세부 수준으로 직접 분해됩니까?

(B) 아니면 데이터 흐름 그래프 분석기가 하드웨어 리소스를 제어하는 ​​연산자와 인터페이스에 손으로 작성되는 대략적인 연산자를 사용하여 더 낮은 세분성으로 분해됩니까?

제 생각에는 그래프 레이어는 전역 보기를 제공하여 더 많은 최적화 기회를 제공합니다. 그러나 최소한의 리소스를 사용하여 데이터 흐름 그래프 분석기에서 생성된 하위 그래프에서 연산자를 코드 생성하려면 강력한 자동 연산자 생성 도구가 필요합니다. 유연한 그래프 레이어 컴파일에는 손으로 쓰는 연산자가 어려울 수 있습니다. 실제 접근 방식에는 대부분의 접근 방식과 유사하게 이러한 기존 패턴을 기반으로 그래프 레이어의 데이터 흐름 그래프 분석기가 컴파일되는 고정 패턴에 대한 수기 연산자가 포함될 수 있다고 추측됩니다.

성능 잠재력을 완전히 활용하는 것은 중요한 과제입니다. SambaNova의 아키텍처는 프로그램이 하드웨어에 적응해야 하는 기존 아키텍처와 달리 프로그램에 맞게 하드웨어 재구성을 허용합니다. 세분화된 컴퓨팅 및 스토리지와 결합되어 더 큰 튜닝 공간을 제공합니다.

이미지에 표시된 대로 SN10 아키텍처는 프로그래밍 가능한 상호 연결, 컴퓨팅 및 메모리로 구성된 타일로 구성됩니다. 타일은 더 큰 논리적 타일을 형성하거나, 독립적으로 작동하거나, 데이터 병렬성을 활성화하거나, 다른 프로그램을 실행할 수 있습니다. 타일은 TB 수준 DDR4 메모리, 호스트 머신 메모리에 액세스하고 다중 카드 상호 연결을 지원합니다.

추기경 sn10

SambaNova 아키텍처의 타일은 스위치, PCU(Programmable Compute Unit) 및 PMU(Programmable Memory Unit)의 세 가지 프로그래밍 가능 장치로 구성됩니다. 운영자를 작성하는 엔지니어에게는 이러한 장치를 제어하는 ​​방법을 이해하는 것이 중요합니다.

SambaNova의 타일

PCU는 주로 구성 가능한 SIMD 명령어로 구성됩니다. 프로그램에서 내부 루프를 실행하는 프로그래밍 가능한 카운터입니다. 시그모이드 기능과 같은 초월적 기능을 가속화하는 테일 유닛입니다.

PCU는 주로 구성 가능한 SIMD 명령어로 구성됩니다.

PMU는 Transpose와 같은 텐서 데이터 형식 변환을 지원하는 멀티 뱅크 SRAM입니다.

PMU는 Transpose와 같은 텐서 데이터 형식 변환을 지원하는 멀티 뱅크 SRAM입니다.

스위치에는 라우터 파이프라인과 라우터 크로스바가 포함되어 있어 PCU와 PMU 간의 데이터 흐름을 제어합니다. 여기에는 외부 루프를 구현하는 카운터가 포함되어 있습니다.

스위치 및 온칩 상호 연결

다음은 다양한 계산 단계를 간략하게 설명하는 레이어 정규화 사용의 예입니다. SambaNova 하드웨어에서 스위치는 다양한 PCU와 PMU를 연결하여 파이프라인을 형성합니다. 근처 계산은 동시 파이프라인을 지원하면서(프로그램에 병렬 DAG가 있는 경우) PMU(인메모리 컴퓨팅의 한 형태)를 통해 데이터를 빠르게 교환할 수 있습니다.

이 예는 서로 다른 계산 단위가 고유한 계산 프로그램을 실행하는 공간 프로그래밍 패러다임을 따릅니다(PCU는 서로 다른 시간에 동일한 프로그램을 실행함). 계산은 일부 융합이 적용된 공간 차원에서 완전히 펼쳐집니다.

레이어놈(layernorm), 우주에서 파이프라인으로 연결됨

Space를 기반으로 최소한의 PMU, MCU 및 스위치를 사용하여 데이터를 처리하기 위해 임시 프로그래밍 접근 방식을 추가할 수 있습니다. 시간적 접근 방식은 특정 시간에 특정 데이터에 대해 특정 프로그램을 실행하는 것을 고려합니다. 직관적으로 동일한 컴퓨팅 단위가 서로 다른 시간에 서로 다른 프로그램을 실행할 수 있습니다. 이 접근 방식은 더 적은 하드웨어 리소스를 사용하므로 칩이 더 많은 프로그램을 실행할 수 있습니다. 고속 온칩 인터커넥트와 대용량 DDR4 용량이 결합되어 더 큰 규모의 프로그램을 처리할 수 있습니다. 공간적 및 시간적 프로그래밍 모드가 모두 필수적입니다.

하이브리드 공간+시간 실행

다음은 소규모 네트워크에 대한 대략적인 실행 프로세스이고, 이전 예는 Layer Normalization 연산자에 중점을 두었습니다. 다른 아키텍처(TPU, Davinci)와 달리 SambaNova 아키텍처는 기본적으로 온칩 융합을 지원합니다.

rdu 내의 공간 데이터 흐름
12TB DRAM을 제공하는 랙

랙의 1/4이 12TB의 DRAM을 제공하므로 칩의 컴퓨팅 성능을 완전히 활용할 수 있는 충분한 용량이 있습니다. SN40L은 PR 콘텐츠를 기반으로 DDR64와 PMU SRAM 사이에 배치될 가능성이 있는 4GB의 HBM을 추가합니다.

테라바이트 크기 모델

이러한 아키텍처를 지원하려면 매우 강력한 컴파일 기술이 필요하며, 데이터 흐름 그래프를 하드웨어 리소스에 매핑하는 컴파일러에 크게 의존합니다. 다음은 컴파일러 지원이 필요한 다양한 배포 시나리오입니다.

주요 시나리오를 지원하는 유연성

훈련 및 추론을 위한 다중 카드 및 다중 기계 상호 연결된 시스템

데이터 규모 시스템 확장

대용량 DRAM을 사용하면 GPU 시스템과 달리 모델 분할 없이 1조 개의 매개변수 언어 모델 학습을 지원할 수 있다는 이점이 있습니다. 비교는 다음과 같습니다. GPU에서 1T 모델을 교육하려면 복잡한 모델 병렬 처리 기술이 필요한 반면 SambaNova 시스템에서는 설치 공간이 더 작습니다. 이는 흥미로운 점을 제기합니다. Cerebras의 Dojo 웨이퍼 규모 기술은 또한 컴퓨팅 공간을 줄이는 것을 목표로 합니다. 아마도 SambaNova의 현재 작업을 기반으로 이들 코어는 Cerebras Dojo와 유사한 웨이퍼 규모 접근 방식을 사용하여 구현될 수 있습니다(SambaNova의 PCU 및 PMU도 상대적으로 세분화되어 있습니다). 반대로, 다른 아키텍처에서는 SambaNova의 대규모 DRAM 용량 접근 방식을 고려할 수 있습니다(이러한 아키텍처에도 대규모 SRAM이 있고 데이터 흐름 기반임).

대규모 언어 모델 훈련

발자국을 줄이는 것의 중요성은 Elon Musk의 진술에서 알 수 있습니다. 10K 이상의 GPU 클러스터를 활성화하는 것은 슈퍼컴퓨터에 버금가는 난이도와 작업 부하로 인해 기술적 장벽이 크게 높아지는 상당한 작업입니다. FSD 12가 자율 주행을 위한 엔드투엔드 대형 모델 접근 방식의 실행 가능성을 입증한다면 대규모 컴퓨팅 클러스터의 가용성은 이 기술을 추구하는 기업에 매우 중요해질 것입니다.

H100 가용성이 없으면 국내 주요 자동차 제조업체의 대형 모델 교육 요구 사항을 충족하는 것이 빠르게 병목 현상이 될 수 있습니다.

머스크x

SambaNova의 또 다른 장점 중 하나는 낮은 정밀도로 다운샘플링할 필요 없이 4K 또는 50K x 50K와 같은 고해상도 이미지에 대한 교육을 지원할 수 있다는 것입니다. 자율주행 영역에 적용할 경우 고화질 비디오 교육은 정확성 이점을 제공할 수 있습니다.

4k~50k 컨볼루션

GPU에서는 데이터를 GPU의 DRAM에 맞추려면 일반적으로 다운샘플링이 필요합니다(호스트 CPU에서 먼저). SambaNova의 대용량 메모리는 다운샘플링이나 분할이 필요하지 않음을 의미합니다.

고해상도 전체 이미지 병리학 활성화

고해상도 이미지에 대한 훈련을 지원한다는 것은 더 높은 훈련 정밀도가 필요함을 의미합니다.

세계 기록 정확도 고해상도 컨볼루션 훈련

마찬가지로 추천 모델의 경우 정확도 향상은 막대한 경제적 이익으로 이어집니다. SambaNova의 대용량 메모리 아키텍처는 추천 모델 정확도를 높이는 데 매우 유용합니다.

다양한 모델 규모에 따른 SambaNova의 가속 효과는 다음과 같습니다.

최첨단 정확도를 뛰어넘는

요약

RDU의 데이터 흐름 아키텍처는 SRAM에서 모델 실행을 가능하게 하여 DRAM 대역폭 수요를 줄입니다. 그러나 컴파일러가 데이터 흐름 그래프를 RDU에 배포해야 합니다.

컴파일러는 시간+공간 결합 기술을 사용하여 대규모 프로그램의 하드웨어 활용도를 최대화합니다. 높은 DRAM 용량과 결합되어 더 큰 모델과 고해상도 이미지 트레이닝을 지원합니다.

SN40L 아키텍처 변경 사항 해석

“SambaNova의 SN40L 칩은 독특합니다. 단일 칩에서 HBM(고대역폭 메모리)과 DRAM을 모두 처리하여 AI 알고리즘이 현재 작업에 가장 적합한 메모리를 선택할 수 있도록 하여 다른 방식으로 달성할 수 있는 것보다 훨씬 더 많은 양의 메모리에 직접 액세스할 수 있습니다. 또한 SambaNova의 RDU(Reconfigurable Data Unit) 아키텍처를 사용함으로써 이 칩은 더 스마트한 컴퓨팅을 사용하여 희소 모델을 효율적으로 실행하도록 설계되었습니다.”

40년 2023월 초에 출시된 새로운 SNXNUMXL 아키텍처는 더 많은 컴퓨팅 코어를 추가하고 처음으로 HBM을 도입했습니다. 이 섹션에서는 이러한 선택의 이유를 해석하려고 합니다.

추론을 위해 대규모 언어 모델 매개변수는 수십에서 수백 GB이고 KV 캐시도 수십에서 수백 GB인 반면 단일 SN40 카드의 SRAM은 단지 수백 MB에 불과합니다(SN10은 320MB).

예를 들어, 65B 매개변수 LLaMA 모델의 경우 FP16 형식으로 가중치를 저장하려면 65G*2=130GB가 필요합니다. LLaMA-65B를 다시 예로 들면, 추론 토큰 길이가 모델에서 허용하는 최대값인 2048에 도달하면 총 KV 캐시 크기는 최대 170GB가 됩니다.

이상적으로 매개변수는 컴퓨팅에 가까운 메모리에 있는 KV 캐시인 SRAM에 상주하며, 입력은 칩 내에서 직접 스트리밍되어 컴퓨팅 파이프라인을 구동합니다. 분명히, 카드당 수백 MB의 SRAM은 수천 개의 칩이 필요한 여러 개의 상호 연결된 칩이 있더라도 입력을 위한 공간을 남기면서 100GB 이상의 매개변수를 호스팅하기에는 충분하지 않습니다. 설치 공간을 줄이려면 온칩 컴퓨팅 리소스를 재사용하고 서로 다른 시간에 서로 다른 프로그램을 로드하고 서로 다른 계층에 대해 서로 다른 가중치를 사용하는 가중치 스트리밍이 필요한 시간 다중화 프로그래밍 모델이 여전히 필요합니다. 그러나 가중치와 KV 캐시가 DDR에 저장되면 대기 시간이 상당히 길어 HBM은 핫 데이터(추, KV 캐시 또는 유출되어야 하는 중간 데이터)를 호스팅하는 데 탁월한 매체가 됩니다.

DDR은 매개변수 및 입력 데이터에 사용되며, HBM은 핫 데이터(가중치, KV 캐시 또는 사용 예정인 중간 데이터)를 위한 초대형 캐시 역할을 합니다.

미세 조정 및 훈련을 위해서는 대역폭 요구 사항이 훨씬 더 높습니다. HBM을 도입하면 증가된 대역폭과 용량 이점을 얻을 수 있습니다.

코멘트 남김

위쪽으로 스크롤