Effiziente CPU-Frequenzsteuerung auf MD-Plattformen
Inhaltsverzeichnis
- Einleitung
- Hintergrund
- Bestehende Kernel-Frequenzsteuerung
- Vorstellung des MDP-State-Treibers
- Abhängigkeiten und Komponenten
- Trace-Events und Trace-Analyse-Tool
- MDP-State-Benchmarktests
- MDP-State-Bediener
- Herausforderungen und zukünftige Verbesserungen
- Fazit
Einleitung
Guten Tag zusammen! Mein Name ist Ray Huang von MD Learners. Unser Team konzentriert sich seit über 10 Jahren auf die Komponenten des MDP-Kernels, einschließlich der CPU, des Power-Managements und der GPU-Grafikberechnung. Heute möchte ich die Gelegenheit nutzen, um über den neuen CPU-Frequenzregelungsmechanismus in Linux zu sprechen. In diesem Artikel werde ich Ihnen die technischen Details und die Implementierung dieser Lösung vorstellen.
Hintergrund
Der Hintergrund für diese Funktion liegt im Chrome-Projekt, das eine bessere Leistung für die Skalierung in ihren neuen Produkten erzielen möchte. Gleichzeitig haben wir mit Ingenieuren von Wolves zusammengearbeitet, um die Steam-Spieleleistung auf den AMD-Prozessoren zu optimieren. Dabei sind Probleme mit der CPU-Frequenz und der langsamen Bewegung aufgetreten. Nach umfangreicher Untersuchung haben wir festgestellt, dass der ACPI-CPU-Frequenztreiber auf den MD-Prozessoren möglicherweise nicht sehr leistungsfähig und energieeffizient ist.
Bestehende Kernel-Frequenzsteuerung
Die derzeitige Kernel-Frequenzsteuerung basiert auf dem CPUfreq-Framework von Linus Torvalds. Der ACPI-basierte CPU-Frequenztreiber wurde vor einigen Jahren auf Intel-Prozessoren verwendet. Auf den aktuellen MD-CPU-Plattformen wird jedoch weiterhin der ACPI-basierte CPU-Frequenztreiber für die CPU-Frequenz- und Taktsteuerung verwendet. Dieser Treiber arbeitet mit ACPI 3P-States, während der neue MDP-State-Treiber Continuous Performance Variables verwendet.
Vorstellung des MDP-State-Treibers
Der MDP-State-Treiber wurde entwickelt, um den ACPI-CPU-Freak-Treiber durch eine effizientere Leistungsfrequenzsteuerung auf den MD-Plattformen zu ersetzen. Anstelle der ACPI 3P-States verwendet der MDP-State-Treiber den MDP State mit einem Continuous Performance Range, um die CPU-Frequenz zu steuern. Dabei wird der Kernel-Governor verwendet, um die Workload vorherzusagen und die Frequenzwerte zu berechnen. Der Scheduler-Governor optimiert die Lösung und verwaltet die Hinweise an die SMU-CPU-Taktsteuerung.
Abhängigkeiten und Komponenten
Der MDP-State-Treiber hängt von verschiedenen Komponenten ab. Dazu gehören der CPU-Idle-Treiber, die Kernel-Governors und der CPU-Freak-Kernel. Darüber hinaus wird das SMU-Firmware zur Frequenzregelung genutzt. Der MDP-State-Treiber bietet auch verschiedene Attribute und Dateien zur Steuerung der Funktionalitäten auf Systemebene.
Trace-Events und Trace-Analyse-Tool
Zur Überwachung und Fehlerbehebung bringt der MDP-State-Treiber auch Trace-Events mit sich. Diese Events liefern Informationen über die echte CPU-Frequenz und die Performanceziele. Ein Tracer-Tool wurde entwickelt, um die Tracer-Logs aufzuzeichnen und zu analysieren. Diese Funktion hilft dabei, Latenzzeiten zwischen Workloads und Frequenzerhöhungen zu überprüfen.
MDP-State-Benchmarktests
Um die Performance des MDP-State-Treibers zu testen, wurden verschiedene Benchmarktests durchgeführt. Dabei wurden Tests mit T-Bench und Speedometer durchgeführt, um die Leistungsverbesserungen zu messen. Es wurden positive Ergebnisse erzielt, aber es sind noch weitere Optimierungen erforderlich, insbesondere für die Energieeffizienz.
MDP-State-Bediener
Um die Funktionalitäten des MDP-State-Treibers zu steuern, wurde das CPU Power Tool entwickelt. Dieses Tool ermöglicht die Abfrage und Einstellung der CPU-Frequenz über die MDP-State-APIs. Es bietet auch die Möglichkeit, Energieverbrauch und Leerlaufstatus anzuzeigen.
Herausforderungen und zukünftige Verbesserungen
Trotz der positiven Ergebnisse des MDP-State-Treibers gibt es noch Herausforderungen, die bewältigt werden müssen. Dazu gehören die Optimierung der Leistung und Energieeffizienz bei verschiedenen Benchmarks sowie die Unterstützung aller bestehenden CPU-Plattformen. Außerdem streben wir Verbesserungen für das Spielen von Steam-Decks an.
Fazit
Insgesamt ist der MDP-State-Treiber eine vielversprechende Lösung für die CPU-Frequenzsteuerung auf MD-Plattformen. Es wurden positive Ergebnisse erzielt, aber weitere Optimierungen und Tests sind erforderlich, um die volle Leistungsfähigkeit zu gewährleisten. Wir sind zuversichtlich, dass der MDP-State-Treiber eine effizientere und leistungsstärkere Alternative zum ACPI-CPU-Freak-Treiber darstellt.
Highlights
- Vorstellung des MDP-State-Treibers als effiziente Lösung für die CPU-Frequenzsteuerung auf MD-Plattformen
- Umstellung von ACPI-CPU-Freak-Treiber auf MDP-State-Treiber für verbesserte Leistung
- Verwendung des Continuous Performance Ranges für die CPU-Frequenzsteuerung
- Abhängigkeiten und Komponenten des MDP-State-Treibers
- Tracer-Events und Tracer-Analyse-Tool zur Fehlerbehebung und Überwachung der CPU-Frequenz
- Benchmarktests zur Messung der Leistungsverbesserungen durch den MDP-State-Treiber
- CPU Power Tool zur Steuerung der CPU-Frequenz und Anzeige von Energieverbrauch und Leerlaufstatus
- Herausforderungen und zukünftige Verbesserungen bei der Optimierung von Leistung und Energieeffizienz
- Zusammenfassung und Ausblick auf den MDP-State-Treiber als vielversprechende Lösung für MD-Plattformen
FAQ
Q: Welche CPUs unterstützen den MDP-State-Treiber?
A: Der MDP-State-Treiber kann auf den meisten aktuellen MD-Prozessoren verwendet werden. Eine genaue Liste der unterstützten CPUs finden Sie in der Linux-Dokumentation.
Q: Welche Vorteile bietet der MDP-State-Treiber gegenüber dem ACPI-CPU-Freak-Treiber?
A: Der MDP-State-Treiber bietet eine verbesserte Leistung, Energieeffizienz und Flexibilität bei der CPU-Frequenzsteuerung auf MD-Plattformen im Vergleich zum ACPI-CPU-Freak-Treiber.
Q: Wie kann ich den MDP-State-Treiber auf meinem System aktivieren?
A: Der MDP-State-Treiber ist in den neueren Versionen des Linux-Kernels enthalten. Stellen Sie sicher, dass Ihr System den unterstützten MD-Prozessoren entspricht und aktualisieren Sie den Kernel gegebenenfalls.
Q: Gibt es bekannte Probleme oder Einschränkungen des MDP-State-Treibers?
A: Obwohl der MDP-State-Treiber vielversprechend ist, gibt es noch einige Herausforderungen und Optimierungsmöglichkeiten, insbesondere bei bestimmten Benchmarks und Spielen. Wir arbeiten daran, diese Probleme in Zukunft zu beheben.
Ressourcen: