DE112019001799T5 - Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit - Google Patents

Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit Download PDF

Info

Publication number
DE112019001799T5
DE112019001799T5 DE112019001799.3T DE112019001799T DE112019001799T5 DE 112019001799 T5 DE112019001799 T5 DE 112019001799T5 DE 112019001799 T DE112019001799 T DE 112019001799T DE 112019001799 T5 DE112019001799 T5 DE 112019001799T5
Authority
DE
Germany
Prior art keywords
floating point
point number
format
number format
numbers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019001799.3T
Other languages
English (en)
Inventor
Silvia Melitta Mueller
Ankur Agrawal
Bruce Fleischer
Kailash Gopalakrishnan
Dongsoo Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019001799T5 publication Critical patent/DE112019001799T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49968Rounding towards positive infinity

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

Techniken zum Ausführen von Operationen an und Berechnen von binären Gleitkommazahlen mit einem erweiterten Gleitkomma-Zahlenformat werden vorgestellt. Das erweiterte Format kann ein einziges Vorzeichenbit, sechs Bits für den Exponenten und neun Bits für den Bruchteil aufweisen. Durch die Verwendung von sechs Bits für den Exponenten kann ein erweiterter Exponentenbereich bereitgestellt werden, der wünschenswerterweise die schnelle Konvergenz von rechenintensiven Algorithmen und geringe Fehlerraten für rechenintensive Anwendungen ermöglicht. Das erweiterte Format kann eine festgelegte Definition für die niedrigste Binade verwenden, damit die niedrigste Binade für Null und normale Zahlen verwendet werden kann; und eine festgelegte Definition für die höchste Binade, damit diese strukturiert werden kann, um einen Datenpunkt zu haben, der für ein zusammengeführtes Nichtzahl-(NaN)/Unendlich-Symbol verwendet werden kann, sowie übrige Datenpunkte, die für endliche Zahlen verwendet werden. Die Vorzeichen von Null und die zusammengeführte NaN/Unendlich können „Don't-care“-Terme sein. Das erweiterte Format verwendet nur einen Rundungsmodus zum Aufrunden auf die nächste Stelle.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung bezieht sich auf ein Formatieren von Gleitkommazahlen.
  • KURZDARSTELLUNG
  • Im Folgenden wird eine Kurzdarstellung vorgestellt, um ein grundlegendes Verständnis einer oder mehrerer Ausführungsformen des offenbarten Gegenstands bereitzustellen. Diese Kurzdarstellung soll nicht dazu dienen, Schlüsselelemente oder kritische Elemente aufzuzeigen oder den Umfang der einzelnen Ausführungsformen oder den Umfang der Ansprüche zu begrenzen. Der einzige Zweck besteht darin, Konzepte in vereinfachter Form als Einleitung zu der ausführlicheren Beschreibung darzustellen, die später vorgestellt wird. In einer oder mehreren hierin beschriebenen Ausführungsformen werden Systeme, Einheiten, Strukturen, durch einen Computer implementierte Verfahren, Vorrichtungen und/oder Computerprogrammprodukte bereitgestellt, die ein Bilden elektronischer Einheiten ermöglichen können, die spiralförmig leitende Strukturen aufweisen.
  • Gemäß einer Ausführungsform kann ein System einen Speicher aufweisen, der durch einen Computer ausführbare Komponenten speichert; und einen Prozessor, der funktionsmäßig mit dem Speicher verbunden ist, der durch einen Computer ausführbare Komponenten ausführt. Die durch einen Computer ausführbaren Komponenten können eine Rechnerkomponente aufweisen, die ein Ausführen von Operationen an binären Gleitkommazahlen und deren Berechnen durch den Prozessor entsprechend einem definierten Gleitkomma-Zahlenformat in Verbindung mit der Ausführung einer Anwendung ermöglicht, wobei das definierte Gleitkomma-Zahlenformat sechs Bits in einem Exponentenfeld verwendet.
  • Eine weitere Ausführungsform bezieht sich auf ein durch einen Computer implementiertes Verfahren, das ein Erzeugen entsprechender numerischer Felder in einem definierten Gleitkomma-Zahlenformat durch ein funktionsmäßig mit einem Prozessor verbundenes System aufweisen kann, wobei die entsprechenden numerischen Felder ein Vorzeichenfeld, ein Exponentenfeld und ein Mantissenfeld aufweisen, wobei das definierte Gleitkomma-Zahlenformat sechs Bits im Exponentenfeld verwendet. Das Verfahren kann ferner ein Berechnen von binären Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat durch das System in Verbindung mit der Ausführung einer Anwendung aufweisen.
  • Eine weitere Ausführungsform bezieht sich auf ein Computerprogrammprodukt, das ein Berechnen von Gleitkommazahlen ermöglicht, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen aufweist. Die Programmanweisungen können von einem Prozessor ausgeführt werden, um den Prozessor zu veranlassen, entsprechende Felder in einem definierten Gleitkomma-Zahlenformat zu erzeugen, wobei die entsprechenden Felder ein Vorzeichenfeld, ein Exponentenfeld und ein Bruchteilfeld aufweisen, wobei das definierte Gleitkomma-Zahlenformat sechs Bits für den Exponenten in dem Exponentenfeld enthält. Die Programmanweisungen können des Weiteren von dem Prozessor ausgeführt werden, um den Prozessor zu veranlassen, die Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat in Verbindung mit der Verwendung einer Anwendung zu berechnen.
  • Noch eine weitere Ausführungsform bezieht sich auf ein durch einen Computer implementiertes Verfahren, das ein Erzeugen entsprechender numerischer Felder in einem definierten Gleitkomma-Zahlenformat durch ein funktionsmäßig mit einem Prozessor verbundenes System aufweisen kann, wobei die entsprechenden numerischen Felder ein Vorzeichenfeld, ein Exponentenfeld und ein Bruchteilfeld aufweisen. Das Verfahren kann auch ein Berechnen von binären Gleitkommazahlen durch das System entsprechend dem definierten Gleitkomma-Zahlenformat in Verbindung mit der Ausführung einer Anwendung aufweisen, wobei das definierte Gleitkomma-Zahlenformat eine Binade verwendet, um Null und normale Zahlen darzustellen, wobei die Binade Bitwerten von Bits des Exponentenfeldes zugehörig ist, das aus Nullen besteht.
  • Diese und andere Merkmale ergeben sich anhand der folgenden ausführlichen Beschreibung veranschaulichender Ausführungsformen, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • Figurenliste
    • 1 veranschaulicht in einem Blockschaubild ein beispielhaftes, nichteinschränkendes System, das gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands verwendet werden kann, um mit einem erweiterten Gleitkomma-Zahlenformat Operationen an Gleitkommazahlen auszuführen, diese zu erzeugen und/oder zu berechnen.
    • 2 zeigt ein Blockschaubild einer beispielhaften erweiterten Bitstruktur des erweiterten Gleitkomma-Zahlenformats gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands.
    • 3 stellt ein Schaubild einer beispielhaften Zahlengerade dar, das die Positionen von denormalen Zahlen und normalen Zahlen entlang der Zahlengerade veranschaulichen kann, wenn denormale Zahlen in einem Gleitkomma-Zahlenformat gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands verwendet werden.
    • 4 zeigt ein beispielhaftes Diagramm der Leistungsergebnisse in Bezug auf Spracherkennung gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands.
    • 5 veranschaulicht ein beispielhaftes Diagramm der Leistungsergebnisse in Bezug auf Bilderkennung gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands.
    • 6 zeigt ein beispielhaftes Diagramm der Leistungsergebnisse in Bezug auf Shakespeare-Texterzeugung gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands.
    • 7 zeigt ein Blockschaubild eines beispielhaften, nichteinschränkenden Systems, das gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands Rechensteuerkomponenten mit geringerer Genauigkeit für einen ersten Teil von Berechnungen verwenden kann, um Gleitkommazahlen mit einem erweiterten Gleitkomma-Zahlenformat zu erzeugen oder zu berechnen, und das Rechensteuerkomponenten mit höherer Genauigkeit für einen zweiten Teil von Berechnungen verwenden kann.
    • 8 veranschaulicht einen Ablaufplan eines beispielhaften, nichteinschränkenden Verfahrens zum Ausführen von Operationen, darunter Berechnungen, an Daten mit einem erweiterten Gleitkomma-Zahlenformat gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands.
    • 9 zeigt einen Ablaufplan eines anderen beispielhaften, nichteinschränkenden Verfahrens zum Ausführen von Operationen, darunter Berechnungen, an Daten mit einem erweiterten Gleitkomma-Zahlenformat gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands.
    • 10 veranschaulicht ein Blockschaubild einer beispielhaften, nichteinschränkenden Betriebsumgebung, in der eine oder mehrere der hierin beschriebenen Ausführungsformen ermöglicht werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende ausführliche Beschreibung dient lediglich zur Veranschaulichung und soll Ausführungsformen und/oder Anwendungen oder Verwendungen von Ausführungsformen nicht beschränken. Darüber hinaus sind ausdrückliche oder implizite Informationen, die in den vorangegangenen Abschnitten „Hintergrund“ oder „Kurzdarstellung“ oder im Abschnitt „Ausführliche Beschreibung“ enthalten sind, nicht bindend zu verstehen.
  • Im Folgenden werden eine oder mehrere Ausführungsformen mit Bezug auf die Zeichnungen beschrieben, in denen durchgängig gleiche Bezugszeichen verwendet werden, um gleiche Elemente zu kennzeichnen. In der folgenden Beschreibung werden zur Erläuterung zahlreiche spezifische Einzelheiten dargelegt, um ein besseres Verständnis der einen oder mehreren Ausführungsformen bereitzustellen. Es ist jedoch in verschiedenen Fällen offensichtlich, dass die eine oder die mehreren Ausführungsformen ohne diese spezifischen Einzelheiten ausgeführt werden können.
  • Bestimmte Arten von Anwendungen wie zum Beispiel Anwendungen für tiefes Lernen können Arbeitslasten aufweisen, die in Bezug auf die Ressourcen anspruchsvoll sein können (z.B. rechnerisch anspruchsvoll sein können). Ein Trainieren von tiefen Netzwerken kann zum Beispiel selbst bei Systemen, die mehrere Grafikverarbeitungseinheiten (graphics processing unit, GPU) aufweisen, einen erheblichen Zeitaufwand (z. B. mehrere Tage oder Wochen) erfordern. Es kann sehr lange dauern (z.B. Wochen), bis die Trainingsalgorithmen für einige Bezugswerte für tiefes Lernen auf Systemen mit mehreren GPUs konvergieren.
  • Um diese Arten von Anwendungen erheblich zu beschleunigen, können spezialisierte Beschleuniger zweckdienlich sein. Solche spezialisierten Beschleuniger, die eine relativ große Durchsatzdichte für Gleitkommaberechnungen sowohl in Bezug auf die Fläche (z.B. Durchsatz/Millimeter2 (mm2)) als auch auf die Leistung (Durchsatz/Watt) bereitstellen können, können für zukünftige Systeme für tiefes Lernen durchaus zweckdienlich sein.
  • Darstellungen mit doppelter (z.B. 64 Bit) und einfacher (z.B. 32 Bit) Genauigkeit für Arbeitslasten des Cognitive Computing zu verwenden, kann unnötig und ineffizient sein. Eine Möglichkeit, die Maßzahlen sowohl für die Inanspruchnahme von Fläche als auch für die Leistungsaufnahme im Hinblick auf hohe Datenverarbeitungslasten wie Arbeitslasten des Cognitive Computing zu verbessern, kann darin bestehen, Gleitkommadarstellungen mit kleineren Bitbreiten zu verwenden, um die meisten Berechnungen durchzuführen. Ein relativ kleiner Teil der Berechnungen wie Berechnungen, die vergleichsweise anfällig für Rundungsfehler sein können, können beispielsweise mit dem Format mit einfacher Genauigkeit durchgeführt werden, während die meisten Berechnungen (z.B. Berechnungen, die nicht besonders anfällig für Rundungsfehler sind) mit einem Format mit geringerer Genauigkeit (z.B. 16 Bit) durchgeführt werden können. Eine solche Aufteilung der Berechnungen zwischen dem Format mit einfacher Genauigkeit und dem Format mit geringerer Genauigkeit kann es ermöglichen, eine wünschenswerte Anzahl (z.B. viele) von Steuerkomponenten mit geringerer Genauigkeit (z.B. durch Verwenden eines Formats mit geringerer Genauigkeit) und eine relativ kleine Anzahl von Steuerkomponenten mit höherer Genauigkeit (z.B. durch Verwenden eines Formats mit höherer (z.B. einfacher) Genauigkeit) zu verwenden.
  • Eine Möglichkeit, ein Format mit geringerer Genauigkeit (z.B. 16 Bit) zu strukturieren, ist ein 1/5/10-Format (z.B. IEEE 754, Format mit halber Genauigkeit (1/5/10)), das ein einziges Vorzeichenbit, einen 5-Bit-Exponenten und eine 10-Bit-Mantisse haben kann, die als Datenaustauschformat verwendet werden können. Das 1/5/10-Format kann jedoch für Anwendungen mit einer erheblichen Zahl von Berechnungen ungeeignet sein, insbesondere für das Trainieren von tiefen neuronalen Netzwerken, da dieses Format einen relativ begrenzten dynamischen Bereich haben kann. Wenn die kritischeren Berechnungen (z.B. Berechnungen, die anfällig für Rundungsfehler sind) mit dem Format mit einfacher Genauigkeit durchgeführt werden, und die meisten Berechnungen mit dem 1/5/10-Format durchgeführt werden, ist die Qualität des trainierten Netzwerks im Vergleich zu den Grundwerten einer Reihe von Vergleichsanwendungen erheblich geringer. Wenn für die meisten Berechnungen zum Beispiel ein 1/5/10-Format während des Trainings verwendet wurde, fiel die Genauigkeit im Fall des Watson Natural Language Trainings unter einen Bezugswert von 60 % in Bezug auf die Eignung (dies bedeutet z.B., dass die Genauigkeit nicht geeignet war), und im Fall des AlexNet Image Classification Trainings konvergierten die Berechnungen überhaupt nicht.
  • Für eine verbesserte Durchsatzdichte kann es jedoch wünschenswert sein, Gleitkomma-Arithmetik mit geringerer Genauigkeit (z.B. 16 Bit) zu verwenden. Damit ein Gleitkomma-Zahlenformat mit geringerer Genauigkeit jedoch verwendet werden kann (z.B. bei Anwendungen mit einer erheblichen Anzahl von Berechnungen wie beim Training tiefer neuronaler Netzwerke und anderem Training für tiefes Lernen), kann es wünschenswert sein, dass das Gleitkomma-Zahlenformat mit geringerer Genauigkeit die Konvergenz der Programme und Algorithmen, die mit rechenintensiven Anwendungen verbunden sind, schnell genug ermöglicht und für ausreichend kleine Fehlerraten für rechenintensive Anwendungen wie zum Beispiel maschinelles Training und Trainingsaufgaben für tiefes Lernen sorgt.
  • Die hierin beschriebenen verschiedenen Ausführungsformen beziehen sich auf ein Ausführen von Operationen an, Erzeugen und Berechnen von Gleitkommazahlen (z.B. binären Gleitkommazahlen) mithilfe eines erweiterten Gleitkomma-Zahlenformats (z.B. eines erweiterten Gleitkomma-Zahlenformats mit geringerer Genauigkeit). Das erweiterte Gleitkomma-Zahlenformat kann für einen großen Bereich von maschinellem Training und Trainingsaufgaben für tiefes Lernen ausreichen und eine flächen- und leistungseffiziente Implementierung einer 16-Bit-Fused-Multiply-Add-Gleitkommaeinheit (einer 16-Bit-Fused-Multiply-Add-FPU) ermöglichen. Das erweiterte Gleitkomma-Zahlenformat (z.B. das erweiterte Gleitkomma-Zahlenformat mit geringerer Genauigkeit (z.B. 16 Bit)) kann ein 1/6/9-Format haben, das ein einziges Vorzeichenbit, einen 6-Bit-Exponenten und eine 9-Bit-Mantisse aufweisen kann, die sowohl als arithmetisches Rechenformat als auch als Datenaustauschformat verwendet werden können. Im Vergleich zu einem 1/5/10-Format kann das erweiterte Gleitkomma-Zahlenformat ein Exponentenbit mehr haben, und der Bruchteil kann ein Bit weniger sein. Die sechs Bits für den Exponenten mit dem zusätzlichen (z.B. 6.) Exponentenbit des erweiterten Gleitkomma-Zahlenformats können einen zusätzlichen Exponentenbereich bereitstellen, der wünschenswert sein kann, damit Algorithmen für maschinelles Training und Training für tiefes Lernen ausreichend schnell konvergieren, und das erweiterte Gleitkomma-Zahlenformat kann auch wünschenswert geringe Fehlerraten für rechenintensive Anwendungen wie maschinelles Training und Anwendungen für tiefes Lernen und zugehörige Aufgaben haben.
  • Das erweiterte Gleitkomma-Zahlenformat kann ferner eine festgelegte Definition für die niedrigste Binade verwenden (z.B. Datenpunkte, deren Exponentenfeld ausschließlich aus Nullen besteht). Andere Gleitkomma-Zahlenformate (z.B. Gleitkomma-Zahlenformate mit geringerer Genauigkeit) wie das 1/5/10-Format können die niedrigste Binade für subnormale Zahlen und Null verwenden. Gemäß der festgelegten Definition der niedrigsten Binade in dem erweiterten Gleitkomma-Zahlenformat kann die niedrigste Binade dagegen für Null und normale Zahlen verwenden werden. Da das Exponentenfeld des erweiterten Gleitkomma-Zahlenformats ein Bit breiter ist als das 1/5/10-Format, kann das erweiterte Gleitkomma-Zahlenformat (z.B. 1/6/9-Format) selbst bei normalen Zahlen in der letzten Binade näher an einem Wert von 0 liegen, als das 1/5/10-Format dies bei subnormalen Zahlen kann. Die Hardware-Unterstützung für subnormale Zahlen kann relativ kostspielig sein und die Tiefe (z.B. die gesamte Gate-Verzögerung) einer typischen Fused-Multiply-Added-Gleitkommaeinheit erhöhen. Indem die festgelegte Definition für die niedrigste Binade verwendet wird, kann durch den offenbarten Gegenstand vermieden werden, dass subnormale Zahlen verwendet werden, was dazu führen kann, dass der offenbarte Gegenstand im Hinblick auf Hardware-Nutzung und -Unterstützung effizienter ist, und es kann vermieden werden, dass die Tiefe (z.B. die gesamte Gate-Verzögerung) einer 16-Bit-Fused-Multiply-Add-FPU im Vergleich zu anderen Formaten wie dem 1/5/10-Format erhöht wird.
  • Das erweiterte Gleitkomma-Zahlenformat kann ferner eine festgelegte Definition für die höchste Binade verwenden (z.B. Datenpunkte, deren Exponentenfeld ausschließlich aus Einsen besteht). Bestimmte andere Gleitkomma-Zahlenformate verwenden die höchste Binade nur für besondere Werte wie Nichtzahl (not-a-number, NaN) und Unendlich. Im Gegensatz dazu kann in einigen Ausführungsformen entsprechend der festgelegten Definition der höchsten Binade im erweiterten Gleitkomma-Zahlenformat ein gewünschter Teil (z.B. der größte Teil) der höchsten Binade für endliche Zahlen verwendet werden, und ein Datenpunkt der höchsten Binade kann für besondere Werte wie NaN und Unendlich (z.B. zusammengeführte NaN/Unendlich) verwendet werden. Das erweiterte Gleitkomma-Zahlenformat kann durch die Verwendung dieser festgelegten Definition für die höchste Binade einen vergleichsweise größeren Datenbereich ermöglichen und im Vergleich zu anderen Gleitkomma-Zahlenformaten (z.B. Gleitkomma-Zahlenformate mit geringerer Genauigkeit) wie dem 1/5/10-Format vergleichsweise weniger komplexe Hardware nutzen, da die für das erweiterte Gleitkomma-Zahlenformat verwendete Logik unter anderem nicht zwischen den NaN- und Unendlich-Werten unterscheiden muss.
  • In einigen Ausführungsformen kann das erweiterte Gleitkomma-Zahlenformat das Vorzeichen von Null als „Don't-care“-Term definieren, was den Umgang mit dem Vorzeichen von Null im Vergleich zu anderen Gleitkomma-Zahlenformaten wie dem 1/5/10-Format weniger komplex machen kann. Andere Formate wie zum Beispiel das 1/5/10-Format können vergleichsweise komplizierte Regeln haben, wie man das Vorzeichen von Null erhält. Für viele Anwendungen wie beispielsweise Anwendungen für tiefes Lernen spielt das Vorzeichen von Null jedoch keine Rolle. Das erweiterte Gleitkomma-Zahlenformat kann berücksichtigen, dass das Vorzeichen von Null bei solchen Anwendungen keine Rolle spielt, wobei im erweiterten Gleitkomma-Zahlenformat das Vorzeichen von Null ein „Don't-care“-Term sein kann. Wenn eine Gleitkommazahl zum Beispiel Null ist, kann ein beliebiger Wert für das Vorzeichenfeld erzeugt werden (z.B. von einer Prozessorkomponente oder Rechnerkomponente), um den Term oder das Symbol für das Vorzeichen des Wertes von Null darzustellen. Beliebige Werte oder Symbole, die für das System (z.B. die Prozessorkomponente oder Rechnerkomponente) praktisch oder effizient (z.B. am praktischsten oder effizientesten) zu erzeugen sind, können erzeugt und in das Vorzeichenfeld eingefügt werden. Dadurch kann die im Zusammenhang mit dem erweiterten Gleitkomma-Zahlenformat verwendete Hardware und Logik vergleichsweise weniger komplex sein, und es können weniger Hardware und Hardware-Ressourcen (und weniger Logik-Ressourcen) verwendet werden als im Fall der Hardware, die für andere Gleitkomma-Zahlenformaten (z.B. das 1/5/10-Format) verwendet wird.
  • In bestimmten Ausführungsformen kann das erweiterte Gleitkomma-Zahlenformat das Vorzeichen des zusammengeführten NaN/Unendlich-Symbols als „Don't-care“-Term definieren, was den Umgang mit dem Vorzeichen des zusammengeführten NaN/Unendlich-Symbols im Vergleich dazu, wie mit dem Vorzeichen von NaN und Unendlich in anderen Formaten (z.B. dem 1/5/10-Format) umgegangen wird, vergleichsweise weniger komplex machen kann. Bestimmte andere Formate können zum Beispiel vergleichsweise komplizierte Regeln haben, wie man das Vorzeichen von NaN und Unendlich erhält, insbesondere für Additions/Subtraktions- und Multiplikations/Additions-Operationen. Für viele Anwendungen, darunter Anwendungen für tiefes Lernen, spielt das Vorzeichen von NaN und Unendlich jedoch keine Rolle. Wenn dies der Fall ist, kann das Vorzeichen des zusammengeführten NaN/Unendlich-Symbols im erweiterten Gleitkomma-Zahlenformat ein „Don't care“-Term sein. Wenn eine Gleitkommazahl zum Beispiel NaN oder Unendlich ist, kann ein beliebiger Wert für das Vorzeichenfeld erzeugt werden (z.B. von einer Prozessorkomponente oder Rechnerkomponente), um den Term oder das Symbol für das Vorzeichen des zusammengeführten NaN/Unendlich-Symbols darzustellen. Beliebige Werte oder Symbole, die für das System (z.B. die Prozessorkomponente oder Rechnerkomponente) praktisch oder effizient (z.B. am praktischsten oder effizientesten) zu erzeugen sind, können erzeugt und in das Vorzeichenfeld eingefügt werden, das dem zusammengeführten NaN/Unendlich-Symbol zugehörig ist. Dadurch kann die im Zusammenhang mit dem erweiterten Gleitkomma-Zahlenformat verwendete Hardware und Logik vergleichsweise weniger komplex sein, und es können weniger Hardware und Hardware-Ressourcen (und weniger Logik-Ressourcen) verwendet werden als im Fall der Hardware, die für andere Formate (z.B. das 1/5/10-Format) verwendet wird.
  • Das erweiterte Gleitkomma-Zahlenformat kann auch einen Rundungsmodus verwenden, der weniger komplex zu implementieren sein kann als die Rundungsmodi, die von anderen Arten von Formaten wie dem 1/5/10-Format verwendet werden. Das erweiterte Gleitkomma-Zahlenformat kann beispielsweise einen einzigen Rundungsmodus verwenden, bei dem auf die nächste Stelle aufgerundet werden kann. Einige andere Arten von Formaten (z.B. das 1/5/10-Format) können komplexere Rundungsmodi verwenden wie Aufrunden auf die nächste Stelle, Abrunden auf die nächste Stelle oder Runden auf Gerade, Runden auf 0, Runden auf +Unendlich und Runden auf -Unendlich. Die Verwendung eines einzigen und vergleichsweise weniger komplexen Rundungsmodus wie des Rundungsmodus „auf die nächste Stelle aufrunden“ durch das erweiterte Gleitkomma-Zahlenformat kann keine oder zumindest praktisch keine Auswirkungen auf die Leistung von Arbeitslasten haben, darunter die Geschwindigkeit der Leistung und die Qualität des Trainings von Systemen (z.B. maschinelles Training oder Training für tiefes Lernen), während gleichzeitig der Umfang der für die Rundung von Gleitkommazahlen verwendeten Hardware und Logik erheblich verringert wird.
  • Diese und andere Aspekte und Ausführungsformen des offenbarten Gegenstands werden nunmehr nachstehend in Bezug auf die Zeichnungen beschrieben.
  • 1 veranschaulicht in einem Blockschaubild ein beispielhaftes, nichteinschränkendes System 100, das gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands verwendet werden kann, um mit einem erweiterten Gleitkomma-Zahlenformat Operationen an Gleitkommazahlen auszuführen, diese zu erzeugen und/oder zu berechnen. Das erweiterte Gleitkomma-Zahlenformat des Systems 100 kann für einen großen Bereich von maschinellem Lernen oder Trainingsaufgaben für tiefes Lernen ausreichen und eine flächen- und leistungseffiziente Implementierung einer 16-Bit-Fused-Multiply-Add-Gleitkommaeinheit (einer 16-Bit-Fused-Multiply-Add-FPU) ermöglichen. Gemäß verschiedenen Ausführungsformen kann das System 100 eine oder mehrere 16-Bit-Fused-Multiply-Add-FPUs aufweisen, Teil davon sein oder diesen zugehörig sein.
  • Das erweiterte Gleitkomma-Zahlenformat (z.B. das erweiterte Gleitkomma-Zahlenformat mit geringerer Genauigkeit (z.B. 16 Bit)) kann ein 1/6/9-Format aufweisen, das ein einziges Vorzeichenbit, einen 6-Bit-Exponenten und eine 9-Bit-Mantisse haben kann, die sowohl als arithmetisches Rechenformat als auch als Datenaustauschformat verwendet werden können. Mithilfe der sechs Bits für den Exponenten (z.B. im Gegensatz zu fünf Bits für den Exponenten) kann das erweiterte Gleitkomma-Zahlenformat einen zusätzlichen Exponentenbereich bereitstellen, der wünschenswert sein kann, damit Algorithmen für maschinelles Lernen, Trainingsalgorithmen für tiefes Lernen und/oder andere rechenintensive Algorithmen ausreichend schnell konvergieren, und das erweiterte Gleitkomma-Zahlenformat kann auch wünschenswert geringe Fehlerraten für rechenintensive Anwendungen (z.B. Anwendungen für maschinelles Training oder tiefes Lernen) haben. Andere Aspekte und Ausführungsformen des erweiterten Gleitkomma-Zahlenformats werden hierin ausführlicher beschrieben.
  • Das System 100 kann eine Prozessorkomponente 102 aufweisen, die einem Datenspeicher 104 und einer Rechnerkomponente 106 zugehörig sein kann. Die Prozessorkomponente 102 kann zusammen mit den anderen Komponenten (z.B. dem Datenspeicher 104, der Rechnerkomponente 106 usw.) arbeiten, damit die verschiedenen Funktionen des Systems 100 durchgeführt werden können. Die Prozessorkomponente 102 kann einen oder mehrere Prozessoren, Mikroprozessoren oder Steuereinheiten verwenden, die Daten wie Informationen im Zusammenhang mit dem erweiterten Gleitkomma-Zahlenformat verarbeiten, Operationen an Gleitkommazahlen ausführen, diese erzeugen und/oder berechnen können, sowie Anwendungen (z.B. Anwendungen für maschinelles Lernen, tiefes Lernen oder Cognitive Computing), Maschinen- oder System-Training, Parameter im Zusammenhang mit Zahlenformatierung oder Berechnungen, Datenverkehrsströme (z.B. zwischen Komponenten oder Einheiten und/oder über ein oder mehrere Netzwerke), Algorithmen (z.B. anwendungsbezogene Algorithmen, Algorithmen für ein erweitertes Formatieren von Gleitkommazahlen, Algorithmus zum Berechnen von Gleitkommazahlen, Algorithmus zum Runden von Zahlen usw.), Protokolle, Richtlinien, Schnittstellen, Werkzeuge und/oder andere Informationen, um die Funktionsweise des Systems 100 wie hierin ausführlicher dargelegt zu ermöglichen und den Datenfluss zwischen Komponenten des Systems 100, den Datenfluss zwischen dem System 100 und anderen Komponenten oder Einheiten (z.B. Computer, Computernetzwerkeinheiten, Datenquellen, Anwendungen usw.) zu steuern, die dem System 100 zugehörig sind. In einigen Ausführungsformen kann die Prozessorkomponente 102 eine oder mehrere FPUs, z.B. eine oder mehrere 16-Bit-Fused-Multiply-Add-FPUs aufweisen.
  • Der Datenspeicher 104 kann Datenstrukturen (z.B. Benutzerdaten, Metadaten), Code-Struktur(en) (z.B. Module, Objekte, Hash-Werte, Klassen, Prozeduren) oder Anweisungen, Informationen im Zusammenhang mit dem erweiterten Gleitkomma-Zahlenformat, Ausführen von Operationen an, Erzeugen und/oder Berechnen von Gleitkommazahlen, Anwendungen (z.B. Anwendungen für maschinelles Lernen, tiefes Lernen oder Cognitive Computing), Maschinen- oder System-Training, Parameter im Zusammenhang mit Zahlenformatierung oder Berechnungen, Datenverkehrsströme, Algorithmen (z.B. anwendungsbezogene Algorithmen, Algorithmen für ein erweitertes Formatieren von Gleitkommazahlen, Algorithmus zum Berechnen von Gleitkommazahlen, Algorithmus zum Runden von Zahlen usw.), Protokolle, Richtlinien, Schnittstellen, Werkzeuge und/oder andere Informationen speichern, damit Operationen in Verbindung mit dem System 100 gesteuert werden können. Bei einem Aspekt kann die Prozessorkomponente 102 funktionsmäßig mit dem Datenspeicher 104 verbunden sein (z.B. über einen Speicherbus oder einen anderen Bus), um Informationen zu speichern und abzurufen, die gewünscht werden, um die Rechnerkomponente 106 und/oder andere Komponenten des Systems 100 und/oder im Wesentlichen jeden anderen Funktionsaspekt des Systems 100 zu betreiben und/oder diesen zumindest teilweise Funktionalität zu übertragen.
  • Die Prozessorkomponente 102 kann ferner einer Programmspeicherkomponente 108 (z.B. über einen oder mehrere Busse) zugehörig sein (z.B. zum Zwecke der Datenübertragung und/oder funktionsmäßig verbunden sein), wobei die Programmspeicherkomponente 108 die Rechnerkomponente 106 aufweisen (z.B. speichern) kann. Die Programmspeicherkomponente 108 kann durch eine Maschine ausführbare (z.B. durch einen Computer ausführbare) Komponenten oder Anweisungen speichern, auf die die Prozessorkomponente 102 zum Ausführen durch die Prozessorkomponente 102 zugreifen kann. Die Prozessorkomponente 102 kann zum Beispiel auf die Rechnerkomponente 106 in der Programmspeicherkomponente 108 zugreifen und die Rechnerkomponente 106 in Verbindung mit der Prozessorkomponente 102 verwenden, um wie hierin ausführlicher beschrieben Operationen an Daten (z.B. binären Gleitkommazahlen) entsprechend dem erweiterten Gleitkomma-Zahlenformat auszuführen.
  • Die Prozessorkomponente 102 und die Rechnerkomponente 106 können beispielsweise zusammenarbeiten (z.B. in Verbindung miteinander arbeiten), um Operationen an Daten auszuführen, darunter Ausführen von Operationen (z.B. Durchführen mathematischer Berechnungen) an, Erzeugen und/oder Berechnen von Gleitkommazahlen (z.B. binären Gleitkommazahlen) entsprechend (z.B. unter Verwenden) des erweiterten Gleitkomma-Zahlenformats (z.B. des 1/6/9-Gleitkomma-Zahlenformats) der Komponente 110 für ein erweitertes Format. In einigen Ausführungsformen können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 mit dem erweiterten Gleitkomma-Zahlenformat der Komponente 110 für ein erweitertes Format Operationen an Gleitkommazahlen ausführen, diese erzeugen und/oder berechnen, um maschinelles Training, Training für tiefes Lernen, Cognitive Computing und/oder andere rechenintensive Aufgaben, Operationen oder Anwendungen zu ermöglichen. Die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 können zum Beispiel mit dem erweiterten Gleitkomma-Zahlenformat Operationen an Gleitkommazahlen ausführen, diese erzeugen und/oder berechnen, damit Ergebnisse erhalten werden können, die sich auf eine Lösung eines Problems (z.B. eines Problems des Cognitive Computing) beziehen können, das in Verbindung mit maschinellem Training oder Training für tiefes Lernen gelöst werden soll. Ein zu lösendes Problem kann sich zum Beispiel auf maschinelles Training, tiefes Lernen, Cognitive Computing, künstliche Intelligenz, neuronale Netzwerke und/oder andere rechenintensive Aufgaben, Probleme oder Anwendungen beziehen. Um einige wenige, nichteinschränkende Beispiele zu nennen, kann sich das Problem auf die Bilderkennung beziehen, um Objekte (z.B. Personen, Orte und/oder Dinge) in einem Bild bzw. Bildern oder einem Video zu erkennen oder zu identifizieren, auf die Spracherkennung, um Wörter und/oder Identitäten von Stimmen in Audioinhalten zu erkennen oder zu identifizieren (z.B. Sprache, Sendung mit Ton, Lied und/oder ein Programm mit Ton), oder Texterkennung, um Textdaten (z.B. Wörter, alphanumerische Zeichen) in Textinhalten (z.B. Buch, Manuskript, eMail oder eine Reihe von Dokumenten usw.) zu erkennen oder zu identifizieren.
  • Die Prozessorkomponente 102 und die Rechnerkomponente 106 können einer oder mehreren Anwendungen (z.B. Anwendungen für maschinelles Training oder tiefes Lernen) zugehörig sein, z.B. der Anwendung 112, um Operationen an Daten in Verbindung mit der bzw. den Anwendung(en) 112 auszuführen. Die Prozessorkomponente 102 und die Rechnerkomponente 106 können beispielsweise Daten von einer Anwendung 112 empfangen, numerische Ergebnisse (z.B. binäre Gleitkommazahlen) erzeugen oder ermitteln (z.B. berechnen), die zumindest teilweise auf den Daten beruhen, und zwar entsprechend dem erweiterten Gleitkomma-Zahlenformat, und können die numerischen Ergebnisse der Anwendung 112 und/oder einem anderen gewünschten Ziel bereitstellen.
  • Mit Bezug kurz auf 2 (zusammen mit 1) zeigt 2 ein Blockschaubild einer beispielhaften, erweiterten Bitstruktur 200 des erweiterten Gleitkomma-Zahlenformats gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands. Die erweiterte Bitstruktur 200 kann ein Vorzeichenfeld 202 aufweisen, das ein Datenbit enthalten kann, das das Vorzeichen der Gleitkommazahl (z.B. der binären Gleitkommazahl) darstellen kann.
  • Die erweiterte Bitstruktur 200 kann ferner ein Exponentenfeld 204 enthalten, das sich neben dem Vorzeichenfeld 202 befinden kann. Das Exponentenfeld 204 kann sechs Datenbits aufweisen, die den Exponenten der Gleitkommazahl darstellen können. Das erweiterte Gleitkomma-Zahlenformat kann durch Verwenden des zusätzlichen (z.B. 6.) Exponentenbits (z.B. im Vergleich zum 1/5/10-Format) einen erweiterten (z.B. besseren oder zusätzlichen) Exponentenbereich bereitstellen, der wünschenswert sein kann, damit Algorithmen für maschinelles Training oder Training für tiefes Lernen (z.B. Algorithmen für maschinelles Training oder tiefes Lernen mit einfacher Genauigkeit (z.B. 32 Bit), die in einem Modus mit halber Genauigkeit (z.B. 16-Bit) ausgeführt werden), ausreichend schnell konvergieren, während gleichzeitig vergleichsweise kleine Fehlerraten für rechenintensive Anwendungen, z.B. Anwendungen für maschinelles Training und tiefes Lernen und zugehörige Aufgaben für maschinelles Training und tiefes Lernen, erreicht werden.
  • Die erweiterte Bitstruktur 200 kann des Weiteren ein Bruchteilfeld (f) 206 enthalten, das sich neben dem Exponentenfeld 204 befinden kann. Das Bruchteilfeld 206 kann neun Datenbits aufweisen, die den Bruchteil (z.B. den Bruchwert) der Gleitkommazahl darstellen können. Die neun Bits im Bruchteil für das erweiterte Gleitkomma-Zahlenformat reichen aus, um die gewünschte Bruchteilgenauigkeit für Algorithmen für maschinelles Training, Algorithmen für tiefes Lernen und/oder andere rechenintensive Algorithmen (z. B. Algorithmen für maschinelles Training, tiefes Lernen oder andere rechenintensive Algorithmen mit einfacher Genauigkeit (z.B. 32 Bit), die in einem Modus mit halber Genauigkeit (z.B. 16 Bit) ausgeführt werden) bereitzustellen, auch wenn die neun Bits im Bruchteil eins weniger sind als im 1/5/10-Format. Es wird ferner darauf hingewiesen, dass, wenn es nur acht Bits im Bruchteil gäbe (z.B. acht Bits im Bruchteil mit sieben Bits im Exponenten), die acht Bits im Bruchteil keine ausreichende Bruchteilgenauigkeit für die Verwendung mit Algorithmen für maschinelles Training oder Algorithmen für tiefes Lernen (z.B. Algorithmen für maschinelles Training oder für tiefes Lernen mit einfacher Genauigkeit, die im Modus mit halber Genauigkeit ausgeführt werden) ohne zumindest einige Änderungen an solchen Algorithmen bereitstellen würden, wenn solche Änderungen der Algorithmen überhaupt möglich wären.
  • Der Wert einer Zahl x=(s,e,f) kann wie folgt definiert werden W e r t ( x ) = ( 1 ) s 2 [ e ] ( i . ) ,
    Figure DE112019001799T5_0001
    wobei [e] der Wert des verschobenen (biased) Exponenten sein kann und (i.f) die binäre Mantisse oder der Signifikant sein kann, wobei f der Bruchteil und i das implizierte Bit ist. Entsprechend dem erweiterten Gleitkomma-Zahlenformat kann der Wert von i für alle endlichen Nichtnull-Zahlen 1 sein (und kann 0 für eine echte Null sein). Mit dem erweiterten Gleitkomma-Zahlenformat, bei dem ein verschobener Exponent verwendet wird, ist es möglich, dass der Exponent durch die Verschiebung als binäre Ganzzahl ohne Vorzeichen dargestellt wird.
  • Tabelle 1 veranschaulicht diverse Unterschiede zwischen dem erweiterten Gleitkomma-Zahlenformat (hierin auch als erweitertes 1/6/9-Format bezeichnet) und dem 1/5/10-Format. TABELLE 1
    1/5/10-Format Erweitertes 1/6/9-Format
    Exponentenfeld 5 Bits 6 Bits
    Exponentenversch iebu ng 15 31
    Kleinster Exponent -14 -31
    Größter Exponent +15 +32
    Kleinste positive Zahl 2-24 2-31 * (1 + 2-9)
    Größte positive Zahl 215(2 - 2-10) 232 * (2 - 2-9)
  • Wie aus Tabelle 1 hervorgeht, ist die kleinste darstellbare positive Zahl 2-31 * (1 + 2-9), wenn das erweiterte Gleitkomma-Zahlenformat der Komponente 110 für ein erweitertes Format verwendet wird, was eine deutlich kleinere Zahl ist als die kleinste positive subnormale Zahl (z.B. 2-24), die mit dem 1/5/10-Format erreicht werden kann. Daher können die Prozessorkomponente 102 und die Rechnerkomponente 106 auch ohne Verwendung von subnormalen Zahlen im erweiterten Gleitkomma-Zahlenformat das erweiterte Gleitkomma-Zahlenformat verwenden, um Zahlen zu erzeugen oder zu berechnen, die deutlich näher am Wert 0 liegen können, als wenn ein 1/5/10-Format verwendet wird. Dies kann es ermöglichen, dass die Konvergenz von Trainingsläufen des maschinellen Lernens (z.B. tiefen Lernens) verbessert wird.
  • In Bezug auf Gleitkommazahlen kann es einen Satz von Binaden geben, wobei eine Binade ein Satz von binären Gleitkommawerten sein kann, wobei jeder der binären Gleitkommawerte eines solchen Satzes denselben Exponenten haben kann. Das erweiterte Gleitkomma-Zahlenformat kann 64 Binaden aufweisen. Die Binaden des erweiterten Gleitkomma-Zahlenformats können eine erste Binade und eine letzte Binade enthalten. Für die erste (z.B. niedrigste) Binade kann das Exponentenfeld 204 ausschließlich aus Nullen bestehen (z.B. jedes der 6 Bits ist eine 0), und für die letzte Binade kann das Exponentenfeld 204 ausschließlich aus Einsen bestehen (z.B. jedes der 6 Bits ist eine 1). Das erweiterte Gleitkomma-Zahlenformat der Komponente 110 für ein erweitertes Format kann jeweils festgelegte Definitionen für die Datenpunkte in der ersten Binade und der letzten Binade verwenden, wobei sich solche festgelegten Definitionen für die Datenpunkte in der ersten Binade und der letzten Binade von Definitionen unterscheiden können, die in Bezug auf Datenpunkte für die erste und letzte Binade anderer Formate wie dem 1/5/10-Format verwendet werden.
  • Die anderen Binaden, die nichtextreme Exponenten haben können (z.B. Exponenten, die nicht ausschließlich aus Einsen oder Nullen bestehen), können zum Darstellen normaler Zahlen verwendet werden. Das implizierte Bit kann eins (i=1) sein, was zu einer Mantisse von 1.f führen kann. Der Exponentenwert des Exponentenfeldes 204 kann als [e] = e - Verschiebung abgeleitet werden. Wie bereits offengelegt, kann sich das erweiterte Gleitkomma-Zahlenformat vom 1/5/10-Format zum Teil dadurch unterscheiden, dass der Exponent im Exponentenfeld 204 um ein Bit breiter ist als im 1/5/10-Format, der Bruchteil im Bruchteilfeld 206 um ein Bit kürzer ist als im 1/5/10-Format, und auch die Verschiebung für das erweiterte Gleitkomma-Zahlformat kann sich vom 1/5/10-Format unterscheiden.
  • Die Verwendung von subnormalen (z.B. denormalen) Zahlen in einem Gleitkomma-Zahlenformat, insbesondere einem Gleitkomma-Zahlenformat mit halber Genauigkeit (z.B. 16 Bit), kann, wie hier ausführlicher dargelegt, ineffizient und/oder relativ kostspielig sein. Mit Bezug kurz auf 3 (zusammen mit den 1 und 2) stellt 3 ein Schaubild einer beispielhaften Zahlengerade 300 dar, das die Positionen von denormalen Zahlen und normalen Zahlen entlang der Zahlengerade veranschaulichen kann, wenn denormale Zahlen in einem Gleitkomma-Zahlenformat gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands verwendet werden. Wie in der Zahlengerade 300 dargestellt, kann bei einem Gleitkomma-Zahlenformat wie einem 32-Bit-Gleitkomma-Zahlenformat (z.B. 1/8/23) ein erster Teilsatz der Zahlen 302, bei denen es sich um denormale Zahlen (Denorme) handeln kann (hierin auch als subnormale Zahlen bezeichnet), von größer 0 bis 2-126 reichen. Im 1/8/23-Format kann es ein einziges Bit für das Vorzeichenfeld, 8 Bits für das Exponentenfeld und 23 Bits für das Bruchteilfeld geben. Der erste Teilsatz der Zahlen 302 kann in einer ersten Binade sein. Wie auch in der Zahlengerade 300 dargestellt, kann ein zweiter Teilsatz der Zahlen 304, bei denen es sich um normale Zahlen handeln kann, aus Zahlen bestehen, die größer als 2-126 sind.
  • Wie hierin offenbart, kann die kleinste darstellbare positive Zahl 2-31 * (1 + 2-9) (z.B. (2-31 * (1 + 2-9)) → 0×0001) mit dem erweiterten Gleitkomma-Zahlenformat sein, was eine wesentlich kleinere Zahl ist als die kleinste positive subnormale Zahl (z.B. 2-24), die mit dem 1/5/10-Format erreicht werden kann. Durch die Verwendung von 6 Bits im Exponentenfeld kann das erweiterte Gleitkomma-Zahlenformat einen Bereich von Zahlenwerten darstellen, die bei der Ausführung einer Anwendung 112 (z.B. einer Anwendung für maschinelles oder tiefes Lernen) erwartet oder prognostiziert werden, ohne dass subnormale Zahlenmodi verwendet werden. Gemäß verschiedenen Ausführungsformen kann das erweiterte Gleitkomma-Zahlenformat dementsprechend die Verwendung von subnormalen (z.B. denormalen) Zahlen unnötig machen. Das erweiterte Gleitkomma-Zahlenformat kann im Vergleich zum 1/5/10-Format tatsächlich einen größeren Bereich von Zahlen darstellen und weist gleichzeitig eine geringere logische Komplexität auf.
  • Im Hinblick auf die niedrigste (z.B. erste) Binade kann das erweiterte Gleitkomma-Zahlenformat eine festgelegte Definition für Datenpunkte der niedrigsten Binade verwenden (z.B. Datenpunkte, bei denen das Exponentenfeld ausschließlich aus Nullen besteht). Nach der festgelegten Definition der niedrigsten Binade im erweiterten Gleitkomma-Zahlenformat können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 die niedrigste Binade für Null und normale Zahlen verwenden, während subnormale Zahlen entfernt werden. Für einen Null-Bruchteil kann der Wert Null sein. Für einen Nichtnull-Bruchteil kann der Wert eine normale Nichtnull-Zahl sein. Wenn die kleinste dargestellte positive Zahl (2-31 * (1 + 2-9)) im Hinblick auf das erweiterte Gleitkomma-Zahlenformat ist, können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 entsprechend dem erweiterten Gleitkomma-Zahlenformat ein Runden von Zahlen, die kleiner als (2-31 *(1 + 2-9)) sind, entweder auf (2-31 * (1 + 2-9)) oder 0 durchführen.
  • Entsprechend dem erweiterten Gleitkomma-Zahlenformat kann das Vorzeichen auch ignoriert werden, wodurch Hardware-Implementierungen weniger komplex und effizienter sein können als andere Systeme oder Einheiten, die andere Gleitkomma-Zahlenformate (z.B. das 1/5/10-Format) verwenden. Wenn die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 zum Beispiel ein Null-Ergebnis erzeugen oder berechnen, kann der Wert des Vorzeichenbits undefiniert oder implementierungsspezifisch sein. Null kann zum Beispiel 0x0000 oder 0x8000 sein, wobei das Vorzeichenbit als „Don't-care“-Term dargestellt werden kann. Wenn die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 Operationen an einem Nichtnull-Bruchteil ausführen, diesen erzeugen oder berechnen, kann der Wert eine normale Zahl sein, wobei das implizierte Bit beispielsweise eins (i=1) sein kann, was zu einer Mantisse von 1.f führen kann, und wobei der Exponentenwert [e] = e - Verschiebung = 0 - Verschiebung sein kann.
  • Wie bereits angegeben, kann das erweiterte Gleitkomma-Zahlenformat das Vorzeichen von Null als „Don't-care“-Term definieren, was den Umgang mit dem Vorzeichen von Null im Vergleich zu anderen Formaten wie dem 1/5/10-Format weniger komplex machen kann. Zum Beispiel können bestimmte andere Gleitkomma-Zahlenformate wie das 1/5/10-Format vergleichsweise komplizierte Regeln haben, wie man das Vorzeichen von Null erhält. Für viele Anwendungen, darunter Anwendungen für tiefes Lernen, spielt das Vorzeichen von Null jedoch keine Rolle. Die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 können somit entsprechend dem erweiterten Gleitkomma-Zahlenformat das Vorzeichen von Null als „Don't-care“-Term darstellen. Der „Don't-care“-Term kann beispielsweise einen definierten Wert darstellen, der entsprechend dem erweiterten Gleitkomma-Zahlenformat angeben kann, dass das Vorzeichen von Null in Bezug auf den Wert von Null keine Rolle spielt. Wenn die Gleitkommazahl Null ist, können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 einen beliebigen Wert oder ein beliebiges Symbol im Vorzeichenfeld des erweiterten Gleitkomma-Zahlenformats erzeugen, der bzw. das für die Prozessorkomponente 102 oder die Rechnerkomponente 106 praktisch oder effizient (z.B. am praktischsten oder effizientesten) zu erzeugen und in das Vorzeichenfeld einzufügen ist. Die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 können zum Beispiel einen beliebigen Wert erzeugen oder das Erzeugen eines beliebigen Wertes ermöglichen, der die geringste Menge an Ressourcen (z. B. Verarbeitungs- oder Datenverarbeitungsressourcen) oder zumindest weniger Ressourcen als sonst nutzen kann, um einen nichtbeliebigen Wert für das Vorzeichenfeld zu ermitteln und zu erzeugen, der das Vorzeichen des Wertes von Null darstellt. Durch die Verwendung des erweiterten Gleitkomma-Zahlenformats, darunter die Behandlung des Vorzeichens, das dem Wert von Null zugehörig ist, kann der offenbarte Gegenstand es ermöglichen, dass die Hardware, die vom System 100 in Verbindung mit dem erweiterten Gleitkomma-Zahlenformat verwendet wird, vergleichsweise weniger komplex ist und weniger Hardware und Hardware-Ressourcen (und weniger Logik-Ressourcen) verwendet werden können als im Falle der Hardware, die für andere Gleitkomma-Zahlenformate (z.B. das 1/5/10-Format) verwendet wird.
  • Im Gegensatz zum erweiterten Gleitkomma-Zahlenformat verwenden bestimmte andere Gleitkomma-Zahlenformate wie das 1/5/10-Format die niedrigste Binade für subnormale (z.B. denormale) Zahlen und Null. Da das Exponentenfeld des erweiterten Gleitkomma-Zahlenformats wie hierin offenbart ein Bit breiter ist als im 1/5/10-Format, kann das erweiterte Gleitkomma-Zahlenformat selbst bei normalen Zahlen in der letzten Binade näher an einem Wert von 0 liegen, als dies das 1/5/10-Format bei subnormalen Zahlen kann.
  • Die Hardware-Unterstützung für subnormale Zahlen kann vergleichsweise kostspielig sein und die Tiefe (z.B. die gesamte Gate-Verzögerung) einer typischen Fused-Multiply-Added-FPU erhöhen, und eine weitere Unterstützung von subnormalen Zahlen kann die Komplexität der Logik in unerwünschtem Maße erhöhen. Durch die Verwendung der festgelegten Definition für die niedrigste Binade kann durch den offenbarten Gegenstand vermieden werden, dass subnormale Zahlen verwendet werden, was dazu führen kann, dass der offenbarte Gegenstand im Hinblick auf Hardware-Nutzung und - Unterstützung effizienter ist (z.B. kann der Umfang der verwendeten Hardware und Hardware-Ressourcen verringert werden), und es kann vermieden werden, die Tiefe (z.B. die gesamte Gate-Verzögerung) einer 16-Bit-Fused-Multiply-Add-FPU im Vergleich zu anderen Formaten wie dem 1/5/10-Format zu erhöhen.
  • Im Hinblick auf die höchste (z.B. letzte) Binade kann das erweiterte Gleitkomma-Zahlenformat eine festgelegte Definition für die höchste Binade verwenden (z.B. Datenpunkte, bei denen das Exponentenfeld ausschließlich aus Einsen besteht). Entsprechend der festgelegten Definition der höchsten Binade im erweiterten Gleitkomma-Zahlenformat können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 einen gewünschten Teil (z.B. den größten Teil) der höchsten Binade für endliche Zahlen verwenden und einen Datenpunkt der höchsten Binade für besondere Werte wie eine Nichtzahl (NaN) und Unendlich (z.B. zusammengefügte NaN/Unendlich) verwenden.
  • Tabelle 2 veranschaulicht die Verwendung des größten Teils (z.B. alle bis auf einen Datenpunkt) der höchsten Binade für endliche Zahlen und eines Datenpunktes der höchsten Binade für den besonderen Wert für zusammengeführte NaN/Unendlich gemäß einigen Ausführungsformen des offenbarten Gegenstandes wie folgt: TABELLE 2
    Exponent Mantisse
    111111 000...000 bis 111...110 Normale Zahlen mit Mantisse 1.f und [e] = 32
    111111 111...111 Zusammengeführte NaN/Unendlich (Vorzeichenbit kann ein „Don't-care“-Term sein)
  • Es versteht sich und ist zu beachten, dass gemäß diversen anderen Ausführungsformen mehr Mantissen-Codes für verschiedene Varianten einer NaN reserviert und entsprechend von der Prozessorkomponente 102 und/oder der Rechnerkomponente 106 verwendet werden können. Falls und soweit gewünscht können zum Beispiel zwei oder mehr Mantissen-Codes für entsprechende (z.B. verschiedene) Varianten einer NaN entsprechend dem erweiterten Gleitkomma-Zahlenformat verwendet werden (z.B. von der Prozessorkomponente 102 und/oder der Rechnerkomponente 106). Falls und soweit gewünscht können als eine weitere beispielhafte Ausführungsform die Datenpunkte mit dem Exponenten 111111 und mit einer Mantisse im Bereich von 000...000 bis 111...101 normale Zahlen sein, mit einer Mantisse 1.f und [e] = 32; für eine Mantisse von 111...110 kann der Datenpunkt + oder -Unendlich darstellen, abhängig vom Wert des Vorzeichenbits im Vorzeichenfeld 202; und für eine Mantisse von ausschließlich 1-Werten kann der Datenpunkt NaN darstellen, wobei das Vorzeichenbit im Vorzeichenfeld 202 ein „Don't care“-Term sein kann.
  • Das erweiterte Gleitkomma-Zahlenformat kann ferner das Vorzeichen des zusammengeführten NaN/Unendlich-Symbols als „Don't-care“-Term definieren, was den Umgang mit dem Vorzeichen des zusammengeführten NaN/Unendlich-Symbols im Vergleich zum Umgang mit dem Vorzeichen von NaN und Unendlich in anderen Gleitkomma-Zahlenformaten (z.B. dem 1/5/10-Format) vergleichsweise weniger komplex machen kann. Bestimmte andere Gleitkomma-Zahlenformate können zum Beispiel vergleichsweise komplizierte Regeln haben, wie man das Vorzeichen von NaN und Unendlich erhält, insbesondere für Additions/Subtraktions- und Multiplikations/Additions-Operationen. Für viele Anwendungen, darunter Anwendungen für tiefes Lernen, spielt das Vorzeichen von NaN und Unendlich jedoch keine Rolle.
  • Die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 können somit entsprechend dem erweiterten Gleitkomma-Zahlenformat das Vorzeichen des zusammengeführten NaN/Unendlich-Symbols als „Don't care“-Term darstellen. Der „Don't-care“-Term kann beispielsweise einen definierten Wert darstellen, der entsprechend dem erweiterten Gleitkomma-Zahlenformat angeben kann, dass das Vorzeichen des zusammengeführten NaN/Unendlich-Symbols in Bezug auf den Wert des zusammengeführten NaN/Unendlich-Symbols keine Rolle spielt. Wenn Unendlich oder NaN das Ergebnis einer Gleitkommazahl ist, können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 den beliebigen Wert in dem Vorzeichenfeld, das dem Wert bzw. den Werten für Unendlich und/oder NaN zugehörig ist (z.B. zusammengeführtes NaN/Unendlich-Symbol, individueller NaN-Wert oder individueller Unendlich-Wert), erzeugen oder dessen Erzeugen ermöglichen, um den Term oder das Symbol für das Vorzeichen des Wertes bzw. der Werte für Unendlich und/oder NaN darzustellen. Entsprechend dem erweiterten Gleitkomma-Zahlenformat können die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 einen beliebigen Wert oder ein beliebiges Symbol in dem Vorzeichenfeld, das dem Wert bzw. den Werten für Unendlich und/oder NaN zugehörig ist, erzeugen oder dessen Erzeugen ermöglichen, der/das für die Prozessorkomponente 102 oder die Rechnerkomponente 106 praktisch oder effizient (z.B. am praktischsten oder effizientesten) zu erzeugen und in ein solches Vorzeichenfeld einzufügen ist. Die Prozessorkomponente 102 und/oder die Rechnerkomponente 106 können zum Beispiel einen beliebigen Wert erzeugen oder dessen Erzeugen ermöglichen, der die geringste Menge an Ressourcen (z. B. Verarbeitungs- oder Datenverarbeitungsressourcen) oder zumindest weniger Ressourcen als sonst nutzen kann, um einen nichtbeliebigen Wert für das Vorzeichenfeld zu ermitteln und zu erzeugen, der das Vorzeichen des Wertes bzw. der Werte für Unendlich und/oder NaN darstellt. Durch die Verwendung des erweiterten Gleitkomma-Zahlenformats, darunter die Behandlung von Unendlich, NaN und des Vorzeichens, das Unendlich und NaN zugehörig ist, kann es der offenbarte Gegenstand ermöglichen, dass die Hardware, die vom System 100 in Verbindung mit dem erweiterten Gleitkomma-Zahlenformat verwendet wird, vergleichsweise weniger komplex ist und weniger Hardware und Hardware-Ressourcen (und weniger Logik-Ressourcen) verwendet werden können als im Fall der Hardware, die für andere Gleitkomma-Zahlenformate (z.B. das 1/5/10-Format) verwendet wird.
  • Darüber hinaus verwenden bestimmte andere Gleitkomma-Zahlenformate wie das 1/5/10-Format im Gegensatz zur festgelegten Definition für die höchste Binade beim erweiterten Gleitkomma-Zahlenformat die höchste Binade ausschließlich für die besonderen Werte von NaN und Unendlich, wobei für einen Null-Bruchteil der Wert je nach Vorzeichenbit +/-Unendlich sein kann und für einen Nichtnull-Bruchteil der Datenpunkt eine NaN darstellen kann. Diese besonderen Werte können für den Umgang mit Eckenbedingungen in gewisser Weise zweckdienlich sein. Unendlich kann verwendet werden, um anzugeben, dass die Berechnung den gültigen Datenbereich überschritten hat. Bei arithmetischen Operationen kann Unendlich den Regeln der Algebra gehorchen, wie z.B. Unendlich - x = Unendlich für eine beliebige endliche Zahl x. In solchen bestimmten anderen Gleitkommaformaten kann NaN verwendet werden, um mathematisch undefinierte Szenarien darzustellen, wie zum Beispiel die Quadratwurzel einer negativen Zahl oder die Differenz zwischen zwei unendlichen Zahlen mit gleichem Vorzeichen. Es wird darauf hingewiesen, dass es in Gleitkomma-Zahlenformaten wie dem 1/5/10-Format mehrere Darstellungen der NaN geben kann. Wenn eine arithmetische Operation mindestens einen NaN-Operanden hat, muss das Ergebnis einer der NaN-Operanden sein, z.B. müssen seine Nutzdaten weitergegeben werden.
  • Während die Verwendung einer Binade ausschließlich für diese besonderen Werte von NaN und Unendlich in der Regel bei 8 oder mehr Bits für den Exponenten wie zum Beispiel im Hinblick auf Gleitkomma-Zahlenformate mit höherer Genauigkeit (z.B. 32-Bit- oder 64-Bit-Gleitkomma-Zahlenformate) keine nennenswerte Beeinträchtigung darstellen kann, kann die Verwendung einer Binade ausschließlich für diese besonderen Werte von NaN und Unendlich bei kleineren Bitbreiten wie den kleineren Bitbreiten, die den Gleitkomma-Zahlenformaten geringerer Genauigkeit zugehörig sind (z.B. 16-Bit-Gleitkomma-Zahlenformate wie das erweiterte 1/6/9-Format und das 1/5/10-Format), unakzeptabel teuer sein.
  • Das erweiterte Gleitkomma-Zahlenformat kann durch Verwenden einer solchen festgelegten Definition für die hierin beschriebene höchste Binade einen vergleichsweise größeren Datenbereich ermöglichen und im Vergleich zu anderen Gleitkomma-Zahlenformaten wie dem 1/5/10-Format vergleichsweise weniger komplexe Hardware nutzen, da die für das erweiterte Gleitkomma-Zahlenformat vom System 100 (z.B. durch die Prozessorkomponente 102 und/oder Rechnerkomponente 106) verwendete Logik unter anderem nicht zwischen den NaN- und Unendlich-Werten unterscheiden muss.
  • Das erweiterte Gleitkomma-Zahlenformat kann in einigen Ausführungsformen einen Rundungsmodus verwenden, der weniger komplex zu implementieren sein kann als die Rundungsmodi, die von anderen Arten von Formaten verwendet werden. Das erweiterte Gleitkomma-Zahlenformat kann beispielsweise einen Rundungsmodus zum Aufrunden auf die nächste Stelle verwenden, ohne andere Rundungsmodi zu verwenden. Einige andere Arten von Formaten (z.B. das 1/5/10-Format) verwenden komplexere Rundungsmodi wie Aufrunden auf die nächste Stelle, Abrunden auf die nächste Stelle und Runden auf Gerade sowie Runden auf 0, Runden auf +Unendlich und Runden auf -Unendlich. Die Verwendung des weniger komplexen Rundungsmodus (z.B. Aufrunden auf die nächste Stelle) ohne Verwenden von anderen Rundungsmodi durch das erweiterte Gleitkomma-Zahlenformat kann keine oder zumindest praktisch keine Auswirkungen auf die Leistung von Arbeitslasten haben, darunter die Geschwindigkeit der Leistung und die Qualität des Trainings von Systemen (z.B. maschinelles Training oder Training für tiefes Lernen), während gleichzeitig der Umfang der für die Rundung von Gleitkommazahlen verwendeten Hardware und Logik erheblich verringert wird.
  • Durch die Verwendung des erweiterten Gleitkomma-Zahlenformats kann der offenbarte Gegenstand es ermöglichen, dass der Umfang der Hardware, der Hardware-Ressourcen, der Logik-Ressourcen und anderer rechenbezogener Ressourcen verringert wird, die beispielsweise wie hierin ausführlich beschrieben für rechenintensive Anwendungen (z.B. Anwendungen für maschinelles Training oder Training für tiefes Lernen) verwendet werden. In einigen Ausführungsformen kann der offenbarte Gegenstand durch die Verwendung des erweiterten Gleitkomma-Zahlenformats auch eine 16-Bit-FPU verwenden, die etwa 25-mal kleiner sein kann als bestimmte FPUs mit doppelter Genauigkeit (z.B. 64 Bit). Weiterhin wird erwartet (z.B. geschätzt oder prognostiziert), dass der offenbarte Gegenstand durch die Verwendung des erweiterten Gleitkomma-Zahlenformats eine 16-Bit-FPU verwendet, die ca. 25 % bis 30 % kleiner sein kann als eine vergleichbare FPU mit halber Genauigkeit (z.B. 16-Bit-FPU) (z.B. FPU mit halber Genauigkeit im 1/5/10-Format).
  • Die 4, 5 und 6 können beispielhafte Leistungsergebnisse veranschaulichen, anhand derer die Leistung des erweiterten Gleitkomma-Zahlenformats (z.B. erweitertes Gleitkomma-Zahlenformat mit halber Genauigkeit (z. B. 16 Bit)) im Verhältnis zu den Leistungsergebnissen eines Gleitkomma-Zahlenformats mit halber Genauigkeit (z.B. 16 Bit) (z. B. 1/5/10-Format) und den Leistungsergebnissen eines 32-Bit-Gleitkomma-Zahlenformats (z.B. mit voller Genauigkeit) verglichen werden kann. Mit Bezug kurz auf 4 zeigt 4 ein beispielhaftes Diagramm 400 der Leistungsergebnisse in Bezug auf Spracherkennung gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands. Das Diagramm 400 kann die jeweiligen Ergebnisse der Spracherkennung für das erweiterte Gleitkomma-Zahlenformat, das Gleitkomma-Zahlenformat mit halber Genauigkeit und das 32-Bit-Gleitkomma-Zahlenformat für ein sprach-tiefes neuronales Netzwerk (Sprach-DNN) auf einem 50-Stunden-Nachrichtendatensatz veranschaulichen. Das Diagramm 400 stellt die Phonemfehlerrate (%) auf der y-Achse in Bezug auf die Trainingsepoche entlang der x-Achse dar.
  • Wie im Diagramm 400 der Leistungsergebnisse zu sehen ist, können die Leistungsergebnisse 402 der Spracherkennung für das erweiterte Gleitkomma-Zahlenformat (erweitertes Format) (und die zugehörige 16-Bit-Hardware und Software) recht gut konvergieren und vergleichsweise günstige Ergebnisse bereitstellen, die den Leistungsergebnissen 404 der Spracherkennung des 32-Bit-Gleitkomma-Zahlenformats (Format mit voller Genauigkeit) (und der zugehörigen 32-Bit-Hardware und Software) vergleichsweise nahekommen. Wie aus dem Diagramm 400 des Weiteren hervorgeht, sind die Leistungsergebnisse 406 der Spracherkennung für das Fließkomma-Zahlenformat mit halber Genauigkeit (Format mit halber Genauigkeit) (und die zugehörige 16-Bit-Hardware und Software) nicht in der Lage, überhaupt zu konvergieren, und können daher keine aussagekräftigen Spracherkennungsergebnisse bereitstellen.
  • 5 veranschaulicht ein beispielhaftes Diagramm 500 der Leistungsergebnisse in Bezug auf Bilderkennung gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands. Das Diagramm 500 kann die jeweiligen Ergebnisse der Bilderkennung für das erweiterte Gleitkomma-Zahlenformat, das Gleitkomma-Zahlenformat mit halber Genauigkeit und das 32-Bit-Gleitkomma-Zahlenformat in Bezug auf AlexNet auf einem 2012-ImageNet-Datensatz mit tausend Ausgabeklassen veranschaulichen. Das Diagramm 500 stellt den Testfehler (%) auf der y-Achse in Bezug auf die Trainingsepoche entlang der x-Achse dar.
  • Wie im Diagramm 500 der Leistungsergebnisse zu sehen ist, können die Leistungsergebnisse 502 der Bilderkennung für das erweiterte Gleitkomma-Zahlenformat (und die zugehörige 16-Bit-Hardware und Software) recht gut konvergieren und Ergebnisse bereitstellen, die im Vergleich zu den Leistungsergebnissen 504 der Bilderkennung des 32-Bit-Gleitkomma-Zahlenformats (und der zugehörigen 32-Bit-Hardware und Software) recht günstig sein können (z.B. Ergebnisse, die diesen vergleichsweise nahekommen können). Wie aus dem Diagramm 500 hervorgeht, sind die Leistungsergebnisse 506 der Bilderkennung für das Gleitkomma-Zahlenformat mit halber Genauigkeit (und die zugehörige 16-Bit-Hardware und Software) nicht in der Lage, überhaupt zu konvergieren, und können daher keine aussagekräftigen Bilderkennungsergebnisse bereitstellen.
  • Mit Bezug auf 6 zeigt 6 zeigt ein beispielhaftes Diagramm 600 der Leistungsergebnisse in Bezug auf Shakespeare-Texterzeugung gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands. Das Diagramm 600 kann die jeweiligen Leistungsergebnisse der Texterzeugung in Bezug auf Shakespeare-Text für das erweiterte Gleitkomma-Zahlenformat, das Gleitkomma-Zahlenformat mit halber Genauigkeit und das 32-Bit-Gleitkomma-Zahlenformat veranschaulichen, wenn ein zeichenrekurrentes neuronales Netzwerk (char-RNN) mit zwei gestapelten langen Kurzzeitgedächtnissen (long short-term memories, LSTM) (je 512 Einheiten) verwendet wird. Das Diagramm 600 stellt den Trainingsfehler auf der y-Achse in Bezug auf die Trainingsepoche entlang der x-Achse dar.
  • Wie aus dem Diagramm 600 der Leistungsergebnisse hervorgeht, können die Leistungsergebnisse 602 der Texterzeugung für das erweiterte Gleitkomma-Zahlenformat (und die zugehörige 16-Bit-Hardware und Software) recht gut konvergieren und Ergebnisse bereitstellen, die im Vergleich zu den Leistungsergebnissen 604 der Texterzeugung des 32-Bit-Gleitkomma-Zahlenformats (und der zugehörigen 32-Bit-Hardware und Software) recht günstig sein können (z.B. Ergebnisse, die diesen vergleichsweise nahekommen können). Wie aus dem Diagramm 600 des Weiteren hervorgeht, können die Leistungsergebnisse 606 der Texterzeugung für das Gleitkomma-Zahlenformat mit halber Genauigkeit (und die zugehörige 16-Bit-Hardware und Software) zwar konvergieren, aber nicht annähernd so gut wie die Leitungsergebnisse 602 der Texterzeugung für das erweiterte Gleitkomma-Zahlenformat oder die Leistungsergebnisse 604 der Texterzeugung des 32-Bit-Gleitkomma-Zahlenformats.
  • Mit Bezug auf 7 zeigt 7 ein Blockschaubild eines beispielhaften, nichteinschränkenden Systems 700, das gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands Rechensteuerkomponenten mit geringerer Genauigkeit für einen ersten Teil von Berechnungen verwenden kann, um Gleitkommazahlen (z.B. binäre Gleitkommazahlen) mithilfe eines erweiterten Gleitkomma-Zahlenformats zu erzeugen oder zu berechnen, und das Rechensteuerkomponenten mit höherer Genauigkeit für einen zweiten Teil von Berechnungen verwenden kann. Eine wiederholte Beschreibung ähnlicher Elemente, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, entfällt aus Gründen der Kürze oder kann aus Gründen der Kürze entfallen.
  • Das System 700 kann eine Prozessorkomponente 702, einen Datenspeicher 704 und eine Rechnerkomponente 706 aufweisen. Die Prozessorkomponente 702 kann dem Datenspeicher 704 und einer Programmspeicherkomponente 708 (z.B. über einen oder mehrere Busse) zugehörig sein (z.B. zum Zwecke der Datenübertragung verbunden), wobei die Programmspeicherkomponente 708 die Rechnerkomponente 706 aufweisen kann. Die Rechnerkomponente 706 kann eine Komponente 710 für ein erweitertes Format aufweisen, die es der Prozessorkomponente 702 und der Rechnerkomponente 706 ermöglicht, wie hierin ausführlicher beschrieben im erweiterten Gleitkomma-Zahlenformat Operationen an Gleitkommazahlen (z.B. binäre Gleitkommazahlen) auszuführen (z.B. mathematische Berechnungen durchzuführen), diese zu erzeugen und/oder zu berechnen.
  • Die Prozessorkomponente 702 und die Rechnerkomponente 706 können einer oder mehreren Anwendungen (z.B. Anwendungen für maschinelles Training oder tiefes Lernen) zugehörig sein, z.B. der Anwendung 712, um Operationen an Daten (z.B. numerischen Daten) auszuführen, die der bzw. den Anwendung(en) 712 zugehörig sind. Die Prozessorkomponente 702 und die Rechnerkomponente 706 können beispielsweise Daten von einer Anwendung 712 empfangen, Operationen an numerischen Werten oder Ergebnissen (z.B. binären Gleitkommazahlen) durchführen, diese erzeugen oder ermitteln (z.B. berechnen), die zumindest teilweise auf den Daten beruhen, und zwar entsprechend dem erweiterten Gleitkomma-Zahlenformat, und die numerischen Werte oder Ergebnisse der Anwendung 712 und/oder einem anderen gewünschten Ziel (z.B. einer anderen Anwendung, Komponente oder Einheit) bereitstellen.
  • In einigen Ausführungsformen kann die Prozessorkomponente 702 einen Satz von Rechensteuerkomponenten mit geringerer Genauigkeit wie die Rechensteuerkomponente1 714 mit geringerer Genauigkeit (LPCE1 714), die Rechensteuerkomponente2 716 mit geringerer Genauigkeit (LPCE2 716) bis hin zur RechensteuerkomponenteM 718 mit geringerer Genauigkeit (LPCEM 718) aufweisen, wobei M praktisch jede gewünschte Zahl sein kann. Die Rechensteuerkomponenten mit geringerer Genauigkeit (z. B. 714, 716, 718) des Satzes von Rechensteuerkomponenten mit geringerer Genauigkeit können 16-Bit-Rechensteuerkomponenten (z.B. 16-Bit-FPUs) sein oder diese aufweisen, die Berechnungen oder andere Operationen an Daten (z.B. numerischen Daten) ausführen können, um Gleitkommazahlen (z.B. binäre Gleitkommazahlen) entsprechend dem erweiterten Gleitkomma-Zahlenformat zu erzeugen (z.B. die mit dem erweiterten Gleitkomma-Zahlenformat konform sein, übereinstimmen, nach diesem strukturiert und/oder in diesem dargestellt werden können).
  • Die Prozessorkomponente 702 kann ferner einen Satz von Rechensteuerkomponenten mit höherer Genauigkeit wie die Rechensteuerkomponente1 720 mit höherer Genauigkeit (HPCE1 720), die Rechensteuerkomponente2 722 mit höherer Genauigkeit (HPCE2 722) bis hin zur RechensteuerkomponenteN 724 mit höherer Genauigkeit (HPCEN 724) aufweisen, wobei N praktisch jede gewünschte Zahl sein kann. Die Rechensteuerkomponenten mit höherer Genauigkeit des Satzes von Rechensteuerkomponenten mit geringerer Genauigkeit (z.B. 720, 722, 724) können 32-Bit- (und/oder 64-Bit-)Rechensteuerkomponenten (z.B. FPUs) sein oder diese aufweisen, die Berechnungen oder andere Operationen an Daten (z.B. numerischen Daten) ausführen können, um Gleitkommazahlen (z.B. binäre Gleitkommazahlen) entsprechend einem gewünschten (z.B. geeigneten, annehmbaren oder optimalen) Gleitkomma-Zahlenformat mit höherer Genauigkeit zu erzeugen (z.B. die damit konform sein, übereinstimmen, nach diesem strukturiert und/oder in diesem dargestellt werden können).
  • Im Zusammenhang mit der Ausführung oder Verwendung einer Anwendung 712 (z.B. einer Anwendung, die sich auf maschinelles Training oder Training für tiefes Lernen bezieht oder damit verbunden ist) kann es eine Vielfalt verschiedener Arten von Berechnungen oder anderen Operationen geben, die von der Prozessorkomponente 702 und/oder der Rechnerkomponente 706 ausgeführt werden können. Einige Arten von Berechnungen können zum Beispiel vergleichsweise anfälliger für Fehler wie Rundungsfehler sein als andere Arten von Berechnungen. In vielen oder sogar den meisten Fällen kann es sich bei den meisten Berechnungen, die einer Anwendung 710 zugehörig sind, um die Art von Berechnungen handeln, die nicht besonders fehleranfällig sind, und bei einem relativ kleinen Teil der Berechnungen kann es sich um die Art von Berechnungen handeln, die vergleichsweise fehleranfälliger sein können, wie z.B. Rundungsfehler.
  • Um die effiziente Ausführung von Operationen, darunter Berechnungen, durch die Prozessorkomponente 702, die Rechnerkomponente 706 und andere Komponenten des Systems 700 zu ermöglichen, kann das System 700 eine Operationsverwaltungskomponente 726 aufweisen, die der Prozessorkomponente 702, dem Datenspeicher 704 und dem Programmspeicher 708 zugehörig sein kann (z.B. zum Zwecke der Datenübertragung verbunden sein kann). Die Operationsverwaltungskomponente 726 kann Operationen der Komponenten des Systems 700 steuern, darunter die Prozessorkomponente 702, der Datenspeicher 704, die Rechnerkomponente 706, die Programmspeicherkomponente 708, der Satz von Rechensteuerkomponenten mit geringerer Genauigkeit (z.B. 714, 716, 718) und der Satz von Rechensteuerkomponenten mit höherer Genauigkeit (z.B. 720, 722, 724).
  • Um beispielsweise die effiziente Ausführung von Berechnungen mit Daten (z.B. numerischen Daten) zu ermöglichen, kann die Operationsverwaltungskomponente 726 einen ersten Teil von Operationen (z.B. Rechenoperationen) und zugehörigen Daten dem Satz von Rechensteuerkomponenten mit geringerer Genauigkeit (z.B. 714, 716, 718) zuordnen, wobei der Satz von Rechensteuerkomponenten mit geringerer Genauigkeit solche Operationen an solchen Daten ausführen kann. Zum ersten Teil von Operationen kann ein Ausführen von Berechnungen oder anderen Operationen an Daten gehören, wobei die Berechnungen oder anderen Operationen nicht besonders anfällig für Fehler wie Rundungsfehler sind. Die Operationsverwaltungskomponente 726 kann ferner einen zweiten Teil von Operationen (z.B. Rechenoperationen) und zugehörigen Daten dem Satz von Rechensteuerkomponenten mit höherer Genauigkeit (z.B. 720, 722, 724) zuordnen, wobei der Satz von Rechensteuerkomponenten mit höherer Genauigkeit solche Operationen an solchen Daten ausführen kann. Der zweite Teil von Operationen kann ein Ausführen von Berechnungen oder anderen Operationen an Daten umfassen, wobei es sich bei den Berechnungen oder anderen Operationen um die Art von Berechnungen handeln kann, die vergleichsweise anfälliger für Fehler wie Rundungsfehler sein können, und daher kann die Verwendung der Rechensteuerkomponenten mit höherer Genauigkeit zum Ausführen dieser anfälligeren Berechnungen oder anderen Operationen wünschenswert sein.
  • Da es in der Regel (z.B. häufig) wesentlich mehr Berechnungen geben kann, die nicht besonders fehleranfällig sind (z.B. der erste Teil von Operationen) im Vergleich zu der Anzahl der Berechnungen, die fehleranfällig sein können (z.B. der zweite Teil von Operationen), kann in einigen Ausführungsformen die Anzahl (z.B. M) der Rechensteuerkomponenten im Satz der Rechensteuerkomponenten mit geringerer Genauigkeit (z.B. 714, 716, 718) größer sein als die Anzahl (z.B. N) der Rechensteuerkomponenten im Satz der Rechensteuerkomponenten mit höherer Genauigkeit (z.B. 720, 722, 724). Je nach Bedarf (z.B. abhängig von der Art der Anwendung oder der durchzuführenden Trainingsaufgaben) kann es in anderen Ausführungsformen eine gleiche Anzahl von Rechensteuerkomponenten im Satz der Rechensteuerkomponenten mit geringerer Genauigkeit geben (z.B. 714, 716, 718) und im Satz von Rechensteuerkomponenten mit höherer Genauigkeit (z.B. 720, 722, 724) oder der Satz von Rechensteuerkomponenten mit höherer Genauigkeit (z.B. 720, 722, 724) kann eine höhere Anzahl von Rechensteuerkomponenten haben als der Satz von Rechensteuerkomponenten mit geringerer Genauigkeit (z.B. 714, 716, 718).
  • Es versteht sich und ist zu beachten, dass das System 700 gemäß verschiedenen Ausführungsformen eine oder mehrere Prozessorkomponenten, Rechnerkomponenten, Rechensteuerkomponenten mit geringerer Genauigkeit, Rechensteuerkomponenten mit höherer Genauigkeit, Grafikverarbeitungseinheiten (GPUs), Beschleuniger, vor Ort programmierbare Gatter-Anordnungen (field-programmable gate arrays, FPGAs) und/oder andere Verarbeitungseinheiten zum Ausführen oder Ermöglichen von Operationen an Daten, darunter das Ausführen von Berechnungen an Daten (z.B. numerischen Daten), aufweisen kann.
  • 8 veranschaulicht einen Ablaufplan eines beispielhaften, nichteinschränkenden Verfahrens 800 zum Ausführen von Operationen, darunter Berechnungen, an Daten mit einem erweiterten Gleitkomma-Zahlenformat gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands. Das Verfahren 800 kann zum Beispiel von der Prozessorkomponente und/oder der Rechnerkomponente mithilfe der Komponente für ein erweitertes Format durchgeführt werden. Eine wiederholte Beschreibung ähnlicher Elemente, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, entfällt aus Gründen der Kürze oder kann aus Gründen der Kürze entfallen.
  • Bei 802 können entsprechende numerische Felder in einem definierten Gleitkomma-Zahlenformat (z.B. einem erweiterten Gleitkomma-Zahlenformat) erzeugt werden, wobei die entsprechenden numerischen Felder ein Vorzeichenfeld, ein Exponentenfeld und ein Mantissenfeld aufweisen können und wobei das definierte Gleitkomma-Zahlenformat sechs Bits im Exponentenfeld verwenden kann. Die Prozessorkomponente und/oder die Rechnerkomponenten können die entsprechenden numerischen Felder in dem definierten Gleitkomma-Zahlenformat erzeugen oder deren Erzeugen ermöglichen.
  • Bei 804 können binäre Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat in Verbindung mit der Ausführung einer Anwendung berechnet werden. Die Prozessorkomponente und/oder die Rechnerkomponente können die binären Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat in Verbindung mit der Ausführung einer Anwendung berechnen oder auf sonstige Weise Operationen daran ausführen. Die Prozessorkomponente und/oder die Rechnerkomponente können die binären Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat zum Beispiel berechnen oder auf sonstige Weise Operationen daran ausführen, um ein Konvergieren eines Programms, eines Algorithmus (z.B. eines dem Programm zugehörigen Algorithmus) und/oder von Datenpunkten (z.B. dem Programm oder dem Algorithmus zugehörig) zu ermöglichen, um ein Ergebnis zu erhalten, das sich auf eine Lösung eines zu lösenden Problems im Zusammenhang mit der Ausführung einer Anwendung bezieht. Das zu lösende Problem kann sich zum Beispiel auf maschinelles Training, tiefes Lernen, Cognitive Computing, künstliche Intelligenz, neuronale Netzwerke und/oder andere rechenintensive Aufgaben, Probleme oder Anwendungen beziehen. Das Problem kann sich auf Bilderkennung beziehen, um Objekte (z.B. Personen, Orte und/oder Dinge) in einem Bild zu erkennen oder zu identifizieren, auf Spracherkennung, um Wörter und/oder Identitäten von Stimmen in Audioinhalten zu erkennen oder zu identifizieren, oder Texterkennung, um Textdaten (z.B. Wörter, alphanumerische Zeichen) in Textinhalten (z.B. Buch, Manuskript, eMail usw.) zu erkennen oder zu identifizieren.
  • 9 zeigt einen Ablaufplan eines anderen beispielhaften, nichteinschränkenden Verfahrens 900 zum Ausführen von Operationen, darunter Berechnungen, an Daten mit einem erweiterten Gleitkomma-Zahlenformat gemäß verschiedenen Aspekten und Ausführungsformen des offenbarten Gegenstands. Das Verfahren 900 kann zum Beispiel von der Prozessorkomponente und/oder der Rechnerkomponente mithilfe der Komponente für ein erweitertes Format durchgeführt werden. Eine wiederholte Beschreibung ähnlicher Elemente, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, entfällt aus Gründen der Kürze oder kann aus Gründen der Kürze entfallen.
  • Bei 902 können entsprechende Felder entsprechend einem erweiterten Gleitkomma-Zahlenformat erzeugt werden, wobei die entsprechenden Felder ein Vorzeichenfeld, ein Exponentenfeld und ein Mantissenfeld aufweisen können. Die Prozessorkomponente und/oder die Rechnerkomponente können die entsprechenden Felder in dem definierten Gleitkomma-Zahlenformat erzeugen oder deren Erzeugen ermöglichen. Bei dem definierten Gleitkomma-Zahlenformat kann es sich um ein 16-Bit-Format handeln, wobei das Vorzeichenfeld ein einziges Bit enthalten, das Exponentenfeld sechs Bits aufweisen und das Mantissenfeld neun Bits aufweisen kann.
  • Bei 904 können Operationen an binären Gleitkommazahlen entsprechend dem erweiterten Gleitkomma-Zahlenformat ausgeführt werden. Die Prozessorkomponente und/oder die Rechnerkomponente können entsprechend dem erweiterten Gleitkomma-Zahlenformat Operationen an den binären Gleitkommazahlen ausführen, diese erzeugen und/oder berechnen, um zum Beispiel ein Konvergieren eines Programms, das einer Anwendung zugehörig ist, gemäß den definierten Konvergenzkriterien zu ermöglichen. Die definierten Konvergenzkriterien können sich beispielsweise auf eine Zeitspanne beziehen, in der das Programm (z.B. Algorithmus und/oder Datenpunkte des Programms) konvergieren muss, um ein Ergebnis für ein Problem zu erhalten, das im Zusammenhang mit der Ausführung der Anwendung gelöst werden soll, eine Erreichbarkeit des Programms, um zu konvergieren, um das Ergebnis zu erhalten, und/oder eine dem Ergebnis zugehörige Fehlerrate.
  • Bei 906 kann eine erste Binade verwendet werden, um entsprechend dem erweiterten Gleitkomma-Zahlenformat Null und normale Zahlen darzustellen, wobei die erste Binade dem Exponentenfeld zugehörig ist, das ausschließlich aus Nullen besteht. Die Prozessorkomponente und/oder die Rechnerkomponente können die erste Binade verwenden, um entsprechend dem erweiterten Gleitkomma-Zahlenformat Null und normale Zahlen darzustellen. Bei der ersten Binade kann es sich zum Beispiel um die niedrigste Binade handeln. Die erste Binade kann einen Satz von Datenpunkten aufweisen, wobei ein Datenpunkt des Satzes, der einen Bruchteil aller Nullen aufweist, Null darstellen kann. Die anderen Datenpunkte des Satzes von Datenpunkte können normale Zahlen darstellen.
  • Normale Zahlen können endliche Nichtnull-Gleitkommazahlen mit einer Größe sein, die größer als oder gleich wie ein Mindestwert ist, der als Funktion einer Basis und eines Mindestexponenten in Verbindung mit dem erweiterten Gleitkomma-Zahlenformat ermittelt werden kann. Eine normale Zahl kann beispielsweise eine endliche Nichtnull-Gleitkommazahl mit einer Größe sein, die größer als oder gleich wie rmin(e) ist, wobei r die Basis und min(e) der Mindestexponent sein kann. Das erweiterte Gleitkomma-Zahlenformat kann so strukturiert werden, dass subnormale Zahlen nicht verwendet, nicht enthalten oder entfernt werden.
  • Bei 908 kann entsprechend dem erweiterten Gleitkomma-Zahlenformat ein verkleinerter Teilsatz einer zweiten Binade verwendet werden, um einen Unendlich-Wert und einen NaN-Wert darzustellen. Die Prozessorkomponente und/oder die Rechnerkomponente können den verkleinerten Teilsatz der zweiten Binade verwenden, um entsprechend dem erweiterten Gleitkomma-Zahlenformat den Unendlich-Wert und den NaN-Wert darzustellen. Die zweite Binade kann zum Beispiel die höchste Binade sein, wobei die zweite Binade so zugeordnet werden kann, dass alle Bits des Exponentenfelds Werte von Eins aufweisen.
  • Das erweiterte Gleitkomma-Zahlenformat kann so strukturiert werden, dass ein verkleinerter (z.B. kleiner) Teilsatz von Datenpunkten eines Satzes von Datenpunkten der zweiten Binade verwendet wird, um den Unendlich-Wert und den NaN-Wert darzustellen. Der verkleinerte Satz von Datenpunkten kann weniger Datenpunkte als ein Satz von Datenpunkten aufweisen, der einer Gesamtheit der zweiten Binade zugehörig ist. In einigen Ausführungsformen kann das erweiterte Gleitkomma-Zahlenformat so strukturiert werden, dass ein einzelner Datenpunkt des Satzes von Datenpunkten der zweiten Binade verwendet wird, um den Unendlich-Wert und den NaN-Wert als einzelnes zusammengeführtes Symbol darzustellen. Das heißt, dass der verkleinerte Teilsatz von Datenpunkten einen einzelnen Datenpunkt aufweisen kann, der das einzelne zusammengeführte Symbol für den Unendlich-Wert und den NaN-Wert darstellen kann. In anderen Ausführungsformen kann der verkleinerte Teilsatz von Datenpunkten einen Datenpunkt aufweisen, der den Unendlich-Wert darstellen kann, und einen anderen Datenpunkt, der den NaN-Wert darstellen kann. Die anderen Datenpunkte des Satzes von Datenpunkten der zweiten Binade, die sich nicht im verkleinerten Satz von Datenpunkten befinden, können verwendet werden, um endliche Zahlen darzustellen, was den Bereich der Gleitkommazahlen, die mithilfe des erweiterten Gleitkomma-Zahlenformats dargestellt werden können, zusätzlich verbessern oder erweitern kann.
  • Wenn bei 910 eine Gleitkommazahl Null ist, kann entsprechend dem erweiterten Gleitkomma-Zahlenformat ein Vorzeichen von Null als ein „Don't-care“-Term dargestellt werden. Wenn eine Gleitkommazahl Null ist, können entsprechend dem erweiterten Gleitkomma-Zahlenformat die Prozessorkomponente und/oder die Rechnerkomponente das Vorzeichen von Null als ein „Don't-care“-Term darstellen. Bei dem „Don't-care“-Term kann es sich um einen Term oder ein Symbol handeln, der/das angeben kann, dass das Vorzeichen in Bezug auf den Null-Wert keine Rolle spielt.
  • Wenn eine Gleitkommazahl bei 912 Null ist, kann im Vorzeichenfeld für einen Wert von Null ein beliebiger Wert erzeugt werden, um den Term für das Vorzeichen von Null darzustellen. Die Prozessorkomponente und/oder die Rechnerkomponente können den beliebigen Wert im Vorzeichenfeld erzeugen, um den Term oder das Symbol für das Vorzeichen des Wertes von Null darzustellen, wenn Null zum Beispiel die Gleitkommazahl ist. Die Prozessorkomponente und/oder die Rechnerkomponente können einen beliebigen Wert oder ein beliebiges Symbol im Vorzeichenfeld des erweiterten Gleitkomma-Zahlenformats erzeugen, der/das für die Prozessorkomponente oder die Rechnerkomponente praktisch oder effizient (z.B. am praktischsten oder effizientesten) zu erzeugen und in das Vorzeichenfeld einzufügen ist. Die Prozessorkomponente und/oder die Rechnerkomponente können zum Beispiel einen beliebigen Wert erzeugen, der die geringste Menge an Ressourcen (z. B. Verarbeitungs- oder Datenverarbeitungsressourcen) oder zumindest weniger Ressourcen als sonst nutzen kann, um einen nichtbeliebigen Wert für das Vorzeichenfeld zu ermitteln und zu erzeugen, der das Vorzeichen des Wertes von Null darstellt.
  • Wenn bei 914 eine Gleitkommazahl Unendlich und/oder eine Nichtzahl ist, kann entsprechend dem erweiterten Gleitkomma-Zahlenformat ein Vorzeichen von Unendlich und/oder NaN als ein „Don't-care“-Term dargestellt werden. Wenn eine Gleitkommazahl Unendlich und/oder NaN ist, können entsprechend dem erweiterten Gleitkomma-Zahlenformat die Prozessorkomponente und/oder die Rechnerkomponente das Vorzeichen von Unendlich und/oder NaN als ein „Don't-care“-Term darstellen. Bei dem „Don't-care“-Term kann es sich um einen Term oder ein Symbol handeln, der/das angeben kann, dass das Vorzeichen in Bezug auf den Unendlich-Wert und/oder NaN-Wert keine Rolle spielt. In einigen Ausführungsformen können der Unendlich-Wert und der NaN-Wert als zusammengeführtes Symbol dargestellt werden. In anderen Ausführungsformen können der Unendlich-Wert und der NaN-Wert einzeln dargestellt werden.
  • Wenn bei 916 eine Gleitkommazahl Unendlich und/oder eine NaN ist, kann im Vorzeichenfeld, das dem Wert bzw. den Werten für Unendlich und/oder NaN zugehörig ist, ein beliebiger Wert erzeugt werden, um den Term bzw. die Terme für das Vorzeichen des Wertes bzw. der Werte für Unendlich und/oder NaN darzustellen. Die Prozessorkomponente und/oder die Rechnerkomponente können den beliebigen Wert im Vorzeichenfeld erzeugen, das dem Wert bzw. den Werten für Unendlich und/oder NaN zugehörig ist, um den Term oder das Symbol für das Vorzeichen des Wertes bzw. der Werte für Unendlich und/oder NaN darzustellen, wenn Unendlich oder NaN zum Beispiel das Ergebnis der Gleitkommazahl ist. Wie hierin beschrieben, können der Unendlich-Wert und der NaN-Wert in einigen Ausführungsformen als ein zusammengeführtes Symbol dargestellt werden, und in anderen Ausführungsformen können der Unendlich-Wert und der NaN-Wert einzeln dargestellt werden.
  • Entsprechend dem erweiterten Gleitkomma-Zahlenformat können die Prozessorkomponente und/oder die Rechnerkomponente einen beliebigen Wert oder ein beliebiges Symbol in dem Vorzeichenfeld erzeugen, das dem Wert bzw. den Werten für Unendlich und/oder NaN zugehörig ist, der/das für die Prozessorkomponente oder die Rechnerkomponente praktisch oder effizient (z.B. am praktischsten oder effizientesten) zu erzeugen und in ein solches Vorzeichenfeld einzufügen ist. Die Prozessorkomponente und/oder die Rechnerkomponente können zum Beispiel einen beliebigen Wert erzeugen, der die geringste Menge an Ressourcen (z. B. Verarbeitungs- oder Datenverarbeitungsressourcen) oder zumindest weniger Ressourcen als sonst verwenden kann, um einen nichtbeliebigen Wert für das Vorzeichenfeld zu ermitteln und zu erzeugen, der das Vorzeichen des Wertes bzw. der Werte für Unendlich und/oder NaN darstellt.
  • Wenn eine Gleitkommazahl bei 918 gerundet werden soll, kann entsprechend dem erweiterten Gleitkomma-Zahlenformat ein einziger Rundungsmodus zum Runden binärer Gleitkommazahlen verwendet werden. Wenn ein Runden von Zahlen erwünscht ist, können die Prozessorkomponente und/oder die Rechnerkomponente ein Runden von binären Gleitkomma-Zwischenzahlen (z.B. vorläufig berechnete Zahlenwerte) mit dem einzigen Rundungsmodus durchführen, um das Runden der binären Gleitkomma-Zwischenzahlen durchzuführen, um ein Ausführen von Operationen an oder Berechnen von binären Gleitkomma-Zahlen entsprechend dem definierten Gleitkomma-Zahlenformat zu ermöglichen. In einigen Ausführungsformen kann es sich bei dem einzigen Rundungsmodus um einen Modus zum Aufrunden auf die nächste Stelle handeln. Indem nur der Modus zum Aufrunden auf die nächste Stelle verwendet wird, um ein Runden von Gleitkommazahlen durchzuführen, kann der offenbarte Gegenstand die Effizienz verbessern, indem die Hardware (z.B. der Umfang und/oder die Art der Hardware oder Hardware-Ressourcen) verringert wird, die zum Ausführen der Anwendung und zum Ausführen von Operationen an oder Berechnen von binären Gleitkommazahlen verwendet wird.
  • Zur Vereinfachung der Erklärung werden die Verfahren und/oder die durch einen Computer implementierten Verfahren als eine Reihe von Schritten dargestellt und beschrieben. Es versteht sich und ist zu beachten, dass der offenbarte Gegenstand nicht durch die dargestellten Schritte und/oder durch die Reihenfolge der Schritte eingeschränkt wird, so können beispielsweise Schritte in verschiedenen Reihenfolgen und/oder gleichzeitig und mit anderen Schritten, die hierin nicht dargestellt und beschrieben werden, durchgeführt werden. Des Weiteren können nicht alle dargestellten Schritte erforderlich sein, um die durch einen Computer implementierten Verfahren gemäß dem offenbarten Gegenstand umzusetzen. Darüber hinaus werden Fachleute verstehen und beachten, dass die durch einen Computer implementierten Verfahren alternativ als eine Reihe von miteinander verbundenen Zuständen über ein Zustandsdiagramm oder Ereignisse dargestellt werden können. Darüber hinaus ist weiter zu beachten, dass die im Folgenden und durchgängig in dieser Beschreibung offenbarten durch einen Computer implementierten Verfahren in einem Herstellungsartikel gespeichert werden können, um ein Weiterleiten und Übertragen solcher durch einen Computer implementierten Verfahren auf Computer zu ermöglichen. Der Begriff Herstellungsartikel wie er hierin verwendet wird, soll ein Computerprogramm umfassen, auf das von durch einen Computer lesbaren Einheiten oder Speichermedien zugegriffen werden kann.
  • Um einen Kontext für die verschiedenen Aspekte des offenbarten Gegenstands zu schaffen, sollen 10 sowie die folgende Betrachtung eine allgemeine Beschreibung einer geeigneten Umgebung bereitstellen, in der die verschiedenen Aspekte des offenbarten Gegenstands umgesetzt werden können. 10 veranschaulicht ein Blockschaubild einer beispielhaften, nichteinschränkenden Betriebsumgebung, in der eine oder mehrere der hierin beschriebenen Ausführungsformen ermöglicht werden können. Eine wiederholte Beschreibung ähnlicher Elemente, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, entfällt aus Gründen der Kürze oder kann aus Gründen der Kürze entfallen. Mit Bezug auf 10 kann eine geeignete Betriebsumgebung 1000 zum Implementieren verschiedener Aspekte dieser Offenbarung auch einen Computer 1012 enthalten. Der Computer 1012 kann auch eine Verarbeitungseinheit 1014, einen Systemspeicher 1016 und einen Systembus 1018 enthalten. Der Systembus 1018 verbindet die Systemkomponenten einschließlich des Systemspeichers 1016 mit der Verarbeitungseinheit 1014, ohne darauf beschränkt zu sein. Bei der Verarbeitungseinheit 1014 kann es sich um einen beliebigen von verschiedenen verfügbaren Prozessoren handeln. Duale Mikroprozessoren und andere Mehrprozessorarchitekturen können auch als Verarbeitungseinheit 1014 eingesetzt werden. Bei dem Systembus 1018 kann es sich um eine beliebige von mehreren Arten einer Busstruktur/von Busstrukturen handeln, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus oder externen Bus und/oder einen lokalen Bus, die eine Vielzahl von verfügbaren Busarchitekturen nutzen, darunter Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE 1394) und Small Computer Systems Interface (SCSI), ohne darauf beschränkt zu sein. Der Systemspeicher 1016 kann auch einen flüchtigen Speicher 1020 und einen nichtflüchtigen Speicher 1022 enthalten. Das grundlegende Ein/Ausgabe-System (BIOS), das die grundlegenden Routinen zum Übertragen von Informationen zwischen Elementen innerhalb des Computers 1012 wie beispielsweise beim Hochfahren enthält, wird im nichtflüchtigen Speicher 1022 gespeichert. Beispielsweise und nicht einschränkend kann der nichtflüchtige Speicher 1022 einen Nur-Lese-Speicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren programmierbaren ROM (EEPROM), einen Flash-Speicher oder einen nichtflüchtigen Direktzugriffsspeicher (RAM) (z.B. ferroelektrischen RAM (FeRAM)) enthalten. Der flüchtige Speicher 1020 kann auch einen Direktzugriffsspeicher (RAM) enthalten, der als externer Zwischenspeicher fungiert. Beispielsweise und nicht einschränkend ist der RAM in vielen Formen wie z.B. als statischer RAM (SRAM), dynamischer RAM (DRAM), synchroner DRAM (SDRAM), synchroner SDRAM mit doppelter Datenübertragungsrate (DDR SDRAM), erweiterter SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direkter Rambus RAM (DRRAM), direkter dynamischer Rambus RAM (DRDRAM) und dynamischer Rambus RAM verfügbar.
  • Das Computersystem 1012 kann ferner wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computerspeichermedien enthalten. 10 veranschaulicht zum Beispiel einen Plattenspeicher 1024. Der Plattenspeicher 1024 kann auch Einheiten wie ein Magnetplattenlaufwerk, ein Diskettenlaufwerk, ein Bandlaufwerk, ein Jaz-Laufwerk, ein Zip-Laufwerk, ein LS-100-Laufwerk, eine Flash-Speicherkarte oder einen Speicher-Stick enthalten, ohne darauf beschränkt zu sein. Der Plattenspeicher 1024 kann auch Speichermedien separat oder in Verbindung mit anderen Speichermedien enthalten, darunter ein optisches Laufwerk wie eine Kompaktspeicherplatte-ROM-Einheit (CD-ROM), ein beschreibbares CD-Laufwerk (CD-R-Laufwerk), ein wiederbeschreibbares CD-Laufwerk (CD-RW-Laufwerk) oder ein digitales vielseitig verwendbares ROM-Laufwerk (DVD-ROM), ohne darauf beschränkt zu sein. Um die Verbindung des Plattenspeichers 1024 mit dem Systembus 1018 zu ermöglichen, wird in der Regel eine wechselbare oder nichtwechselbare Schnittstelle wie beispielsweise die Schnittstelle 1026 verwendet. 10 veranschaulicht ferner Software, die als Schnittstelle zwischen Benutzern und den grundlegenden Computerressourcen fungiert, die in der geeigneten Betriebsumgebung 1000 beschrieben sind. Diese Software kann beispielsweise auch ein Betriebssystem 1028 enthalten. Das Betriebssystem 1028, das auf dem Plattenspeicher 1024 gespeichert werden kann, dient zum Steuern und Zuweisen von Ressourcen des Computers 1012. Die Systemanwendungen 1030 nutzen die Vorteile der Ressourcenverwaltung durch das Betriebssystem 1028 mittels der Programmmodule 1032 und Programmdaten 1034, die beispielsweise entweder im Systemspeicher 1016 oder im Plattenspeicher 1024 gespeichert sind. Es sei darauf hingewiesen, dass diese Offenbarung mit verschiedenen Betriebssystemen oder Kombinationen von Betriebssystemen umgesetzt werden kann. Ein Benutzer gibt über die Eingabeeinheit(en) 1036 Befehle oder Informationen in den Computer 1012 ein. Zu den Eingabeeinheiten 1036 gehören, ohne darauf beschränkt zu sein, eine Zeigeeinheit wie eine Maus, ein Trackball, ein Stift, ein Touchpad, eine Tastatur, ein Mikrofon, ein Joystick, ein Gamepad, eine Satellitenschüssel, ein Scanner, eine TV-Karte, eine Digitalkamera, eine digitale Videokamera, eine Webcam und Ähnliches. Diese und andere Eingabeeinheiten sind über den Systembus 1018 durch den Schnittstellenanschluss/die Schnittstellenanschlüsse 1038 mit der Verarbeitungseinheit 1014 verbunden. Der Schnittstellenanschluss/die Schnittstellenanschlüsse 1038 enthält/enthalten beispielsweise einen seriellen Anschluss, einen parallelen Anschluss, einen Spiele-Anschluss und einen Universal Serial Bus (USB). Die Ausgabeeinheit(en) 1040 verwendet/verwenden einige der gleichen Anschlussarten wie die Eingabeeinheit(en) 1036. So kann beispielsweise ein USB-Anschluss verwendet werden, um dem Computer 1012 eine Eingabe bereitzustellen und Informationen vom Computer 1012 an eine Ausgabeeinheit 1040 auszugeben. Der Ausgabeadapter 1042 wird bereitgestellt, um zu veranschaulichen, dass es unter anderen Ausgabeeinheiten 1040 einige Ausgabeeinheiten 1040 wie Monitore, Lautsprecher und Drucker gibt, die spezielle Adapter benötigen. Beispielsweise und nicht einschränkend enthalten die Ausgangsadapter 1042 Video- und Soundkarten, die ein Verfahren zur Verbindung zwischen der Ausgabeeinheit 1040 und dem Systembus 1018 bereitstellen. Es sei darauf hingewiesen, dass andere Einheiten und/oder Systeme von Einheiten sowohl Einals auch Ausgabefähigkeiten bereitstellen, so z.B. der/die entfernt angeordnete(n) Computer 1044.
  • Der Computer 1012 kann in einer vernetzten Umgebung mithilfe logischer Verbindungen mit einem oder mehreren entfernt angeordneten Computern wie beispielsweise dem/den entfernt angeordneten Computer(n) 1044 betrieben werden. Bei dem/den entfernt angeordneten Computer(n) 1044 kann es sich um einen Computer, einen Server, einen Router, einen Netzwerk-PC, eine Workstation, eine mikroprozessorgesteuerte Vorrichtung, eine Peer-Einheit oder einen anderen gemeinsamen Netzwerkknoten und Ähnliches handeln, diese können in der Regel auch viele oder alle der im Zusammenhang mit dem Computer 1012 beschriebenen Elemente enthalten. Aus Gründen der Kürze ist nur eine Speichereinheit 1046 mit dem/den entfernt angeordneten Computer(n) 1044 dargestellt. Der/die entfernt angeordnete(n) Computer 1044 ist/sind logisch über eine Netzwerkschnittstelle 1048 mit dem Computer 1012 verbunden und anschließend physisch über die Datenübertragungsverbindung 1050 verbunden. Die Netzwerkschnittstelle 1048 umfasst drahtgebundene und/oder drahtlose Datenübertragungsnetzwerke wie lokale Netzwerke (LAN), Weitverkehrsnetzwerke (WAN), Mobilfunknetzwerke usw. Zu LAN-Technologien gehören Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring und Ähnliches. Zu WAN-Technologien gehören, ohne darauf beschränkt zu sein, Punkt-zu-Punkt-Verbindungen, Leitungsvermittlungsnetzwerke wie Integrated Services Digital Networks (ISDN) und deren Varianten, Paketvermittlungsnetzwerke und Digital Subscriber Lines (DSL). Die Datenübertragungsverbindung(en) 1050 bezieht/beziehen sich auf die Hardware/Software, die verwendet wird, um die Netzwerkschnittstelle 1048 mit dem Systembus 1018 zu verbinden. Während die Datenübertragungsverbindung 1050 zur Veranschaulichung im Computer 1012 dargestellt ist, kann sie sich auch außerhalb des Computers 1012 befinden. Die Hardware/Software für die Verbindung mit der Netzwerkschnittstelle 1048 kann auch zu lediglich beispielhaften Zwecken interne und externe Technologien wie Modems mit normalen Telefonmodems, Kabelmodems und DSL-Modems, ISDN-Adapter und Ethernet-Karten enthalten.
  • Bei einer oder mehreren Ausführungsformen kann es sich um ein System, ein Verfahren, eine Vorrichtung und/oder ein Computerprogrammprodukt auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der einen oder mehreren Ausführungsformen auszuführen. Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums können auch die Folgenden gehören: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter. Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten des offenbarten Gegenstand kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte des offenbarten Gegenstands durchzuführen.
  • Aspekte des offenbarten Gegenstands sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können. Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Verfahren zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen. Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Der Ablaufplan und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen des offenbarten Gegenstands. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Zwar wurde der Gegenstand vorstehend im allgemeinen Kontext von durch einen Computer ausführbaren Anweisungen eines Computerprogrammprodukts beschrieben, das auf einem Computer und/oder Computern ausgeführt wird, Fachleute werden jedoch erkennen, dass diese Offenbarung auch in Kombination mit anderen Programmmodulen umgesetzt werden kann. Im Allgemeinen können Programmmodule Routinen, Programme, Komponenten, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen und/oder bestimmte abstrakte Datentypen implementieren. Darüber hinaus ist für Fachleute offensichtlich, dass die hierin beschriebenen, durch einen Computer implementierten Verfahren mit anderen Computersystemkonfigurationen ausgeführt werden können, darunter Ein- oder Mehrprozessorcomputersysteme, Mini-Datenverarbeitungseinheiten, Großrechner sowie Computer, tragbare Datenverarbeitungseinheiten (z.B. PDA, Telefon), mikroprozessorgestützte oder programmierbare Unterhaltungs- oder Industrieelektronik und Ähnliches. Die dargestellten Aspekte können auch in verteilten Datenverarbeitungsumgebungen eingesetzt werden, wo Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. Einige, wenn nicht sogar alle Aspekte dieser Offenbarung können jedoch auf eigenständigen Computern durchgeführt werden. In einer verteilten Datenverarbeitungsumgebung können sich Programmmodule sowohl auf lokalen als auch auf entfernt angeordneten Speichereinheiten befinden.
  • Wie in dieser Anwendung verwendet, können sich die Begriffe „Komponente“, „System“, „Plattform“, „Schnittstelle“ und Ähnliches auf eine computerbezogene Entität oder eine mit einer Arbeitsmaschine verbundene Entität mit einer oder mehreren spezifischen Funktionalitäten beziehen und/oder diese enthalten. Bei den hierin offenbarten Entitäten kann es sich entweder um Hardware, eine Kombination aus Hardware und Software, Software oder Software in Ausführung handeln. Bei einer Komponente kann es sich beispielsweise um einen Prozess, der auf einem Prozessor ausgeführt wird, einen Prozessor, ein Objekt, eine ausführbare Datei, einen Ausführungs-Thread, ein Programm und/oder einen Computer handeln, ohne darauf beschränkt zu sein. Zur Veranschaulichung kann es sich auch bei einer Anwendung, die auf einem Server ausgeführt wird, und bei dem Server um eine Komponente handeln. Eine oder mehrere Komponenten können sich innerhalb eines Prozesses und/oder Ausführungs-Threads befinden, und eine Komponente kann sich auf einem Computer befinden und/oder auf zwei oder mehr Computer verteilt sein. In einem weiteren Beispiel können entsprechende Komponenten von verschiedenen, von einem Computer lesbaren Medien mit unterschiedlichen darauf gespeicherten Datenstrukturen ausgeführt werden. Die Komponenten können über lokale und/oder entfernt angeordnete Prozesse Daten austauschen, beispielsweise in Übereinstimmung mit einem Signal mit einem oder mehreren Datenpaketen (z.B. Daten einer Komponente, die mit einer anderen Komponente in einem lokalen System, einem verteilten System und/oder über ein Netzwerk wie dem Internet mit anderen Systemen über das Signal interagiert). In einem weiteren Beispiel kann es sich bei einer Komponente um eine Vorrichtung mit spezifischer Funktionalität handeln, die von mechanischen Teilen bereitgestellt wird, die durch elektrische oder elektronische Schaltungen betrieben werden, die von einer Software- oder Firmware-Anwendung betrieben werden, die von einem Prozessor ausgeführt wird. Der Prozessor kann sich in diesem Fall innerhalb oder außerhalb der Vorrichtung befinden und kann zumindest einen Teil der Software- oder Firmware-Anwendung ausführen. In noch einem weiteren Beispiel kann es sich bei einer Komponente um eine Vorrichtung handeln, die eine spezifische Funktionalität durch elektronische Komponenten ohne mechanische Teile bereitstellt, wobei die elektronischen Komponenten einen Prozessor oder ein anderes Verfahren enthalten können, um Software oder Firmware auszuführen, die zumindest teilweise die Funktionalität der elektronischen Komponenten bieten. In Bezug auf einen Aspekt kann eine Komponente eine elektronische Komponente über eine virtuelle Maschine emulieren, z.B. in einem Cloud-Computing-System.
  • Darüber hinaus soll der Begriff „oder“ als einschließendes „oder“ und nicht als ausschließendes „oder“ verstanden werden. Das heißt, soweit nicht anders angegeben oder aus dem Kontext klar erkennbar ist, soll „X verwendet A oder B“ für alle natürlichen einschließenden Vertauschungen gelten. Das heißt, wenn X verwendet A; X verwendet B oder X verwendet A und B gilt, dann ist „X verwendet A oder B“ in jedem der vorstehenden Fälle erfüllt. Darüber hinaus sind die Artikel „ein/einer/eine/eines“ und „einen/eine/eines“, so wie sie in dieser Beschreibung und in den beigefügten Zeichnungen verwendet werden, generell so zu verstehen, dass „ein(e) oder mehrere“ gemeint ist, soweit nicht anders angegeben oder sich diese Artikel durch den Kontext klar auf eine Singularform beziehen. Wie hierin verwendet, werden die Begriffe „Beispiel“ und/oder „beispielhaft“ verwendet, um als Beispiel, Fall oder Veranschaulichung zu dienen. Um Zweifel auszuschließen, wird der hierin offenbarte Gegenstand nicht durch solche Beispiele eingeschränkt. Darüber hinaus ist jeder Aspekt oder jeder Entwurf, der hierin als „Beispiel“ und/oder „beispielhaft“ beschrieben wird, nicht unbedingt als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Entwürfen auszulegen, noch soll es gleichwertige beispielhafte Strukturen und Techniken ausschließen, die Fachleute kennen.
  • Wie in der vorliegenden Beschreibung verwendet, kann sich der Begriff „Prozessor“ im Wesentlichen auf jede Datenverarbeitungseinheit oder Einheit beziehen, die Einzelkernprozessoren; Einzelprozessoren mit Software-Multithread-Ausführungsfähigkeit; Mehrkernprozessoren; Mehrkernprozessoren mit Software-Multithread-Ausführungsfähigkeit; Mehrkernprozessoren mit Hardware-Multithread-Technologie; parallele Plattformen und parallele Plattformen mit verteiltem gemeinsamen Speicher aufweist, ohne darauf beschränkt zu sein. Darüber hinaus kann sich ein Prozessor auf eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung (ASIC), einen digitalen Signalprozessor (DSP), eine vor Ort programmierbare Gatter-Anordnung (FPGA), eine speicherprogrammierbare Steuerung (SPS), ein komplexes programmierbares logisches Bauteil (CPLD), eine diskrete Gatter- oder Transistorlogik, diskrete Hardwarekomponenten oder eine beliebige Kombination daraus beziehen, die zum Ausführen der hierin beschriebenen Funktionen vorgesehen sind. Darüber hinaus können Prozessoren nanoskalige Architekturen wie molekulare und auf Quantenpunkt beruhende Transistoren, Schalter und Gatter nutzen, ohne darauf beschränkt zu sein, um die Raumnutzung zu optimieren oder die Leistung der Benutzerausrüstung zu verbessern. Ein Prozessor kann auch als Kombination von Datenverarbeitungseinheiten umgesetzt werden. In dieser Offenbarung werden Begriffe wie „speichern“, „Speicher“, „Daten speichern“, „Datenspeicher“, „Datenbank“ und im Wesentlichen jede andere Informationsspeicherkomponente, die für den Betrieb und die Funktionalität einer Komponente maßgeblich ist, verwendet, um sich auf „Speicherkomponenten“, in einem „Speicher“ enthaltene Entitäten oder Komponenten zu beziehen, die einen Speicher aufweisen. Es sei darauf hingewiesen, dass es sich bei den hierin beschriebenen Speichern und/oder Speicherkomponenten entweder um flüchtige Speicher oder nichtflüchtige Speicher handeln kann oder dass diese sowohl flüchtige als auch nichtflüchtige Speicher enthalten können. Beispielsweise und nicht einschränkend kann der nichtflüchtige Speicher einen Nur-Lese-Speicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren programmierbaren ROM (EEPROM), einen Flash-Speicher oder einen nichtflüchtigen Direktzugriffsspeicher (RAM) (z.B. ferroelektrischen RAM (FeRAM)) enthalten. Der flüchtige Speicher kann einen RAM enthalten, der beispielsweise als externer Zwischenspeicher fungieren kann. Beispielsweise und nicht einschränkend ist der RAM in vielen Formen wie z.B. als synchroner RAM (SRAM), dynamischer RAM (DRAM), synchroner DRAM (SDRAM), synchroner SDRAM mit doppelter Datenübertragungsrate (DDR SDRAM), erweiterter SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direkter Rambus RAM (DRRAM), direkter dynamischer Rambus RAM (DRDRAM) und dynamischer Rambus RAM verfügbar. Darüber hinaus sollen die offenbarten Speicherkomponenten von Systemen oder durch einen Computer implementierten Verfahren, die hierin enthalten sind, diese und alle anderen geeigneten Arten von Speichern enthalten, ohne darauf beschränkt zu sein.
  • Was oben beschrieben wurde, umfasst nur Beispiele für Systeme und durch einen Computer implementierte Verfahren. Es ist natürlich nicht möglich, jede denkbare Kombination von Komponenten oder durch einen Computer implementierten Verfahren zum Beschreiben dieser Offenbarung darzustellen, aber ein Fachmann kann erkennen, dass viele weitere Kombinationen und Veränderungen dieser Offenbarung möglich sind. Soweit die Begriffe „enthalten/umfassen“, „aufweisen“, „besitzen“ und Ähnliches in der ausführlichen Beschreibung, den Ansprüchen, Anhängen und Zeichnungen verwendet werden, sollen diese Begriffe darüber hinaus in ähnlicher Weise wie der Begriff „aufweisen“ einschließend sein, so wie „aufweisen“ ausgelegt wird, wenn es als Übergangswort in einem Anspruch verwendet wird. Die Beschreibungen der verschiedenen Ausführungsformen wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich und Erfindungsgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hierin beschriebenen Ausführungsformen zu verstehen.

