Rückseite der Hüllkurvenberechnung für die Geschwindigkeit der Matrixmultiplikationen

317
AatG

Ich versuche, eine Intuition dafür zu entwickeln, wie machbar / skalierbar Algorithmen zum maschinellen Lernen sind. Die dominanten Kosten sind immer Matrixmultiplikationen, aber es scheint keine leicht zugängliche Ressource zu geben, die erklärt, wie die Hüllkurvenberechnungen für die Matrixmultiplikation zu berechnen sind.

Die Spezifikationen der Maschine, die ich verwende: Es verfügt über einen 2,8-GHz-Ivy-Bridge-Vierkernprozessor mit 8 MB gemeinsamem L3-Cache, 5 GT / s Busgeschwindigkeit und 16 GB RAM. Ein Stack-Überlaufeintrag besagt, dass Ivy Bridge 8 DP-Flops / Sekunde hat. Wie kombiniere ich all diese Zahlen, um in Sekundenschnelle eine grobe Schätzung zu erhalten, wie lange es dauern würde, um zwei Matrizen mit doppelter Genauigkeit gegebener Größen zu multiplizieren, vorausgesetzt, die Matrizen und ihr Produkt können alle gleichzeitig im RAM gespeichert werden?

2
Ich kann Ihnen einige Quellen zu diesem Thema geben. [Warum ist die Verarbeitung eines sortierten Arrays schneller als ein unsortiertes Array?] (Http://stackoverflow.com/q/11227809/2651145). Ich gehe davon aus, dass es schwierig ist, die Zeit ohne reale Tests richtig einzuschätzen. Der Hauptfaktor ist das Innenleben der CPU und ihres Caches. Doktoro Reichard vor 10 Jahren 1
Welche Art von Matrizen versuchen Sie zu multiplizieren? Spärlich, dicht, dreieckig? Es gibt viele Algorithmen, die mit diesen Teilmengen ziemlich gut umgehen. Doktoro Reichard vor 10 Jahren 2
Genauer gesagt verwende ich Matlab, um dichte Matrixmultiplikationen zu machen, also versuche ich, die Geschwindigkeit von BLAS abzuschätzen. Ich bin eher daran interessiert zu wissen, ob eine bestimmte Multiplikation weniger als 30 Sekunden dauert, als zu wissen, dass es 6 Sekunden oder weniger dauert. Ich glaube, ich habe es herausgefunden. AatG vor 10 Jahren 0

0 Antworten auf die Frage