Abstract:
Hier ist ein Grafikprozessor beschrieben, der eine erste Schaltungsanordnung umfasst, die dazu ausgelegt ist, eine decodierte Anweisung auszuführen, und eine zweite Schaltungsanordnung, die dazu ausgelegt ist, eine Anweisung in die decodierte Anweisung zu decodieren. Die zweite Schaltungsanordnung ist dazu ausgelegt, eine Anzahl von Registern innerhalb einer Registerdatei zu bestimmen, die für einen Thread der Verarbeitungsressource verfügbar sind, und die Anweisung basierend auf dieser Anzahl von Registern zu decodieren.
Abstract:
Es wird ein Prozessor zum Erleichtern einer Registerteilung offenbart. Der Prozessor weist Folgendes auf: mehrere Ausführungseinheiten (EUs), die jeweils Folgendes aufweisen: eine Registerdatei für allgemeine Zwecke (GRF) mit mehreren Registern und Registerteilungshardware zur Unterteilung der mehreren Register in einen ersten Registersatz, der dediziert für die Ausführung eines ersten Thread-Satzes vorgesehen ist, und einen zweiten Register-Satz, der für die Ausführung eines zweiten Thread-Satzes geteilt wird.
Abstract:
Hier beschriebene Beispiele betreffen eine Software- und Hardwareoptimierung, wodurch Szenarien behandelt werden, bei denen ein Schreibvorgang in ein Register weniger als das gesamte Register betrifft. Ein Compiler erkennt Befehle, die Teilschreibvorgänge in dasselbe Register vornehmen, gruppiert diese Befehle und stellt Hardware Hinweise über das teilweise Schreiben bereit. Die Ausführungseinheit kombiniert die Ausgangsdaten für gruppierte Befehle und aktualisiert das Zielregister als Einzelschreibvorgang an Stelle mehrerer getrennter Teilschreibvorgänge.
Abstract:
Die hierin beschriebenen Ausführungsformen stellen bereit, dass eine Anweisung und die zugeordnete Logik GPGPU-Programmcode ermöglichen, auf Spezial-Hardwarelogik zuzugreifen, um Skalarproduktoperationen zu beschleunigen. Eine Ausführungsform stellt eine Grafikverarbeitungseinheit bereit, die eine Abrufeinheit zum Abrufen einer Anweisung zur Ausführung und eine Entschlüsselungseinheit zum Entschlüsseln der Anweisung in eine entschlüsselte Anweisung umfasst. Die entschlüsselte Anweisung ist ein Matrixanweisung, um die Grafikprozessoreinheit zu veranlassen, eine parallele Skalarproduktoperation durchzuführen. Die GPGPU umfasst auch eine systolische Skalarprodukteinheit zum Ausführen der entschlüsselten Anweisung in einer oder mehreren SIMD-Spuren unter Verwendung mehrerer systolischer Schichten, wobei zum Ausführen der entschlüsselten Anweisung ein auf einer ersten systolischen Schicht berechnetes Skalarprodukt an eine zweite systolische Schicht ausgegeben werden soll, wobei jede systolische Schicht einen oder mehrere Sätze von miteinander verbundenen Multiplizierern und Addierern umfasst, wobei jeder Satz von Multiplizierern und Addierern dazu dient, ein Skalarprodukt zu erzeugen.
Abstract:
Systems, apparatus, articles, and methods are described including operations to generate a weighted look-up-table based at least in part on individual pixel input values within an active block region and on a plurality of contrast compensation functions. A second level compensation may be performed for a center pixel block of the active region based at least in part on the weighted look-up-table.
Abstract:
Conversion of an array of structures (AOS) to a structure of arrays (SOA) improves the efficiency of transfer from the AOS to the SOA. A similar technique can be used to convert efficiently from an SOA to an AOS. The controller performing the conversion computes a partition size as the highest common factor between the structure size of structures in AOS and the number of banks in a first memory device, and transfers data based on the partition size, rather than on the structure size. The controller can read a partition size number of elements from multiple different structures to ensure that full data transfer bandwidth is used for each transfer.
Abstract:
Se describen procesadores gráficos y unidades de procesamiento gráfico que tienen instrucciones de acumulación de producto de punto para un formato de punto flotante híbrido. En una realización, una unidad de procesamiento gráfico comprende: un multiprocesador de instrucción única, subproceso múltiple (SIMT). El multiprocesador SIMT comprende: una caché de instrucciones; una memoria compartida acoplada con la caché de instrucciones; y circuitos acoplados con la memoria compartida y la caché de instrucciones. Los circuitos incluyen: múltiples unidades de textura; un primer núcleo que incluye hardware para acelerar las operaciones de matriz; y un segundo núcleo. El segundo núcleo está configurado para: recibir una instrucción que tiene múltiples operandos en un formato de número bfloat16, BF16, en donde los múltiples operandos incluyen un primer operando de origen, un segundo operando de origen y un tercer operando de origen, y el formato de número BF16 es un formato de punto flotante de dieciséis bits que tiene un exponente de ocho bits; y procesar la instrucción, en donde procesar la instrucción incluye multiplicar el segundo operando de origen por el tercer operando de origen y agregar un primer operando de origen a un resultado de la multiplicación. (Traducción automática con Google Translate, sin valor legal)
Abstract:
Grafikprozessoren und Grafikverarbeitungseinheiten mit Skalarproduktakkumulationsanweisungen für ein Hybrid-Gleitkommaformat werden offenbart. Bei einer Ausführungsform umfasst ein Grafikmultiprozessor, eine Anweisungseinheit zum Versenden von Anweisungen undeine Verarbeitungsressource, die mit der Anweisungseinheit gekoppelt ist. Die Verarbeitungsressource ist dafür ausgelegt, eine Skalarproduktakkumulationsanweisung von der Anweisungseinheit zu empfangen und die Skalarproduktakkumulationsanweisung unter Verwendung eines bfloat16(BF16)-Zahlenformats zu verarbeiten.
Abstract:
Es wird eine Vorrichtung zum Ermöglichen recheneffizienter kanalübergreifender Operationen in Parallelrechenmaschinen unter Verwendung systolischer Arrays offenbart. Die Vorrichtung umfasst mehrere Register und ein oder mehrere Verarbeitungselemente, die kommunikativ mit den mehreren Registern gekoppelt sind. Das eine oder die mehreren Verarbeitungselemente umfassen eine systolische Arrayschaltung zum Durchführen von kanalübergreifenden Operationen an Quelldaten, die von einem einzelnen Quellregister der mehreren Register empfangen werden, wobei die systolische Arrayschaltung modifiziert ist, Eingaben von dem einzelnen Quellregister zu empfangen und Elemente des einzelnen Quellregisters an mehrere Kanäle in der systolischen Arrayschaltung weiterzuleiten.