Python auf Arm: Update 2025
Warum Python für Arm wichtig ist
Python ist heute eine der am weitesten verbreiteten Programmiersprachen und treibt Anwendungen in den Bereichen Machine Learning (ML), Automatisierung, Data Science, DevOps, Webentwicklung und Entwickler-Tools an. Bei Arm betrachten wir Python nicht nur als eine zu unterstützende Sprache, sondern als strategische Priorität, um eine breite und wachsende Entwicklergemeinschaft zu ermöglichen.
In den letzten Jahren haben wir eng mit der Python-Community zusammengearbeitet, um Arm zu einer erstklassigen Plattform für die Python-Entwicklung zu machen. Dank konsequenter Upstream-Zusammenarbeit, gezieltem Engineering und Investitionen in das Ökosystem ist es heute praktikabel, Python-Workloads auf Arm über Linux, Windows und die Cloud hinweg zu entwickeln, zu testen und bereitzustellen.
Im Jahr 2024 haben wir darüber berichtet, wie Arm sein Engagement im Python-Ökosystem verstärkt hat. Ein Jahr später sehen wir die Ergebnisse dieser Investition mit neuer Infrastruktur, verbesserter Leistung und einer wachsenden Zahl von realen Projekten, die auf Arm laufen.
Dieser Beitrag beleuchtet die wichtigsten Entwicklungen des vergangenen Jahres und was vor uns liegt.
Was gibt es Neues im Jahr 2025
Einfachere Entwicklung: Von GitHub gehostete Runner für Linux und Windows auf Arm
Im Rahmen unserer Zusammenarbeit mit GitHub hat Arm dazu beigetragen, von GitHub gehostete CI-Runner für Arm-basierte Plattformen zu ermöglichen. Diese Runner sind jetzt verfügbar für
Arm sponserte die zugrunde liegende Infrastruktur und stellte technische Unterstützung während des Beta-Rollouts bereit. Diese Runner bieten Open-Source-Projekten eine schnelle und zuverlässige Möglichkeit, native CI-Workflows ohne Emulation oder Self-Hosting auszuführen.
Das CPython-Projekt war der erste Open-Source-Nutzer der Windows on Arm-Runner und nutzt diese weiterhin in täglichen CI-Pipelines. Dies trägt zur Gewährleistung einer erstklassigen Unterstützung für die Plattform bei.
Leistungsverbesserungen
Python 3.13 führte einen experimentellen Just-in-Time (JIT)-Compiler ein, der vom CPython-Team entwickelt wurde, um die Leistung in realen Anwendungen zu verbessern. Arm hat direkt zu dieser Anstrengung beigetragen, indem es den JIT auf Arm-Plattformen getestet, optimiert und erweitert hat, insbesondere für die AArch64-Architektur (siehe unten).
Unsere Arbeit umfasst die Behebung architekturspezifischer Probleme, die Validierung von generiertem Maschinencode und die Verbesserung der Gesamtqualität des JIT-Outputs auf Arm. Diese Bemühungen haben zu folgenden Ergebnissen geführt:
- Bis zu 4 % Geschwindigkeitssteigerung unter Linux
- 17 % Reduzierung der Größe generierter Header-Dateien
- Intelligentere Sprungbehandlung und effizientere Codeerzeugung
- Geringerer Speicheraufwand durch Wiederverwendung von Trampolinen und gezielte Optimierungen
Das Ergebnis ist eine schnellere und zuverlässigere JIT-Erfahrung für Python-Workloads, die auf Arm laufen.
Bessere Ökosystem-Unterstützung für Windows auf Arm
Die Python-Unterstützung für Windows auf Arm reift weiter. CPython selbst und viele wichtige Pakete lassen sich nun problemlos auf der Plattform erstellen und ausführen. Dies ist auf Upstream-Korrekturen, verbesserte Build-Systeme und erweiterte CI-Abdeckung zurückzuführen.
Wir arbeiten eng mit Microsoft zusammen, um die allgemeine Python-Erfahrung auf Windows on Arm-Geräten zu verbessern. Dazu gehört
- Kompatibilität für beliebte Bibliotheken gewährleisten
- Optimierung von Build- und Packaging-Workflows
- Unterstützung wichtiger KI- und ML-Tools
Ein Bereich mit großen Fortschritten ist PyTorch, wo die Zusammenarbeit zwischen Arm und Microsoft native Builds und verbesserte Beschleunigungsunterstützung ermöglicht hat.
Mit der Veröffentlichung von PyTorch 2.7 für Windows auf Arm können Entwickler jetzt auf Arm-native Builds für Windows zugreifen, die für Python 3.12 verfügbar sind. Dies ermöglicht es, ML-Workflows nativ auf Arm64 Windows-Geräten, einschließlich Copilot+ PCs, auszuführen und dabei vollen Zugriff auf die Hardwarefunktionen zu haben.
Diese Verbesserungen unterstützen eine Vielzahl von ML-Anwendungsfällen. Von generativen Modellen wie Stable Diffusion über natürliche Sprachverarbeitung bis hin zu traditioneller Regression und Klassifizierung. Windows auf Arm ist jetzt eine produktionsreife Plattform für die moderne KI-Entwicklung.
Arms Engagement für die Python-Community
Wir unterstützen die Python-Community weiterhin nicht nur durch Code, sondern auch durch Infrastruktur, Finanzierung und Zeit durch
- Hosting des CPython Core Dev Sprint 2025 in unserem Büro in Cambridge
- Sponsoring von EuroPython 2022, 2023 und 2025
- Bereitstellung eines dedizierten Benchmark-Servers, integriert mit speed.python.org
- Finanzierung eines Vollzeit-CPython-Entwicklers, jetzt ein Core Committer
Arm hat sich der Unterstützung des Python-Ökosystems durch nachhaltige Upstream-Beiträge und Community-Investitionen verschrieben. Im vergangenen Jahr haben wir unsere Bemühungen verstärkt, die Community sowohl technisch als auch organisatorisch zu unterstützen.
CPython Core Dev Sprint 2025
Wir sind stolz darauf, den kommenden CPython Core Dev Sprint 2025 im September in unserem Büro in Cambridge zu veranstalten und zu sponsern. Der Sprint, der voraussichtlich der größte jemals abgehaltene Sprint sein wird, bringt über 55 Kernentwickler und Mitwirkende aus Europa, den Vereinigten Staaten, Südkorea, Singapur und Australien zusammen.
Diese Sprints sind entscheidend für die Weiterentwicklung von Python, da sie persönliche Designdiskussionen, Upstream-Planungen und konzentrierte Entwicklungsarbeiten ermöglichen, die aus der Ferne schwer zu koordinieren sind. Durch die Unterstützung dieses globalen Events hilft Arm, die technische Roadmap von Python zu beschleunigen und gleichzeitig unsere Zusammenarbeit mit den Menschen zu stärken, die die Sprache pflegen und gestalten.
Unterstützung von EuroPython
Außerdem sponserte Arm EuroPython 2025 zum dritten Mal, nachdem die Konferenz bereits 2022 und 2023 unterstützt wurde. Dies fördert die Zusammenarbeit zwischen Maintainern, Mitwirkenden und Nutzern weltweit.



