Ich möchte Laufzeiten für dichte lineare Algebraoperationen auf einer bestimmten Architektur unter Verwendung einer bestimmten Bibliothek vorhersagen. Ich möchte ein Modell lernen, das sich der Funktion annähert
Eingabegrößen Laufzeit
für Operationen wie Matrixmultiplizieren, elementweises Addieren, dreieckiges Lösen usw.
Ich vermute, dass diese Laufzeiten aufgrund der Regelmäßigkeit der Vorgänge meistens vorhersehbar sind, sobald Sie die Problemgrößen überschritten haben, die bequem in den Cache passen.
Fragen:
- Ist diese Annahme realistisch? Ist die Laufzeitfunktion wahrscheinlich nahezu deterministisch?
- Kann ich davon ausgehen, dass diese Funktion in der Größe der Eingänge polynomisch ist? (dh ich erwarte, dass eine dichte Matrixmultiplikation ungefähr so aussieht wie für und einen Skalarkoeffizienten)
- Gibt es irgendwo bereits Arbeiten dazu?
- Mein aktueller Plan ist es, mit einem Regularisierer eine Regression der kleinsten Quadrate . Irgendwelche anderen Vorschläge?
Bearbeiten: Um klar zu sein, suche ich nach Laufzeiten, nicht nach FLOPs oder anderen gängigen Leistungsmetriken. Ich bin bereit, mich auf eine bestimmte Architektur zu beschränken.
quelle
Es gibt viele bereits existierende Arbeiten. Die meisten Entwickler von linearen Algebra-Bibliotheken veröffentlichen Leistungsergebnisse in Form von Gleitkomma-Leistung, die in Laufzeiten umgewandelt werden können.
Wenn Sie beispielsweise nach "DGEMM-Leistung" googeln, erhalten Sie Folgendes: http://math-atlas.sourceforge.net/timing/3_5_10/index.html .
Im Allgemeinen können Sie erwarten, dass die Antworten nicht glatt sind. In der Nähe bestimmter Problemgrößen (die sich auf Cache-Größen beziehen) treten Sprünge oder Spitzen auf. Sie sollten auch Plateaus in Raten und daher linearen Regionen für einen breiten Bereich von Problemgrößen erwarten. Ich erwarte nicht, dass Polynomanpassungen sehr hilfreich sind.
Angesichts eines breit angelegten Benchmarking-Aufwands ist es möglicherweise einfacher, die Ergebnisse zu tabellieren und bei Bedarf zu interpolieren. Was ist dein Ziel?
quelle
DGEMM