KI für Ihr Unternehmen – Jetzt Demo buchen

Neuer Ansatz zur Entwicklung von ROCm-Kerneln mit Hugging Face

Kategorien:
No items found.
Freigegeben:
November 17, 2025

KI sauber im Unternehmen integrieren: Der 5-Schritte-Plan

Von der ersten Idee bis zur voll integrierten KI-Lösung – strukturiert, sicher und mit messbarem Erfolg

1
🎯

Strategie & Zieldefinition

Wir analysieren Ihre Geschäftsprozesse und identifizieren konkrete Use Cases mit dem höchsten ROI-Potenzial.

✓ Messbare KPIs definiert

2
🛡️

Daten & DSGVO-Compliance

Vollständige Datenschutz-Analyse und Implementierung sicherer Datenverarbeitungsprozesse nach EU-Standards.

✓ 100% DSGVO-konform

3
⚙️

Technologie- & Tool-Auswahl

Maßgeschneiderte Auswahl der optimalen KI-Lösung – von Azure OpenAI bis zu Open-Source-Alternativen.

✓ Beste Lösung für Ihren Fall

4
🚀

Pilotprojekt & Integration

Schneller Proof of Concept mit nahtloser Integration in Ihre bestehende IT-Infrastruktur und Workflows.

✓ Ergebnisse in 4-6 Wochen

5
👥

Skalierung & Team-Schulung

Unternehmensweiter Rollout mit umfassenden Schulungen für maximale Akzeptanz und Produktivität.

✓ Ihr Team wird KI-fit

Inhaltsverzeichnis

    mindverse studio – Ihre Plattform für digitale Effizienz

    Optimieren Sie Prozesse, automatisieren Sie Workflows und fördern Sie Zusammenarbeit – alles an einem Ort.
    Mehr über Mindverse Studio erfahren

    Das Wichtigste in Kürze

    • Hugging Face hat die Bibliotheken kernel-builder und kernels eingeführt, um die Entwicklung, das Bauen und das Teilen von hochleistungsfähigen GPU-Kerneln, insbesondere für ROCm-kompatible AMD GPUs, zu vereinfachen.
    • Benutzer können benutzerdefinierte Kernel erstellen, die für spezifische Workloads optimiert sind, und diese nahtlos in PyTorch-Workflows integrieren.
    • Der Prozess umfasst eine definierte Projektstruktur, die Konfiguration über eine `build.toml`-Datei und die Sicherstellung der Reproduzierbarkeit mittels `flake.nix`.
    • Kernel werden als native PyTorch-Operatoren registriert, was die Kompatibilität mit `torch.compile` und hardware-spezifische Implementierungen ermöglicht.
    • Das Hochladen von Kerneln auf den Hugging Face Hub macht sie für die Community zugänglich und ermöglicht ein einfaches Laden und Verwenden mit der `kernels`-Bibliothek.
    • Versioning und Lock-Dateien unterstützen die Verwaltung von Kernel-Abhängigkeiten in Produktionsumgebungen.

    Optimierung und Bereitstellung von ROCm-Kerneln mit Hugging Face

    Die fortschreitende Entwicklung im Bereich des Deep Learning erfordert zunehmend spezialisierte und hochoptimierte Software, um die Leistungsfähigkeit moderner GPU-Architekturen voll auszuschöpfen. Im Kontext von AMD GPUs und der ROCm-Software-Plattform stellt die Entwicklung, Integration und gemeinsame Nutzung von benutzerdefinierten Kerneln eine entscheidende Herausforderung dar. Hugging Face hat mit der Einführung der kernel-builder- und kernels-Bibliotheken einen strukturierten Ansatz geschaffen, der diesen Prozess erheblich vereinfacht und beschleunigt.

    Die Rolle von benutzerdefinierten Kerneln in der Hochleistungs-KI

    Benutzerdefinierte Kernel sind grundlegend für die Erzielung hoher Leistung im Deep Learning. Sie ermöglichen es, GPU-Operationen präzise auf spezifische Workloads abzustimmen, sei es für Bildverarbeitung, Tensor-Transformationen oder andere rechenintensive Aufgaben. Die manuelle Kompilierung dieser Kernel für verschiedene Architekturen, die korrekte Einstellung von Build-Flags und die saubere Integration in PyTorch-Erweiterungen kann jedoch schnell komplex und fehleranfällig werden. Die Bibliotheken von Hugging Face zielen darauf ab, diese Komplexität zu reduzieren, indem sie eine standardisierte Methode zum Erstellen, Testen und Teilen von Kerneln bereitstellen.

    Der Hugging Face Ansatz für ROCm-Kernel

    Der Fokus liegt hier auf ROCm-kompatiblen Kerneln, die speziell für AMD GPUs optimiert sind. Die kernel-builder-Bibliothek bietet eine umfassende Anleitung zur Erstellung von Kerneln, die effizient auf AMD GPUs laufen, und liefert Best Practices für Reproduzierbarkeit, Paketierung und Bereitstellung. Dieser Leitfaden ist eine spezifische Anpassung der allgemeinen kernel-builder-Dokumentation, die auch CUDA, Metal und XPU unterstützt.

    Exemplarische Umsetzung: Der RadeonFlow GEMM-Kernel

    Als praktisches Beispiel wird der GEMM-Kernel (General Matrix Multiplication) aus den RadeonFlow_Kernels herangezogen. Dieser Kernel ist eine hochleistungsfähige, blockweise FP8-Matrixmultiplikationsimplementierung, die für die AMD Instinct MI300X GPU optimiert wurde. Er wurde im Rahmen der AMD Developer Challenge 2025 ausgezeichnet und demonstriert das Potenzial spezieller Kernel zur Leistungssteigerung. Der Kernel arbeitet mit quantisierten Eingaben im `e4m3fnuz`-Format und verwendet blockweise Skalierungsfaktoren, um die Genauigkeit bei geringer Präzision zu erhalten.

    Schritt 1: Projektstruktur

    Eine klar definierte Projektstruktur ist essenziell für die Wartbarkeit und Reproduzierbarkeit. Der Hugging Face Kernel Builder erwartet eine spezifische Verzeichnisstruktur:

    • build.toml: Das Manifest des Projekts, das den gesamten Bauprozess steuert.
    • gemm/: Enthält den eigentlichen HIP/GPU-Quellcode.
    • flake.nix: Garantiert eine vollständig reproduzierbare Build-Umgebung.
    • torch-ext/gemm/: Beinhaltet den Python-Wrapper für die PyTorch-Operatoren.

    Die Umbenennung von `.cpp`-Dateien in `.h` oder `.hip` ist dabei entscheidend, um dem Kernel-Builder die korrekte Identifikation und Kompilierung zu ermöglichen.

    Schritt 2: Konfigurationsdateien

    Das build.toml Manifest

    Diese Datei orchestriert den gesamten Build-Prozess. Sie definiert unter anderem den Projektnamen, ob es sich um einen universellen Kernel handelt, die Quell- und Header-Dateien für die PyTorch-Erweiterung sowie die spezifischen Backend-Konfigurationen für den Kernel (z.B. "rocm" und die Zielarchitektur "gfx942" für MI300 GPUs).

    Die flake.nix Reproduzierbarkeitsdatei

    Die `flake.nix`-Datei ist entscheidend für die Sicherstellung, dass der Kernel auf jeder Maschine reproduzierbar gebaut werden kann. Sie fixiert die exakte Version des Kernel-Builders und seiner Abhängigkeiten, wodurch "es funktioniert auf meiner Maschine"-Probleme eliminiert werden.

    Kernel-Implementierung und PyTorch-Operator-Registrierung

    Die eigentliche GPU-Logik wird in `.hip`-Dateien implementiert. Ein wesentlicher Schritt ist die Registrierung des Kernel als nativen PyTorch-Operator über eine C++-Bindungsdatei (`torch-ext/torch_binding.cpp`). Dies ermöglicht die Integration in das PyTorch-Ökosystem und die Kompatibilität mit Optimierungstechniken wie `torch.compile`, was die Ausführung des benutzerdefinierten Operators in größeren Berechnungsgraphen optimiert. Der `__init__.py`-Wrapper in `torch-ext/gemm/` stellt den Operator schließlich auf benutzerfreundliche Weise in Python zur Verfügung.

    Schritt 3: Den Kernel bauen

    Der Kernel-Builder nutzt Nix für den Bauprozess. Nach der Installation von Nix kann der Kernel über den Befehl `nix build . -L` gebaut werden. Für die lokale Entwicklung bietet `nix develop` eine isolierte Entwicklungsumgebung mit allen notwendigen Abhängigkeiten, einschliesslich `build2cmake` zum Generieren von Projektdateien und der Möglichkeit, den Kernel in einem Python Virtual Environment zu testen.

    Schritt 4: Hochladen des Kernels auf den Hub

    Nachdem der Kernel erfolgreich gebaut und getestet wurde, kann er auf den Hugging Face Hub hochgeladen werden. Vor dem Hochladen ist es ratsam, Entwicklungsartefakte zu bereinigen. Der kernel-builder automatisiert den Bau des Kernels für alle unterstützten PyTorch- und ROCm-Versionen. Die resultierenden Binärdateien werden dann in ein `build/`-Verzeichnis verschoben und können mittels Git und LFS (Large File Storage) in ein neues Hugging Face Repository gepusht werden. Dies macht den Kernel für andere Entwickler zugänglich und voll kompatibel mit der kernels-Bibliothek.

    Schritt 5: Den Kernel nutzen

    Die kernels-Bibliothek ermöglicht das direkte Laden eines Kernels aus seinem Hub-Repository, ohne dass eine traditionelle Installation erforderlich ist. Dies registriert den neuen Operator automatisch und macht ihn sofort nutzbar. Ein Beispiel zeigt, wie der GEMM-Kernel geladen und mit PyTorch-Tensoren verwendet werden kann, um Matrixmultiplikationen auf AMD GPUs auszuführen.

    Fazit

    Die von Hugging Face bereitgestellten Tools kernel-builder und kernels vereinfachen den Prozess der Erstellung und Verbreitung von ROCm-Kerneln erheblich. Durch die Kombination eines reproduzierbaren Workflows auf Basis von Nix und einer nahtlosen Integration in PyTorch können Entwickler sich auf die Leistungsoptimierung konzentrieren, anstatt sich mit Einrichtungs- und Kompilierungsproblemen auseinanderzusetzen. Die Möglichkeit, benutzerdefinierte Kernel auf dem Hugging Face Hub zu teilen, fördert die Zusammenarbeit und ermöglicht der Community einen schnellen Zugang zu optimierten Lösungen.

    Die beschriebenen Mechanismen für Versionierung und Abhängigkeitsmanagement, einschliesslich der Verwendung von Git-Tags und `kernels.lock`-Dateien, tragen dazu bei, die Stabilität und Wartbarkeit von Projekten zu gewährleisten. Darüber hinaus bietet die Option, Kernel als Python Wheels zu exportieren, Flexibilität für spezifische Bereitstellungsszenarien, obwohl das Laden über den Hub die bevorzugte Methode bleibt.

    Die Implementierung und Optimierung von Kerneln, wie am Beispiel des RMS-Norm-Kernels, des SwiGLU-Kernels und des Skinny GEMM-Kernels auf AMD MI300X GPUs gezeigt, demonstriert die signifikanten Leistungsverbesserungen, die durch maßgeschneiderte Hardware-Optimierungen erzielt werden können. Diese Optimierungen umfassen sowohl speicherbezogene Techniken (z.B. coalesced memory accesses, Nutzung von Shared Memory) als auch rechenbezogene Ansätze (z.B. gepackte Instruktionen, Warp-Spezialisierung und asynchrone Ausführung).

    Die Initiativen von Hugging Face in Zusammenarbeit mit AMD unterstreichen die Bedeutung offener und kollaborativer Entwicklung, um die Leistungsfähigkeit von KI-Modellen auf verschiedenen Hardware-Plattformen zu maximieren und die Zugänglichkeit für die breitere Entwicklergemeinschaft zu verbessern.

    Bibliographie

    - Hugging Face Blog. (2025, November 17). *Easily Build and Share ROCm Kernels with Hugging Face*. Verfügbar unter: https://huggingface.co/blog/build-rocm-kernels - Hugging Face Blog. (2025, July 9). *Creating custom kernels for the AMD MI300*. Verfügbar unter: https://huggingface.co/blog/mi300kernels - Hugging Face Blog. (2025, August 18). *A Guide to Building and Scaling Production-Ready CUDA Kernels*. Verfügbar unter: https://huggingface.co/blog/kernel-builder - Hugging Face Blog. (2025, June 12). *Learn the Hugging Face Kernel Hub in 5 Minutes*. Verfügbar unter: https://huggingface.co/blog/hello-hf-kernels - GitHub. (n.d.). *huggingface/hf-rocm-kernels*. Verfügbar unter: https://github.com/huggingface/hf-rocm-kernels - AMD ROCm Documentation. (2025, October 16). *Running models from Hugging Face*. Verfügbar unter: https://rocm.docs.amd.com/en/latest/how-to/rocm-for-ai/inference/hugging-face-models.html - AMD ROCm Documentation. (2025, January 1). *Running inference with Hugging Face Transformers*. Verfügbar unter: https://rocm.docs.amd.com/projects/ai-developer-hub/en/latest/notebooks/inference/1_inference_ver3_HF_transformers.html - arXiv. (2025, November 11). *HipKittens: Fast and Furious AMD Kernels*. Verfügbar unter: https://arxiv.org/abs/2511.08083

    Artikel jetzt als Podcast anhören

    Kunden die uns vertrauen:
    Arise Health logoArise Health logoThe Paak logoThe Paak logoOE logo2020INC logoEphicient logo
    und viele weitere mehr!

    Bereit für den nächsten Schritt?

    Das Expertenteam von Mindverse freut sich darauf, Ihnen zu helfen.
    Herzlichen Dank! Deine Nachricht ist eingegangen!
    Oops! Du hast wohl was vergessen, versuche es nochmal.

    🚀 Neugierig auf Mindverse Studio?

    Lernen Sie in nur 30 Minuten kennen, wie Ihr Team mit KI mehr erreichen kann – live und persönlich.

    🚀 Demo jetzt buchen