Hallo, die Tatsache, dass Float-Operationen etwas aufwendig sind, suggeriert doch, dass es sinnvoll sein könnte Rechner zu bauen, die Pseudofloat unterstützen. Dabei wird der Exponent nicht bei jeder Operation angepasst oder beachtet. Die Mantisse bewegt sich zwischen 0 und 1 statt 1 und 2. Entsprechende Maschinenbefehle sind zur Exponentenkorrektur vorhanden. Um die Beachtung des Exponenten bei Additionen wegzuoptimieren, können Registerbänke/Vektoren mit gemeinsamen Exponenten versehen werden. Multiplikationen bewerten die Mantisse als Ganzzahl. Das Ergebnis ist von doppelter Bitbreite (MUL-/DIV-Ergebnisregister) und der Exponent wird einfach durch Addition berechnet. Bei geeigneter Vorausrichtung können mehrere Multiplikationen aufeinander folgen und die Exponentenanpassung am Ende erfolgen. Für die Darstellung von Matrizen werden nur die Mantissen als Elemente der Matrix gespeichert. Es wird jeweils ein Exponent je Spalte und ein Exponent je Zeile verwendet. Das wäre evtl. ein Kompromiss zwischen Weglassen kleiner Werte (schwache Besetzung) und vollständiger Float-Speicherung. Diese verlustbehaftete Speicherung (Genauigkeit) bringt zwar auf dem ersten Blick einen Effizienzgewinn, erschwert jedoch den Einsatz effizienter Matrixmultiplikationsalgorithmen (z. B. Strassen) mit geringerer numerischer Stabilität. Welche Ansätze gibt es in diese Richtung? Existieren Pseudo-Float DSP/Vektor-/Matrix-Rechner? (Beispiele?) Was existiert an Software, wissenschaftlichen Veröffentlichungen oder Diskussionen dazu?
Insbesondere digitale Signalprozessoren kennen das Q-Format: https://en.wikipedia.org/wiki/Q_(number_format)
Stefan H. schrieb: > Um die Beachtung des Exponenten bei Additionen wegzuoptimieren, können > Registerbänke/Vektoren mit gemeinsamen Exponenten versehen werden. Das wird so z.B. bei manchen Audio-DSPs in Hoergeraeten gemacht (Block Floating Point), oder auch bei der Quantisierung von Radardaten (Block Adaptive Quantization). Fuer die meisten praktischen Anwendungen ist das allerdings zu viel Gebastel, lieber spendiert man gleich ein paar Bits mehr oder verwendet gleich eine FPU.
:
Bearbeitet durch Admin
Kriegen denn die Compiler das nicht hin, das zu automatisieren?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.