Claims (11)

  1. Durch einen Computer implementiertes Verfahren, das aufweist: Erzeugen entsprechender numerischer Felder in einem definierten Gleitkomma-Zahlenformat durch ein funktionsmäßig mit einem Prozessor verbundenes System, wobei die entsprechenden numerischen Felder ein Vorzeichenfeld, ein Exponentenfeld und ein Mantissenfeld aufweisen, wobei das definierte Gleitkomma-Zahlenformat sechs Bits im Exponentenfeld verwendet; und Berechnen von binären Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat durch das System in Verbindung mit der Ausführung einer Anwendung.
  2. Durch einen Computer implementiertes Verfahren nach Anspruch 1, wobei das definierte Gleitkomma-Zahlenformat eine erste Binade verwendet, um Null und normale Zahlen darzustellen, wobei die erste Binade dem Exponentenfeld zugehörig ist, das ausschließlich Nullen aufweist, und wobei eine normale Zahl der normalen Zahlen eine endliche Nichtnull-Gleitkommazahl mit einer Größe ist, die größer als oder gleich groß wie ein Mindestwert ist, der als eine Funktion einer Basis und eines Mindestexponenten in Verbindung mit dem definierten Gleitkomma-Zahlenformat ermittelt wird.
  3. Durch einen Computer implementiertes Verfahren nach Anspruch 2, wobei die erste Binade einen Datenpunkt und andere Datenpunkte aufweist, wobei der Datenpunkt einen Bruchteil aller Nullen aufweist und Null darstellt, und wobei die anderen Datenpunkte die normalen Zahlen darstellen.
  4. Durch einen Computer implementiertes Verfahren nach Anspruch 2, wobei das definierte Gleitkomma-Zahlenformat eine zweite Binade verwendet, die dem Exponentenfeld zugehörig ist, das ausschließlich Einsen aufweist, wobei ein kleinerer Satz von Datenpunkten in der zweiten Binade verwendet wird, um einen Unendlich-Wert und einen Nichtzahl-Wert entsprechend dem definierten Gleitkomma-Zahlenformat darzustellen, und wobei der kleinere Satz von Datenpunkten weniger Datenpunkte als der Satz von Datenpunkten aufweist, der der gesamten zweiten Binade zugehörig ist.
  5. Durch einen Computer implementiertes Verfahren nach Anspruch 4, wobei das definierte Gleitkomma-Zahlenformat nur einen Datenpunkt der zweiten Binade verwendet, um sowohl den Unendlich-Wert als auch den Nichtzahl-Wert darzustellen.
  6. Durch einen Computer implementiertes Verfahren nach Anspruch 1, wobei die sechs Bits des Exponentenfelds eine Mindestanzahl von Bits aufweisen, um einen Bereich von Zahlenwerten darzustellen, deren Vorkommen während der Ausführung der Anwendung ohne Verwenden von subnormalen Zahlen prognostiziert wird, und wobei das definierte Gleitkomma-Zahlenformat die subnormalen Zahlen nicht enthält, um ein Verbessern der Effizienz zu ermöglichen, indem die Hardware verringert wird, die verwendet wird, um die Anwendung auszuführen und die binären Gleitkommazahlen zu berechnen.
  7. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das weiterhin aufweist: entsprechend dem definierten Gleitkomma-Zahlenformat Darstellen eines Vorzeichens von Null durch das System als einen Term, der angibt, dass das Vorzeichen in Bezug auf Null keine Rolle spielt; und Erzeugen eines beliebigen Wertes im Vorzeichenfeld durch das System, um den Term darzustellen, und wobei beim Erzeugen des beliebigen Wertes weniger Ressourcen verwendet werden als beim Ermitteln und Erzeugen eines nichtbeliebigen Wertes für das Vorzeichenfeld.
  8. Durch einen Computer implementiertes Verfahren nach Anspruch 1, das weiterhin aufweist: in Übereinstimmung mit dem definierten Gleitkomma-Zahlenformat Darstellen eines Nichtzahl-Wertes und eines Unendlich-Wertes zusammen als zusammengeführtes Symbol durch das System; Darstellen eines Vorzeichens des zusammengeführten Symbols durch das System als einen Term, der angibt, dass das Vorzeichen in Bezug auf das zusammengeführte Symbol keine Rolle spielt; und Erzeugen eines beliebigen Wertes im Vorzeichenfeld durch das System, um den Term darzustellen, und wobei beim Erzeugen des beliebigen Wertes weniger Ressourcen verwendet werden als beim Ermitteln und Erzeugen eines nichtbeliebigen Wertes für das Vorzeichenfeld.
  9. Durch einen Computer implementiertes Verfahren nach Anspruch 1, wobei das definierte Gleitkomma-Zahlenformat nur einen einzigen Rundungsmodus verwendet, bei dem es sich um Aufrunden auf die nächste Stelle handelt, und wobei das Verfahren weiterhin aufweist: Runden von binären Gleitkomma-Zwischenzahlen durch das System mit dem einzigen Rundungsmodus, um ein Runden der binären Gleitkomma-Zwischenzahlen durchzuführen, um das Berechnen der binären Gleitkommazahlen entsprechend dem definierten Gleitkomma-Zahlenformat zu ermöglichen, wobei das Verwenden des einzigen Rundungsmodus ein Verbessern der Effizienz ermöglicht, indem die Hardware verringert wird, die verwendet wird, um die Anwendung auszuführen und die binären Gleitkommazahlen zu berechnen.
  10. System, das ein Mittel aufweist, das geeignet ist, alle Schritte des Verfahrens gemäß einem der vorherigen Verfahrensansprüche durchzuführen.
  11. Computerprogramm, das Anweisungen zum Ausführen aller Schritte des Verfahrens gemäß einem der vorherigen Verfahrensansprüche aufweist, wenn das Computerprogramm auf einem Computersystem ausgeführt wird.
