CPU Features: Google gibt Code zur CPU-Funktionsanalyse frei
Verschiedene CPU-Generationen und Architekturen haben verschiedene Fähigkeiten und unterstützen unterschiedliche Befehle. Vor allem bei Anwendungen, die eine bestimmte Leistung erfordern, ist es deshalb sinnvoll zur Laufzeit das Verhalten des Programms zu ändern, je nach dem, ob etwa FMA-, SSE2-, oder auch AVX-Befehle verfügbar sind. Genau diese Abfrage will Google nun vereinfachen, wie das Unternehmen in seinem Open-Source-Blog(öffnet im neuen Fenster) schreibt.
Google hat dazu die Bibliothek mit dem sprechenden Namen cpu_features auf Github(öffnet im neuen Fenster) als Open Source veröffentlicht. Diese soll dafür genutzt werden, die Fähigkeiten einer CPU zu erkennen, um in eigenen Programmen zur Laufzeit darauf aufbauen zu können. Die Bibliothek geht dabei deutlich über das bloße Erkennen der CPU-Generation hinaus und soll "verzweifelte Maßnahmen wie das Auslesen /proc/cpuinfo" unnötig machen.
Um möglichst breit eingesetzt werden zu können und maximale Portierbarkeit zu gewährleisten, ist die Bibliothek in dem C89-Standard geschrieben, den im Prinzip jeder C-Compiler für jede Plattform verstehen sollte. Darüber hinaus kommt die Bibliothek komplett ohne eine vergleichsweise rechenintensive Speicherzuweisung aus.
Derzeit unterstützt werden die CPU-Architekturen x86, ARM sowie die 64-Bit-Variante von ARM, die auch als AArch64 bezeichnet wird, sowie MIPS. Das Auslesen der CPU-Funktionen geschieht dabei entweder über den CPUID-Befehl oder die von Linux-Kernel bereitgestellten Informationen. Für x86 kann die Bibliothek auch unter Windows genutzt werden. Noch nicht implementiert, aber zumindest laut Beschreibung geplant, ist die Unterstützung der Power-Architektur.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.