DeepSeek V3 종이 세부 정보: CUDA 독점을 우회하는 방법!

최근 출시된 DeepSeek의 두 가지 모델인 DeepSeek-V3와 DeepSeek-R1은 훨씬 저렴한 비용으로 OpenAI의 유사 모델과 비슷한 성능을 달성합니다.

외신 보도에 따르면, 단 2개월 만에 2,048개의 H800 GPU 클러스터에서 6,710억 개의 파라미터로 MoE 언어 모델을 학습시켰으며, 이는 최고 AI보다 10배 더 효율적이라고 합니다.

이러한 혁신은 CUDA가 아니라 수많은 세분화된 최적화와 NVIDIA의 어셈블리와 유사한 PTX(병렬 스레드 실행) 프로그래밍을 통해 이루어졌습니다.

DeepSeek 는 하드웨어 제약 하에서 무차별 대입 연산에 의존하는 OpenAI 및 다른 회사들과는 다른 길을 택할 수밖에 없었습니다. 일련의 기술 혁신을 통해 모델의 전력 요구량을 줄이면서도 성능 향상을 달성했습니다.

네티즌들의 열광적인 댓글이 이어졌습니다:

"이 세상에 'CUDA는 너무 느려요!"라고 말할 만큼 미친 사람들이 있다면?

천재 괴짜들은 PTX를 미세 조정하여 GPU 성능을 극대화합니다.

NVIDIA PTX(병렬 스레드 실행)는 GPU를 위해 특별히 설계된 중간 명령 집합 아키텍처로, 상위 수준의 GPU 프로그래밍 언어(예: CUDA C/C++) 또는 기타 언어 프런트 엔드와 하위 수준의 머신 코드(스트리밍 어셈블리 또는 SASS) 사이에 위치합니다.

PTX는 GPU를 데이터 병렬 컴퓨팅 장치로 표현하는 저수준 명령어 세트 아키텍처로, CUDA C/C++와 같은 언어에서는 불가능한 레지스터 할당 및 스레드/스레드 번들 레벨 튜닝과 같은 세분화된 최적화를 가능하게 합니다.

PTX가 SASS로 변환되면 특정 세대의 NVIDIA GPU에 최적화됩니다.

딥시크는 V3 모델을 학습할 때 NVIDIA H800 GPU를 재구성했습니다:

132개의 스트림 프로세서 코어 중 20개는 주로 데이터 압축 및 압축 해제를 위한 서버 간 통신에 할당되어 프로세서의 연결 한계를 극복하고 트랜잭션 처리 속도를 향상시켰습니다.

또한 성능을 극대화하기 위해 DeepSeek는 추가적인 세분화된 스레드/스레드 번들 레벨 조정을 통해 고급 파이프라이닝 알고리즘을 구현했습니다.

이러한 최적화는 기존 CUDA 개발 수준을 훨씬 뛰어넘는 것이지만, 유지 관리가 매우 어렵습니다. 하지만 이러한 수준의 최적화는 바로 딥시크 팀의 뛰어난 기술력을 충분히 입증하는 것입니다.

V3 백서에는 PTX에 대한 세부 정보가 구체적으로 언급되어 있습니다.

전 세계적인 GPU 공급 부족과 미국의 규제라는 이중 압박 속에서 딥시크와 같은 기업은 혁신적인 솔루션을 찾아야 했습니다.

다행히도 이 분야에서 상당한 진전을 이루었습니다.

한 개발자는 "로우레벨 GPU 프로그래밍이 올바른 방향이라고 생각합니다. 최적화를 많이 할수록 추가 비용 없이 다른 개발에 사용할 수 있는 비용이나 성능 예산을 줄일 수 있습니다."

이러한 혁신은 시장에 큰 영향을 미쳤으며 일부 투자자들은 새로운 모델이 고성능 하드웨어에 대한 수요를 감소시켜 NVIDIA와 같은 회사의 판매 실적에 영향을 미칠 수 있다고 생각합니다.

그러나 전 인텔 CEO 팻 겔싱어를 비롯한 업계 베테랑들은 AI 애플리케이션이 가용한 모든 컴퓨팅 성능을 최대한 활용할 수 있다고 믿습니다.

겔싱어는 딥시크의 이러한 혁신이 대중 시장을 위한 저가형 디바이스에 AI 기능을 탑재할 수 있는 새로운 방법이라고 보고 있습니다.

PTX 및 CUDA

그렇다면 딥시크의 등장은 최첨단 LLM 개발에 더 이상 대규모 GPU 클러스터가 필요하지 않다는 것을 의미할까요?

Google의 컴퓨팅 리소스에 대한 막대한 투자로 이어질까요? OpenAI메타 및 xAI는 궁극적으로 낭비될까요? AI 개발자들 사이에서 일반적인 합의는 그렇지 않다는 것입니다.

그러나 데이터 처리 및 알고리즘 최적화 측면에서 아직 활용될 수 있는 잠재력이 매우 크며, 앞으로 더욱 혁신적인 최적화 방법이 등장할 것이 분명합니다.

딥시큐어의 V3 모델은 오픈 소스로 공개되어 있으며, 자세한 내용은 기술 보고서에 자세히 공개되어 있습니다.

이 보고서는 DeepSeek가 수행한 심층적인 기본 최적화를 문서화합니다. 간단히 말해, 최적화의 정도는 "전체 시스템을 처음부터 다시 구축했다"고 요약할 수 있습니다.

위에서 언급했듯이, 딥시크는 H800 GPU를 사용하여 V3를 학습할 때 특정 요구 사항을 충족하도록 GPU의 핵심 컴퓨팅 유닛(스트리밍 멀티프로세서 코어 또는 SM)을 맞춤화했습니다.

전체 132개의 SM 중 20개는 컴퓨팅 작업이 아닌 서버 간 통신 작업을 처리하도록 특별히 할당했습니다.

이 커스터마이징은 NVIDIA GPU의 저수준 명령어 집합인 PTX(병렬 스레드 실행) 수준에서 이루어집니다.

PTX는 어셈블리 언어에 가까운 수준에서 실행되며 레지스터 할당 및 스레드/스레드 번들 수준 조정과 같은 세밀한 최적화가 가능합니다. 하지만 이러한 세밀한 제어는 복잡하고 유지 관리가 어렵습니다.

그렇기 때문에 개발자는 일반적으로 대부분의 병렬 프로그래밍 작업에 충분한 성능 최적화를 제공하고 하위 수준 최적화가 필요 없는 CUDA와 같은 상위 수준 프로그래밍 언어를 선호합니다.

하지만 GPU 리소스의 효율성을 극대화하고 특정 최적화 요구 사항을 달성하려면 개발자는 PTX를 사용해야 합니다.

그러나 기술적 장벽은 여전히 남아 있습니다.

이와 관련해 인터넷 사용자 이안 커트리스(Ian Cutress)는 "딥시크가 PTX를 사용한다고 해서 CUDA의 기술적 장벽이 제거되는 것은 아니다"라고 말했습니다.

CUDA는 고급 언어입니다. NVIDIA GPU로 라이브러리 및 인터페이스를 더 쉽게 개발하고 신속한 반복 개발을 지원합니다.

CUDA는 기본 코드(예: PTX)를 미세 조정하여 성능을 최적화할 수 있으며, 기본 라이브러리는 이미 완성되어 있습니다. 현재 대부분의 프로덕션 레벨 소프트웨어는 CUDA를 기반으로 구축됩니다.

PTX는 GPU에서 직접 이해할 수 있는 어셈블리 언어와 더 유사합니다. 낮은 수준에서 작동하며 마이크로 레벨 최적화가 가능합니다.

PTX로 프로그래밍하기로 선택하면 앞서 언급한 빌트인 CUDA 라이브러리를 사용할 수 없다는 뜻입니다. 이는 하드웨어 및 런타임 문제에 대한 심층적인 전문 지식이 필요한 매우 지루한 작업입니다.

하지만 개발자가 자신이 하는 일을 완전히 이해한다면 런타임에 더 나은 성능과 최적화를 달성할 수 있습니다.

현재 NVIDIA 에코시스템의 주류는 여전히 CUDA를 사용하고 있습니다.

클라우드에 모델을 배포하고 토큰 서비스를 판매하는 회사처럼 컴퓨팅 부하에서 10-20%의 성능이나 전력 효율성을 추가로 얻고자 하는 개발자들은 실제로 CUDA 수준에서 PTX 수준으로 최적화했습니다. 이들은 장기적으로 가치가 있기 때문에 기꺼이 시간을 투자하고 있습니다.

PTX는 일반적으로 특정 하드웨어 모델에 최적화되어 있으므로 적응 로직을 특별히 작성하지 않는 한 다른 하드웨어 간에 이식하기 어렵다는 점에 유의하세요.

또한 프로그램이 5,000주기마다 메모리 액세스 오류가 발생할 수 있으므로 컴퓨팅 커널을 수동으로 조정하려면 상당한 인내심과 용기, 침착함을 유지할 수 있는 특별한 능력이 필요합니다.

물론 PTX가 정말 필요한 시나리오와 이러한 문제를 처리할 만큼 충분한 보수를 받는 개발자에게는 전폭적인 이해와 존중을 표합니다.

다른 모든 개발자의 경우 CUDA 또는 CUDA(또는 MLIR) 기반의 다른 고급 변형을 계속 사용하는 것이 좋습니다.

유사한 게시물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다