DE112019001799.3T 2018-06-05 2019-05-30 Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit Pending DE112019001799T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/000,435 US10656913B2 (en) 2018-06-05 2018-06-05 Enhanced low precision binary floating-point formatting
US16/000,435 2018-06-05
PCT/IB2019/054479 WO2019234559A1 (en) 2018-06-05 2019-05-30 Enhanced low precision binary floating-point formatting

Publications (1)

Publication Number Publication Date
DE112019001799T5 true DE112019001799T5 (de) 2021-01-21

Family

ID=68692691

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019001799.3T Pending DE112019001799T5 (de) 2018-06-05 2019-05-30 Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit

Country Status (6)

Country Link
US (2) US10656913B2 (de)
JP (1) JP7244186B2 (de)
CN (1) CN112204516B (de)
DE (1) DE112019001799T5 (de)
GB (1) GB2586559B (de)
WO (1) WO2019234559A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190362461A1 (en) * 2018-08-10 2019-11-28 Intel Corporation Multi-object, three-dimensional modeling and model selection
US20200361452A1 (en) * 2019-05-13 2020-11-19 Toyota Research Institute, Inc. Vehicles and methods for performing tasks based on confidence in accuracy of module output
US11551148B2 (en) * 2020-04-29 2023-01-10 Marvell Asia Pte Ltd System and method for INT9 quantization
CN112019865A (zh) * 2020-07-26 2020-12-01 杭州皮克皮克科技有限公司 一种用于深度学习编码的跨平台熵编码方法及解码方法
US11693692B2 (en) 2021-06-17 2023-07-04 International Business Machines Corporation Program event recording storage alteration processing for a neural network accelerator instruction
US11675592B2 (en) 2021-06-17 2023-06-13 International Business Machines Corporation Instruction to query for model-dependent information
US11269632B1 (en) 2021-06-17 2022-03-08 International Business Machines Corporation Data conversion to/from selected data type with implied rounding mode
US11797270B2 (en) 2021-06-17 2023-10-24 International Business Machines Corporation Single function to perform multiple operations with distinct operation parameter validation
US11669331B2 (en) 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11625244B2 (en) * 2021-06-22 2023-04-11 Intel Corporation Native support for execution of get exponent, get mantissa, and scale instructions within a graphics processing unit via reuse of fused multiply-add execution unit hardware logic

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2689414B2 (ja) * 1986-01-09 1997-12-10 日本電気株式会社 浮動小数点表現変換器
GB2317248B (en) 1996-09-02 2001-08-15 Siemens Plc Floating point number data processing means
US5944774A (en) 1997-09-26 1999-08-31 Ericsson Inc. Methods apparatus and computer program products for accumulating logarithmic values
EP1025485B1 (de) 1997-10-23 2001-09-12 Advanced Micro Devices, Inc. Multifunktionnelle zweiteilige nachschlagetabelle
US6601079B1 (en) 1997-12-29 2003-07-29 Intel Corporation Converting between different floating point exponent representations
JPH11195012A (ja) * 1998-01-06 1999-07-21 Namco Ltd 自由曲線演算方法および該方法に係るプログラムを格納した記憶媒体
US6650327B1 (en) * 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US7330864B2 (en) * 2001-03-01 2008-02-12 Microsoft Corporation System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations
US6782405B1 (en) * 2001-06-07 2004-08-24 Southern Methodist University Method and apparatus for performing division and square root functions using a multiplier and a multipartite table
US6748412B2 (en) * 2001-09-26 2004-06-08 Intel Corporation Square-and-multiply exponent processor
US7188133B2 (en) * 2002-06-20 2007-03-06 Matsushita Electric Industrial Co., Ltd. Floating point number storage method and floating point arithmetic device
US7515456B2 (en) * 2006-09-11 2009-04-07 Infineon Technologies Ag Memory circuit, a dynamic random access memory, a system comprising a memory and a floating point unit and a method for storing digital data
CN100535851C (zh) 2007-11-16 2009-09-02 中国科学院计算技术研究所 一种浮点数据转换装置和方法
US8103858B2 (en) 2008-06-30 2012-01-24 Intel Corporation Efficient parallel floating point exception handling in a processor
US8626807B2 (en) 2009-01-08 2014-01-07 International Business Machines Corporation Reuse of rounder for fixed conversion of log instructions
US9104510B1 (en) * 2009-07-21 2015-08-11 Audience, Inc. Multi-function floating point unit
US8645439B2 (en) 2009-12-24 2014-02-04 Mcmaster University Bit-width allocation for scientific computations
US9143159B2 (en) 2012-10-04 2015-09-22 Silminds, Inc. DPD/BCD to BID converters
US9483232B2 (en) * 2014-03-07 2016-11-01 Arm Limited Data processing apparatus and method for multiplying floating point operands
CN106570559A (zh) 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
CN107526709A (zh) * 2016-06-15 2017-12-29 辉达公司 使用低精度格式的张量处理
US20180121168A1 (en) 2016-10-27 2018-05-03 Altera Corporation Denormalization in multi-precision floating-point arithmetic circuitry
US11010659B2 (en) * 2017-04-24 2021-05-18 Intel Corporation Dynamic precision for neural network compute operations
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及系统
US11216250B2 (en) * 2017-12-06 2022-01-04 Advanced Micro Devices, Inc. Dynamic, variable bit-width numerical precision on field-programmable gate arrays for machine learning tasks
US10592208B2 (en) * 2018-05-07 2020-03-17 International Business Machines Corporation Very low precision floating point representation for deep learning acceleration