Arm präsentierte auf der EuroPython 2025 einen Vortrag über den JIT mit dem Titel Exploring the CPython JIT, der eine technische Vertiefung des Zustands und der Entwicklung des JIT auf Arm-Plattformen bot. Wir werden Einblicke in unsere Arbeit mit dem neuen JIT-Compiler in Python 3.14 geben.


Dedizierter Arm-Benchmark-Server
Um die Kernentwickler von Python bei der Leistungsüberwachung zu unterstützen, stellt Arm nun einen dedizierten Benchmark-Server auf Arm-Hardware bereit, der Ergebnisse auf speed.python.org veröffentlicht. Dieser Server integriert sich in die Leistungsüberwachungstools von Python und hilft dabei, die Auswirkungen von Codeänderungen auf Arm-Plattformen zu bewerten und datengesteuerte Optimierungen zu ermöglichen.

Upstream-First-Beiträge zu CPython
Arm investiert auch weiterhin direkt in Upstream-Arbeit. Als Ergebnis dieser Arbeit wurde ich kürzlich zum CPython Core Developer befördert, was unsere technische Zusammenarbeit mit dem Python-Projekt weiter stärkt.
Im vergangenen Jahr hat Arm zu verschiedenen Bereichen des Interpreters beigetragen, darunter
- Verbesserungen am CPython JIT
- Verbesserungen am Micro-Op-Optimierer
- Erweiterungen der Performance-Benchmarking-Infrastruktur
- Überprüfung von Pull Requests und Triage von Issues
Diese Bemühungen spiegeln das übergeordnete Ziel von Arm wider: nicht nur Plattform-Enablement, sondern nachhaltige, Upstream-First-Beiträge zur Python-Sprache selbst.
Technische Beiträge
Die jüngsten Beiträge von Arm zu CPython konzentrieren sich auf die Verbesserung des JIT und der Leistung auf AArch64-Plattformen. Jede dieser Änderungen verbessert den JIT-generierten Maschinencode für Arm-Plattformen, was zu einer effizienteren Python-Ausführung führt.
Obwohl der JIT noch in den Anfängen steckt, zeigt er bereits Potenzial in gezielten Workloads. Unsere Beiträge legen den Grundstein für zukünftige Geschwindigkeitssteigerungen auf Arm-basierten Systemen.
GH-123872: Generieren und Patchen von AArch64-Trampolinen
Diese Pull-Anfrage führt die Generierung und das Patchen von Trampolinen für AArch64 im JIT-Compiler ein. Durch die Implementierung dieser Trampoline kann der JIT Sprünge außerhalb des Bereichs effektiver handhaben und so die Zuverlässigkeit und Leistung von JIT-kompiliertem Code auf AArch64-Plattformen verbessern. Dieser Patch macht den JIT 0,8 % schneller und verbraucht 0,6 % weniger Speicher unter Linux.
GH-121001: Ersetzen von AArch64-Trampolinen durch LDR
Aufbauend auf der vorherigen Arbeit ersetzt diese Änderung den bestehenden Trampolin-Mechanismus durch die Verwendung der LDR-Instruktion für AArch64. Diese Vereinfachung reduziert die Komplexität und verbessert die Wartbarkeit des JIT-Codegenerierungsprozesses. Sie reduziert die Größe der vom Stencil generierten Header-Datei um 17 % und die Anzahl der gepatchten Funktionen von 4 auf 1.
// Old trampoline d2800008 mov x8, #0x0 f2a00008 movk x8, #0x0, lsl #16 f2c00008 movk x8, #0x0, lsl #32 f2e00008 movk x8, #0x0, lsl #48 d61f0100 br x8 // New trampoline 58000048 ldr x8, 8 d61f0100 br x8 00000000 # Used to patch the 64-bit address 00000000 # Used to patch the 64-bit address
GH-120250: JIT: Wiederverwendung von Trampolinen auf AArch64
Diese Verbesserung ermöglicht es dem JIT-Compiler, bestehende Trampoline auf AArch64 wiederzuverwenden, was Redundanzen minimiert und die Speichernutzung optimiert. Durch die Wiederverwendung von Trampolinen reduziert der JIT den Mehraufwand, der mit der Generierung neuer Trampoline für jeden Sprung außerhalb des Bereichs verbunden ist.
GH-131041: AArch64-Trampoline nur für lange Sprünge emittieren
Diese Optimierung stellt sicher, dass Trampoline nur bei Bedarf emittiert werden, insbesondere für lange Sprünge, die nicht direkt kodiert werden können. Durch die Vermeidung der Generierung überflüssiger Trampoline optimiert der JIT-Compiler den Codegenerierungsprozess und reduziert die Codegröße.
GH-131042: Entfernen des nachfolgenden Sprungs in AArch64 JIT-Stencils
Diese Verfeinerung eliminiert unnötige nachfolgende Sprünge in AArch64 JIT-Stencils. Durch das Entfernen dieser redundanten Instruktionen erzeugt der JIT effizienteren Maschinencode, was zu potenziellen Leistungssteigerungen während der Ausführung führt, einschließlich einer Geschwindigkeitssteigerung von 1,4 % unter Linux.
// With the trailing jump that needs to be patched 0x08, 0x00, 0x00, 0x90, // adrp x8, _JIT_OPERAND0 0x08, 0x01, 0x40, 0xf9, // ldr x8, [x8] 0x88, 0x1e, 0x00, 0xf9, // str x8, [x20, #0x38] 0x00, 0x00, 0x00, 0x14, // b _JIT_CONTINUE // The trailing jump has been replaced with a NOP 0x08, 0x00, 0x00, 0x90, // adrp x8, _JIT_OPERAND0 0x08, 0x01, 0x40, 0xf9, // ldr x8, [x8] 0x88, 0x1e, 0x00, 0xf9, // str x8, [x20, #0x38] 0x1f, 0x20, 0x03, 0xd5, // nop (branch was removed)
Ausblick
Das Engagement von Arm im Python-Ökosystem wird auch 2025 und darüber hinaus fortgesetzt. Wir konzentrieren uns weiterhin auf Leistung, Ökosystemenablement und Upstream-Zusammenarbeit. Ob durch Infrastruktur, Entwicklerfinanzierung oder Beiträge zu CPython-Interna – unser Ziel ist es, Python auf Arm zu einer schnellen, stabilen und zugänglichen Plattform für alle Benutzer zu machen.
Wir werden weiterhin Beiträge in Schlüsselbereichen des Interpreters leisten, einschließlich des JIT, der SIMD-Ausführung und der Kernevaluationsschleife. Zukünftig planen wir, die Integration von architekturspezifischen Instruktionen wie NEON, SVE, SVE2, SME und Arms neuem SME2 in den JIT-Compiler zu untersuchen, um gezielte Workloads zu beschleunigen.
Wir engagieren uns auch dafür, die Community-Seite von Python zu stärken, indem wir Patches überprüfen, neue Mitwirkende betreuen und wichtige Veranstaltungen unterstützen, die Maintainer zusammenbringen.
Machen Sie mit
Wir freuen uns auf die Zukunft von Python auf Arm und möchten Ihre Meinung hören.
Jetzt ist der perfekte Zeitpunkt, um Ihre Python-Workloads auf Arm auszuführen. Es ist einfacher als je zuvor
- Von GitHub gehostete Runner für Linux und Windows auf Arm sind verfügbar
- Die meisten PyPI-Pakete funktionieren jetzt out-of-the-box auf Arm-Systemen
- Arm-Instanzen sind in allen großen öffentlichen Clouds verfügbar
Wenn Sie auf Probleme stoßen, melden Sie diese upstream oder kontaktieren Sie uns direkt.
Ob Sie an Python selbst arbeiten, Tools und Bibliotheken entwickeln oder Ihre Software auf Arm-basierte Systeme portieren – wir laden Sie ein, sich über das Arm Developer Program mit uns zu vernetzen. Es ist der beste Weg, auf dem Laufenden zu bleiben, auf technische Ressourcen zuzugreifen und mit Arm-Ingenieuren und anderen Python-Entwicklern zusammenzuarbeiten.
Lassen Sie uns Python auf Arm gemeinsam weiter verbessern.
