Multi-Core-Programmierung Das Optimum herausholen

Hardware-Plattformmodell

In den Hardware-Plattformmodellen werden nicht nur die Cores, sondern die komplette Plattform beschrieben. Also neben den verschiedenen Verarbeitungselementen wie ARM, RISC-V, Beschleuniger-Hardware auch die Speicherhierarchie, wie groß der jeweilige Speicher ist, wie die verschiedenen Cores miteinander kommunizieren, wie die Kommunikations-Fabric aussieht, wie die Spannungs-/Frequenz-Domänen verteilt sind etc. Odendahl: »Diese Beschreibung ist nicht auf Chip-­Ebene beschränkt, sondern damit können auch ganze Cluster beschrieben werden.«

Silexica arbeitet mit der Multicore Association zusammen, um die Beschreibung als SHIM-Standard (SHIM: Software/Hardware Interface for Multicore/Manycore) zu etablieren. Das Hauptziel von SHIM ist es, einen Architekturbeschreibungsstandard zu definieren, der für den Softwareentwurf nützlich ist (analog zum Hardwarebeschreibungsformat IP-XACT, das für den Hardwareentwurf verwendet wird). Odendahl: »Silexica hat viel Erfahrung in der abstrakten Hardware-Modellierung, was sich in einem eigenen automatisierten Software-Modellierungs-Tool für Multicore-Softwareentwickler und HW/SW-Systemarchitekten widerspiegelt.« Er ist überzeugt, dass SHIM 2.0 dank erweiterter Funktionen eine genauere Leistungsabschätzung möglich macht und in der Lage ist, modernste Prozessoren einschließlich heterogener Funktionseinheiten, Pipeline-Effekte und 32-bit- bzw. 64-bit- und Single-Instruction-Multiple-Data-Befehle (SIMD) zu modellieren. Odendahl: »Diese Fähigkeit erlaubt es, die Beschreibung von komplexen DSPs, Hardware-Beschleunigern und Softcores zu unterstützen. SHIM 2.0 unterstützt auch eine genauere Modellierung des Stromverbrauchs und ermöglicht die Verwendung verschiedener Spannungen und Frequenzen, die mit einzelnen Prozessoren oder Clustern verbunden sind.« Mittlerweile werden von dem Tool auch die Zynq- und UltraScale+-Bausteine von Xilinx unterstützt. Auch hier kann das Tool Legacy-Code automatisch partitionieren und eine Code-Migration von Plattform zu Plattform und algorithmische Untersuchungen durchführen.

Microprocessor Report

Tom R. Halfhill von der Linley Group hat sich SLX für den Microprocessor Report angesehen. Er erklärt, dass die SLX-Tools am effektivsten sind, wenn sie bereits zu Beginn eines Designs eingesetzt werden, sprich: wenn Hardware und Software noch veränderbar sind. Das Hardware-Design für eine bessere Parallelität zu optimieren könne zu eine großen Leistungssteigerung der Software führen und umgekehrt. Aber auch wenn das Hardware-Design bereits feststeht oder sogar schon im Feld im Einsatz ist, ließen sich mit den Tools immer noch deutliche Leistungssteigerungen realisieren.

Halfhill betont, dass Silexica nicht versucht, bestehende Entwicklungs-Tools für Hardware und Software zu ersetzen. Es ginge auch nicht darum, heutige System-C-Modellierungen oder zyklusgenaue Hardware-Simulatoren zu verdrängen. SLX sei vielmehr eine Sammlung von High-Level-Analyse-Tools. Dank des höheren Abstraktionsniveaus könne Silexica die Design-Effizienz verbessern, besonders wenn die Entwickler viele Alternativen überprüfen müssten.

Auch Halfhill betont, dass in vielen Applikationen existierender Code vorhanden ist, der allerdings für eine sequenzielle Ausführung geschrieben wurde. Es gebe zwar auch andere Anbieter, die Profiling-Tools anbieten, um Hotspots zu finden, Silexica gehe aber mit seiner statischen Analyse des Quellcodes und der dynamischen Analyse des Exe-Files einen Schritt weiter. Außerdem würden diese Analysen auf einem High-Level-, aber Performance-genauen Modell der Systemarchitektur durchgeführt; typische Code-Profiler hätten meistens überhaupt keine oder nur sehr wenig Ahnung von der Zielplattform.

Dieses Modell sei aber entscheidend. In mancher Hinsicht ähnelten sie zyklusgenauen Simulatoren – beispielsweise weil Latenzzeiten für jeden CPU-Befehl angegeben sind. In dem Modell wird auch die Taktgeschwindigkeit und die Leistungsaufnahme der CPU berücksichtigt. Aber in den meisten Punkten ist das Modell mehr wie eine High-Level-Abstraktion, sodass sie schnell verarbeitet werden können und Ergebnisse innerhalb von wenigen Minuten oder Stunden vorliegen. Die Entwickler können die Modelle mithilfe der SLX-Tools selbst erstellen, aber auch die Dienstleistung von Silexica in Anspruch nehmen. Halfhill ist der Überzeugung, dass die erstellten Modelle die Zielplattformen in einer vernünftigen Genauigkeit widerspiegeln. Halfhill ist überzeugt, dass SLX ein Produkt ist, das sorgfältig getestet werden muss, bevor man es lizenziert. Und auch wenn die Evaluation Zeit und Aufwand bedeute, würden die damit erreichbaren Verbesserungen bei der Performance und die Senkung der Entwicklungskosten und der BoM des Endprodukts den Aufwand rechtfertigen.