Also Published As

Publication number Publication date
US10656913B2 (en) 2020-05-19
CN112204516A (zh) 2021-01-08
GB2586559B (en) 2021-07-14
GB202019054D0 (en) 2021-01-20
US20190369960A1 (en) 2019-12-05
JP7244186B2 (ja) 2023-03-22
GB2586559A (en) 2021-02-24
US11775257B2 (en) 2023-10-03
US20200233642A1 (en) 2020-07-23
CN112204516B (zh) 2024-05-24
WO2019234559A1 (en) 2019-12-12
JP2021525403A (ja) 2021-09-24

Similar Documents

Publication Publication Date Title
DE112019001799T5 (de) Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit
DE60318494T2 (de) Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE102013018915A1 (de) Ein Ansatz zur Leistungsreduzierung in Gleitkommaoperationen
DE102019111995A1 (de) Training eines künstlichen neuronalen Netzes unter Verwendung von flexiblen Gleitkommatensoren
DE112018005205T5 (de) Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung
DE112020003600T5 (de) Hardware für maschinelles lernen mit parameterkomponenten mit reduzierter genauigkeit für effiziente parameteraktualisierung
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
DE112006003875T5 (de) Gleitkommaaddition für unterschiedliche Gleitkommaformate
DE112018000140T5 (de) Verschmolzene Multiplikations-Additions-Gleitkommaoperationen auf 128 BIT breiten Operanden
DE19540102A1 (de) Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
EP3590078B1 (de) Neuronalnetzsystem
Reff Spectral properties of oriented hypergraphs
DE102019133699A1 (de) Anweisungssatz für hybrid-cpu und analogen speicherinternen künstliche-intelligenz-prozessor
DE112020004031T5 (de) Systembezogene selektive quantisierung für in der leistungsfähigkeit optimiertes verteiltes deep learning
CN116416561A (zh) 一种视频图像处理方法和装置
DE112020006010T5 (de) Schulung eines neuronalen netzwerks durch verwenden eines datenflussgraphen und dynamische verwaltung von arbeitsspeicher
DE102014116454A1 (de) Verfügbarkeit von Inhalt für Aufgaben zur Verarbeitung von natürlicher Sprache
DE102022103358A1 (de) Training für maschinelles lernen im logarithmischen zahlensystem
DE102019103319A1 (de) Stochastisches runden von zahlenwerten
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE102014114392A1 (de) Skizzieren von strukturierten Matrizen bei Problemen nichtlinearer Regression
EP3502974A1 (de) Verfahren zur realisierung eines neuronalen netzes
DE112019004391T5 (de) Grossmodellunterstützung für deep learning
DE112021002868T5 (de) Erzeugung von rich descriptor framework zu text unter verwendung vongraphen und strukturellen neuronalen codierern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence