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.