돌아가기 AI는 오픈 소스입니다.
HPC-Ops 오픈 소스 해석: 텐센트의 훈위안 생산급 LLM 추론 연산자 라이브러리가 H20과 같은 추론 카드의 성능을 어떻게 압도하는가

HPC-Ops 오픈 소스 해석: 텐센트의 훈위안 생산급 LLM 추론 연산자 라이브러리가 H20과 같은 추론 카드의 성능을 어떻게 압도하는가

AI는 오픈 소스입니다. Admin 124 회 조회

1. 초록

HPC-Ops는 텐센트의 Hunyuan AI 인프라 팀이 개발한 오픈소스 생산용 LLM 추론 연산자 라이브러리로, 주류 추론 카드(특히 H20과 같은 NVIDIA Hopper/SM90)를 하드웨어 활용도를 한층 더 가깝게 만드는 것을 목표로 하고 있습니다. 이 프로젝트는 SOTA 커널을 0-Use CUDA + CuTe/CUTLASS에서 다듬는 데 중점을 두었으며, vLLM과 SGLang과 같은 추론 프레임워크에 쉽게 통합할 수 있는 비교적 깔끔한 API를 제공하며, BF16/FP8과 같은 다정밀도 추론 시나리오에도 적합합니다.

2. 핵심 특징

1. 최종 생산 성능: 추론 중요 경로의 심층 최적화를 위해 Attention/GroupGEMM / FusedMoE의 공식 최대 관측 가속 비율(최대 2.22배)이 제시됩니다.

2. 주요 연산자 커버리지: 주의(Prefill/Decode, 페이지 주의 포함), 그룹화된 GEMM, 융합 MoE 및 기타 추론 고주파 연산자.

3. 다중 정밀도 및 양자화 지원: BF16과 FP8을 네이티브로 지원하며, 블록 단위/텐서별 등 다양한 양자화 스케일링 방법을 다룹니다.

4. 통합 및 가독성: "깔끔한 추상화 + 맞춤화 가능성"을 강조하고, 동시에 커널 구현을 현대의 CUDA 학습 샘플로 만들어 2차 개발 기준을 낮추세요.

3. 설치

