CUDA-L1: Verbesserung der CUDA-Optimierung durch kontrastives Reinforcement Learning

Die exponentielle Nachfrage nach GPU-Rechenressourcen, die durch den raschen Fortschritt der großen Sprachmodelle (Large Language Models, LLMs) getrieben wird, hat eine dringende Notwendigkeit für automatisierte CUDA-Optimierungsstrategien geschaffen. Obwohl kürzliche Fortschritte in LLMs vielversprechend sind, was die Codegenerierung betrifft, erreichen aktuelle state-of-the-art-Modelle (z.B. R1, o1) nur geringe Erfolgsraten bei der Verbesserung der CUDA-Geschwindigkeit. In dieser Arbeit stellen wir CUDA-L1 vor, ein automatisiertes Reinforcement-Learning-Framework für CUDA-Optimierung. CUDA-L1 erzielt Leistungsverbesserungen bei der CUDA-Optimierungsaufgabe: trainiert auf NVIDIA A100, liefert es einen durchschnittlichen Geschwindigkeitsvorteil von 17,7-fach über alle 250 CUDA-Kernels von KernelBench, wobei Spitzenwerte von 449-fach erreicht werden. Darüber hinaus zeigt das Modell ausgezeichnete Portierbarkeit über verschiedene GPU-Architekturen und erzielt durchschnittliche Geschwindigkeitsvorteile von 17,8-fach auf H100, 19,0-fach auf RTX 3090, 16,5-fach auf L40, 14,7-fach auf H800 und 13,9-fach auf H20 – trotz spezifischer Optimierung für A100. Neben diesen Benchmark-Ergebnissen zeigt CUDA-L1 mehrere bemerkenswerte Eigenschaften: 1) Es entdeckt eine Vielzahl von CUDA-Optimierungstechniken und lernt diese strategisch zu kombinieren, um optimale Leistung zu erzielen; 2) Es enthüllt grundlegende Prinzipien der CUDA-Optimierung; 3) Es identifiziert nicht offensichtliche Leistungsengpässe und lehnt scheinbar vorteilhafte Optimierungen ab, die die Leistung schädigen. Die Fähigkeiten von CUDA-L1 zeigen, dass Reinforcement Learning ein anfänglich schlecht performierendes LLM in einen effektiven CUDA-Optimierer verwandeln kann, ausschließlich durch Geschwindigkeitsvorteil-basierte Belohnungssignale und ohne menschliches Fachwissen oder Domänenkenntnisse. Noch wichtiger ist jedoch, dass das trainierte RL-Modell die erworbenen Schließleistungen auf neue Kernels überträgt. Dieses Paradigma bietet Möglichkeiten für die automatisierte Optimierung von CUDA-Vorgängen und verspricht erheblich zur Steigerung der GPU-Effizienz beizutragen sowie den steigenden Druck auf GPU-Rechenressourcen zu lindern.