1. Résumé
HPC-Ops est une bibliothèque d’opérateurs d’inférence LLM open source et de qualité production, issue de l’équipe Hunyuan AI Infra de Tencent, dans le but de rapprocher les cartes d’inférence grand public (en particulier les NVIDIA Hopper/SM90, comme le H20) de l’utilisation matérielle maximale. Le projet se concentre sur le perfectionnement du noyau SOTA à partir de CUDA à usage zéro + CuTe/CUTLASS, et fournit une API relativement propre pour une intégration facile dans des cadres d’inférence tels que vLLM et SGLang, et convient aux scénarios d’inférence multi-précision tels que BF16/FP8.
2. Caractéristiques principales
1. Performance ultime pour la production : Pour l’optimisation approfondie des chemins critiques d’inférence, le ratio d’accélération maximale d’observation officiel de l’Attention / GroupGEMM / FusedMoE (jusqu’à 2,22x) est donné.
2. Couverture des opérateurs clés : incluant l’attention (préremplissage/décodage, y compris l’attention pagée), le GEMM groupé, le MoE fusionné et d’autres opérateurs d’inférence à haute fréquence.
3. Prise en charge de la multi-précision et de la quantification : Prend en charge nativement BF16 et FP8, et couvre différentes méthodes d’échelle de quantification (comme bloc par bloc/per-tensor).
4. Intégration facile et lisibilité : Mettre l’accent sur « abstraction propre + personnalisation », tout en transformant l’implémentation du noyau en un exemple d’apprentissage CUDA moderne pour abaisser le seuil de développement secondaire.
3. Installation
1. Exigences environnementales : GPU avec architecture NVIDIA SM90 ; Python 3.8+ ; Compilateur avec prise en charge de C++17 ; Boîte à outils CUDA 12.8+。
- Installation du code source (roue de construction) :
git clone https://github.com/Tencent/hpc-ops.gitcd hpc-opsmake wheelpython3 -m pip install dist/*.whl- 3. Suggestions de dépendances : Préparer les dépendances de développement/test selon les
requirements-dev.txtdu dépôt afin de faciliter l’exécution des cas d’utilisation et l’alignement des versions.
4. Cas d’usage typiques
1. Accélération d’inférence du modèle MoE : Utiliser FusedMoE / GroupGEMM pour réduire la surcharge de GEMM et de fusion après un routage expert, et améliorer QPS/QPM.
2. Services de contexte long et de forte concurrence : L’attention (y compris l’attention paginée) est plus sensible au débit et à la latence du préremplissage/décodage, ce qui la rend adaptée à la pression des GPU sous forte charge.
3. Intégration secondaire du cadre d’inférence : Remplacer/étendre les opérateurs clés dans vLLM, SGLang, etc. pour atteindre la voie d’ingénierie du « remplacement local du noyau et bénéfice global ».
4. R&D et enseignement du noyau : L’implémentation technique de CuTe/CUTLASS est utilisée comme exemple lisible pour la formation des équipes et l’itération de nouveaux opérateurs.
5. Écologie et produits concurrents
- Localisation écologique : HPC-Ops ressemble davantage à une « base d’opérateur haute performance » et convient à une utilisation en combinaison avec des cadres d’inférence (vLLM, SGLang) plutôt qu’à un remplacement direct d’un moteur d’inférence complet.
- Concurrents/benchmarking : Direction de l’attention : comparaison courante FlashAttention/FlashInfer/TensorRT-LLM ; Les directions MoE et GEMM sont couramment comparées à TensorRT-LLM, DeepGEMM, etc. La différence entre HPC-Ops réside dans l’optimisation plus agressive de la microarchitecture et l’abstraction d’ingénierie de matériels spécifiques et charges de production.
6. Limitations et précautions
1. Seuil matériel : GPU SM90 (Hopper) est actuellement clairement requis ; La disponibilité et les avantages d’autres architectures doivent être vérifiés par elles-mêmes.
2. Couplage de versions : Il est sensible aux versions, compilateurs et dépendances CUDA, et il est recommandé de verrouiller l’environnement strictement selon les instructions du dépôt.
3. Le « ratio d’accélération maximale d’observation » n’est pas égal à des rendements stables : différents lots, longueurs de séquences, méthodes de concurrence et de fusion d’opérateurs entraîneront des différences de rendement, et vous devez évaluer votre propre charge de travail.
4. Coût d’intégration : Lors du remplacement des opérateurs par des piles d’inférence existantes, nous devons prêter attention à la cohérence numérique, à la stratégie de précision (BF16/FP8) et à la voie de repli afin d’éviter les risques incontrôlables en ligne.
7. Adresse du projet
https://github.com/Tencent/hpc-ops
8. Questions fréquemment posées
Q : Qu’est-ce que HPC-Ops et à quoi sert-il ?
R : Il s’agit d’une bibliothèque d’opérateurs d’inférence LLM haute performance, adaptée pour remplacer des opérateurs clés dans des cadres tels que vLLM/SGLang afin d’améliorer le débit et l’utilisation du GPU.
Q : Quelles versions GPU et CUDA HPC-Ops prend-il en charge ?
R : Les GPU NVIDIA SM90 (Hopper) sont officiellement obligatoires, et le CUDA Toolkit nécessite 12,8 ou plus.
Q : Quels liens d’inférence couvre l’opérateur principal de HPC-Ops ?
R : Couvrir les opérateurs de chemin critique d’inférence tels que l’attention (préremplissage/décodage, y compris l’attention pagée), le GEMM groupé et le MoE fusionné.
Q : Comment choisir la méthode de quantification/mise à l’échelle FP8 pour HPC-Ops ?
R : D’abord, exécutez l’interface et le cas de test fournis par le dépôt, puis sélectionnez une stratégie de mise à l’échelle telle que bloc par bloc ou par tenseur basée sur les objectifs de précision et les indicateurs de performance, puis effectuez une régression de bout en bout.
Q : Comment puis-je évaluer les avantages de HPC-Ops sur mon propre modèle/entreprise ?
R : Utiliser la distribution réelle des requêtes (longueur de séquence, batch, concurrence, configuration MoE) comme benchmark A/B, et mesurer respectivement le préremplissage, le décodage et le débit/latence de bout en bout.