1. 환경 요구사항: NVIDIA SM90 아키텍처 GPU; 파이썬 3.8+; C++17 지원 컴파일러; CUDA Toolkit 12.8+.

  1. 소스 코드 설치 (빌드 휠):
  • git clone https://github.com/Tencent/hpc-ops.git
  • cd hpc-ops
  • make wheel
  • python3 -m pip install dist/*.whl
  • 3. 의존성 제안: 저장소의 requirements-dev.txt에 따라 개발/테스트 의존성을 준비하여 실행 중인 사용 사례와 버전 정렬을 용이하게 합니다.

4. 일반적인 사용 사례

1. MoE 모델 추론 가속: FusedMoE / GroupGEMM을 사용하여 전문가 라우팅 후 GEMM 및 융합 오버헤드를 줄이고 QPS/QPM 성능을 향상시킵니다.

2. 긴 컨텍스트와 높은 동시성 서비스: 어텐션(페이지 어텐션 포함)은 프리필/디코딩의 처리량과 지연에 더 민감하여 고부하 시 GPU를 압축하는 데 적합합니다.

3. 추론 프레임워크의 2차 통합: vLLM, SGLang 등에서 핵심 연산자를 교체/확장하여 '로컬 커널 교체와 전반적인 이익'이라는 엔지니어링 경로를 달성합니다.

4. 커널 연구개발 및 교육: CuTe/CUTLASS의 엔지니어링 구현은 팀 교육과 신규 운영자 반복을 위한 읽기 쉬운 샘플로 사용됩니다.

5. 생태와 경쟁 제품

  1. 생태학적 위치: HPC-Ops는 '고성능 운영자 기반'에 가깝며, 완전한 추론 엔진을 직접 대체하기보다는 추론 프레임워크(vLLM, SGLang)와 결합하여 사용하기에 적합합니다.
  2. 경쟁사/벤치마킹: Attention 방향 공통 비교 FlashAttention/FlashInfer/TensorRT-LLM; MoE와 GEMM 방향은 흔히 TensorRT-LLM, DeepGEMM 등과 비교됩니다. HPC-Ops의 차이점은 특정 하드웨어와 생산 워크로드를 더 공격적으로 마이크로아키텍처 최적화하고 엔지니어링적으로 추상화한다는 점입니다.

6. 제한 및 주의사항

1. 하드웨어 임계값: 현재 명확히 SM90(호퍼) GPU가 필요합니다; 다른 아키텍처의 가용성과 이점은 스스로 검증되어야 합니다.

2. 버전 결합: CUDA 버전, 컴파일러, 의존성에 민감하며, 저장소 지침에 따라 환경을 엄격히 잠기는 것이 권장됩니다.

3. "최대 관측 가속 비율"은 안정적인 수익과 같지 않습니다: 배치, 시퀀스 길이, 동시성 및 연산자 융합 방식이 다르면 수익 차이가 발생하며, 자신의 작업 부하를 벤치마킹해야 합니다.

4. 통합 비용: 연산자를 기존 추론 스택으로 대체할 때는 수치적 일관성, 정확성 전략(BF16/FP8), 그리고 온라인 통제 불가능한 위험을 피하기 위한 후속 경로에 주의를 기울여야 합니다.

7. 프로젝트 주소

https://github.com/Tencent/hpc-ops

8. 자주 묻는 질문

Q: HPC-Ops란 무엇이며 어떤 용도에 적합한가요?

A: vLLM/SGLang과 같은 프레임워크에서 핵심 연산자를 교체하여 처리량과 GPU 활용도를 향상시키기에 적합한 고성능 LLM 추론 연산자 라이브러리입니다.

Q: HPC-Ops가 지원하는 GPU 및 CUDA 버전은 무엇인가요?

답변: NVIDIA SM90(Hopper) 아키텍처 GPU는 공식적으로 필수이며, CUDA Toolkit은 12.8 이상을 요구합니다.

Q: HPC-Ops의 핵심 운영자가 어떤 추론 링크를 다루나요?

A: Attention(사전 채우기/디코드, 페이지 주의 포함), Grouped GEMM, Fused MoE와 같은 추론 중요 경로 연산자를 포함합니다.

Q: HPC-Ops에서 FP8 양자화/스케일링 방식을 어떻게 선택하나요?

A: 먼저 저장소에서 제공하는 인터페이스와 테스트 케이스를 실행한 후, 정확도 목표와 성능 지표를 기반으로 블록 단위나 퍼텐서와 같은 확장 전략을 선택한 후 종단 간 회귀분석을 수행합니다.

Q: 제 모델이나 비즈니스에서 HPC-Ops의 이점을 어떻게 평가하나요?

A: 실제 요청 분포(시퀀스 길이, 배치, 동시성, MoE 구성)를 A/B 벤치마크로 사용하고, 각각 프리필, 디코딩, 종단 간 처리량/지연 시간을 측정합니다.

HPC-Ops 오픈 소스 해석: 텐센트 훈위안 AI 인프라의 고성능 LLM 추론 연산자 라이브러리 H20/SM90에서 추론 컴퓨팅 파워를 소모하는 방법: HPC 운영에 대한 종합 분석 HPC-Ops 대 FlashAttention: 커널 가속 포인트와 적용 가능한 시나리오 HPC-Ops 대 FlashInfer: Attention 성능은 생산 추론에서 어떻게 비교되나요? HPC-Ops 대 TensorRT-LLM: 융합 MoE vs. 추론 스택 통합 차이점 HPC-Ops 대 DeepGEMM: GroupGEMM FP8 성능 대 엔지니어링 비용 HPC-Ops 시작 가이드: 소스 코드 컴파일, 메이크 휠, 설치 과정 HPC-Ops 환경 요구사항에 대한 상세 설명: SM90, CUDA 12.8 및 C++17 BF16/FP8 HPC-Ops 지원: 정량적 확장 전략 선택 HPC-Ops 주의(프리필/디코딩) 최적화 아이디어: 왜 더 빠른가요 HPC-Ops로 QPM을 강화하다: 운영자 병목 현상에서 시스템 처리량으로의 변화 MoE 추론에서 HPC-Ops의 가치: fusedMoE가 오버헤드를 줄이는 방법 HPC-Ops GroupGEMM의 일반적인 사용법: PyTorch 호출 예시 및 주석 HPC-Ops 테스트 및 벤치마킹: 회귀를 위한 테스트 디렉토리 활용법 HPC-Ops 통합 vLLM: 연산자 계층을 대체하는 일반적인 경로 HPC-Ops 통합 SGLang: 운영자 적응 및 성능 검증 HPC-Ops가 "최대 관측 가속도"를 강조하는 이유: 데이터를 올바르게 해석하는 방법 프로덕션에서는 HPC-Ops 체크리스트를 도입합니다: 안정성, 정확성, 롤백 CuTe/CUTLASS 스타일 HPC 운영용 코드: 현대 CUDA 학습 경로 HPC-Ops Attention은 실제 전투를 가속화합니다: KV 캐시와 페이지 주의가 관련되어 있습니다 HPC-Ops FP8 추론 구현: 처리량 향상 및 수치 오류 제어 HPC-Ops용 양자화 그룹 GEMM: 블록 기반 스케일링 vs 텐서 스케일링 HPC-Ops를 위한 융합 모자(FusedMoE) 정량화: FP8을 위한 전문가 가중치 엔지니어링 세부사항 HPC-Ops와 주류 추론 라이브러리 간의 분업: 프레임워크 스케줄링 vs. 기본 연산자 Roofline의 HPC-Ops: 컴퓨팅 파워 병목 현상과 대역폭 병목 현상을 판단하는 방법 FlashAttention이 충분히 빠르지 않을 때: 왜 HPC-Ops 같은 커스텀 라이브러리를 사용하나요 HPC-Ops가 적합한 모델: 하이브리드 vs. DeepSeek 같은 추론 작업부하 분석 HPC-Ops 성능 복제 가이드: 입력 형태, 서열 길이 및 컴파일 매개변수 HPC-Ops 설치 문제: CUDA 버전 및 컴파일러 호환성 컨테이너 환경에서의 HPC-Ops 배포: 빌드 이미지 및 드라이버 매칭 권고사항 HPC-Ops가 A/B 벤치마킹을 수행하는 방법: 지연 시간, 처리량, 비디오 메모리 다중 머신 다중 카드 추론에서 HPC-Ops의 위치: 운영자와 통신 간의 경계 HPC-운영 로드맵 설명: 적은 주의 vs. 확장된 퀀트 지원 HPC-Ops를 이용한 장기 맥락 추론 최적화: 희소 주의의 의미 HPC-Ops와 FP16/BF16: FP8로 전환할 시기 HPC-Ops를 위한 API 설계: 통합 및 맞춤화 방법 HPC-Ops 기여 가이드: 고영향력 PR 및 성능 개선 제출 방법 HPC-Ops는 SM90부터 GPU 업데이트까지 새로운 아키텍처의 초점에 적응합니다 HPC-Ops의 생산 이점 평가 방법: QPS/QPM 대 원가 계산 HPC-Ops 운영자 커버리지 목록: 주의, GEMM, MoE 한눈에 보기 HPC-Ops를 이용한 추론 가속: 최소 실현 가능 통합(MVP) 단계 HPC-Ops vs. Triton 코어: 제어 가능성 vs. 최고 성능 HPC-Ops용 CMake/Makefile 구축 방법: 구조 분석의 엔지니어링 HPC-운영 보안과 안정성: 온라인 기반 운영자를 교체하는 위험 요인 HPC-Ops 정확도 수용 방법: 출력, 허용오차, 회귀 집합 정렬 대규모 추론 서비스를 위한 HPC-Ops의 실천: 모니터링과 그레이스케일 HPC-Ops FAQ 요약: 하드웨어 임계값, 버전 요구사항 및 성능 변동 HPC-Ops가 당신에게 적합한가: Business Bottlenecks의 선택 추천

추천 도구

더보기