https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Parallel_Thread_Execution Parallel Thread Execution - Versionsgeschichte 2025-05-24T11:29:02Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.45.0-wmf.2 https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=243957228&oldid=prev InternetArchiveBot: InternetArchiveBot hat 2 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.5 2024-04-11T12:11:56Z <p><a href="/wiki/Benutzer:InternetArchiveBot" title="Benutzer:InternetArchiveBot">InternetArchiveBot</a> hat 2 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.5</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 11. April 2024, 14:11 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 1:</td> <td colspan="2" class="diff-lineno">Zeile 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Parallel Thread Execution''' ('''PTX''' oder '''NVPTX'''&lt;ref&gt;{{Cite web|url=https://llvm.org/docs/NVPTXUsage.html|title=User Guide for NVPTX Back-end — LLVM 7 documentation|work=llvm.org}}&lt;/ref&gt;) ist eine [[Befehlssatzarchitektur]] und [[virtuelle Maschine]] für die Ausführung von [[Parallelrechner|parallelen]] [[Thread (Informatik)|Threads]], die in der [[CUDA]]-Programmierung von [[Nvidia]] verwendet wird. Der NVCC-Kompilierer übersetzt Code, der in CUDA, einer C++-ähnlichen Sprache, geschrieben wurde, in PTX-Anweisungen (eine Maschinensprache dargestellt als [[American Standard Code for Information Interchange|ASCII]]-Text). Der Grafiktreiber enthält einen Kompilierer, der die PTX-Anweisungen in den ausführbaren Binärcode übersetzt&lt;ref&gt;{{Cite web|url=https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref|title=CUDA Binary Utilities|date=|accessdate=2019-10-19|last=|first=|work=docs.nvidia.com|language=en-us|archiveurl=|archivedate=|url-status=live}}&lt;/ref&gt;, der auf den Prozessorkernen der [[Liste der Nvidia-Grafikprozessoren|Nvidia-GPUs]] ausgeführt werden kann. Die [[GNU Compiler Collection|GNU-Compiler-Kollektion]] verfügt auch über grundlegende Fähigkeiten zur PTX-Erzeugung im Zusammenhang mit [[OpenMP]].&lt;ref&gt;{{Cite web|url=https://gcc.gnu.org/wiki/nvptx|title=nvptx|work=GCC Wiki}}&lt;/ref&gt; Inline-PTX-Assembly kann in CUDA verwendet werden.&lt;ref&gt;{{Cite web|url=http://docs.nvidia.com/cuda/inline-ptx-assembly/index.html|title=Inline PTX Assembly in CUDA|accessdate=2019-11-03|work=docs.nvidia.com|language=en-us}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Parallel Thread Execution''' ('''PTX''' oder '''NVPTX'''&lt;ref&gt;{{Cite web|url=https://llvm.org/docs/NVPTXUsage.html|title=User Guide for NVPTX Back-end — LLVM 7 documentation|work=llvm.org}}&lt;/ref&gt;) ist eine [[Befehlssatzarchitektur]] und [[virtuelle Maschine]] für die Ausführung von [[Parallelrechner|parallelen]] [[Thread (Informatik)|Threads]], die in der [[CUDA]]-Programmierung von [[Nvidia]] verwendet wird. Der NVCC-Kompilierer übersetzt Code, der in CUDA, einer C++-ähnlichen Sprache, geschrieben wurde, in PTX-Anweisungen (eine Maschinensprache dargestellt als [[American Standard Code for Information Interchange|ASCII]]-Text). Der Grafiktreiber enthält einen Kompilierer, der die PTX-Anweisungen in den ausführbaren Binärcode übersetzt&lt;ref&gt;{{Cite web|url=https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref|title=CUDA Binary Utilities|date=|accessdate=2019-10-19|last=|first=|work=docs.nvidia.com|language=en-us|archiveurl=<ins style="font-weight: bold; text-decoration: none;">https://web.archive.org/web/20240101230613/https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref</ins>|archivedate=<ins style="font-weight: bold; text-decoration: none;">2024-01-01</ins>|url-status=live<ins style="font-weight: bold; text-decoration: none;">|archivebot=2024-04-11 12:11:54 InternetArchiveBot</ins>}}&lt;/ref&gt;, der auf den Prozessorkernen der [[Liste der Nvidia-Grafikprozessoren|Nvidia-GPUs]] ausgeführt werden kann. Die [[GNU Compiler Collection|GNU-Compiler-Kollektion]] verfügt auch über grundlegende Fähigkeiten zur PTX-Erzeugung im Zusammenhang mit [[OpenMP]].&lt;ref&gt;{{Cite web|url=https://gcc.gnu.org/wiki/nvptx|title=nvptx|work=GCC Wiki}}&lt;/ref&gt; Inline-PTX-Assembly kann in CUDA verwendet werden.&lt;ref&gt;{{Cite web|url=http://docs.nvidia.com/cuda/inline-ptx-assembly/index.html|title=Inline PTX Assembly in CUDA|accessdate=2019-11-03|work=docs.nvidia.com|language=en-us}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Register ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Register ==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 28:</td> <td colspan="2" class="diff-lineno">Zeile 28:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Geteilter Speicher wird in der PTX-Datei wie folgt deklariert:&lt;syntaxhighlight lang="nasm"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Geteilter Speicher wird in der PTX-Datei wie folgt deklariert:&lt;syntaxhighlight lang="nasm"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>.shared .align 8 .b8 pbatch_cache[15744]; // definiere 15.744 Bytes, ausgerichtet an 8-Byte-Grenzen</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>.shared .align 8 .b8 pbatch_cache[15744]; // definiere 15.744 Bytes, ausgerichtet an 8-Byte-Grenzen</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Das Schreiben von Kerneln in PTX erfordert die explizite Registrierung von PTX-Modulen über die CUDA-Treiber-API, was in der Regel umständlicher ist als die Verwendung der CUDA-Runtime-API und des CUDA-Compilers nvcc von Nvidia. Das GPU Ocelot-Projekt bot eine API zur Registrierung von PTX-Modulen neben CUDA-Runtime-API-Kernelaufrufen, allerdings wird GPU Ocelot nicht mehr aktiv weiterentwickelt.&lt;ref&gt;{{Cite web|url=https://github.com/gtcasl/gpuocelot|title=GPUOCelot: A dynamic compilation framework for PTX|date=|accessdate=|last=|first=|work=github.com|archiveurl=|archivedate=|url-status=live}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Das Schreiben von Kerneln in PTX erfordert die explizite Registrierung von PTX-Modulen über die CUDA-Treiber-API, was in der Regel umständlicher ist als die Verwendung der CUDA-Runtime-API und des CUDA-Compilers nvcc von Nvidia. Das GPU Ocelot-Projekt bot eine API zur Registrierung von PTX-Modulen neben CUDA-Runtime-API-Kernelaufrufen, allerdings wird GPU Ocelot nicht mehr aktiv weiterentwickelt.&lt;ref&gt;{{Cite web|url=https://github.com/gtcasl/gpuocelot|title=GPUOCelot: A dynamic compilation framework for PTX|date=|accessdate=|last=|first=|work=github.com|archiveurl=<ins style="font-weight: bold; text-decoration: none;">https://web.archive.org/web/20230924180041/https://github.com/gtcasl/gpuocelot</ins>|archivedate=<ins style="font-weight: bold; text-decoration: none;">2023-09-24</ins>|url-status=live<ins style="font-weight: bold; text-decoration: none;">|archivebot=2024-04-11 12:11:54 InternetArchiveBot</ins>}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Siehe auch ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Siehe auch ==</div></td> </tr> </table> InternetArchiveBot https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=226211593&oldid=prev MaxEmanuel: /* Register */ Grammatik 2022-09-16T15:51:32Z <p><span class="autocomment">Register: </span> Grammatik</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 16. September 2022, 17:51 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 9:</td> <td colspan="2" class="diff-lineno">Zeile 9:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es gibt Prädikatsregister, aber kompilierter Code im Shader-Modell 1.0 verwendet diese nur in Verbindung mit Verzweigungsbefehlen; die bedingte Verzweigung ist&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es gibt Prädikatsregister, aber kompilierter Code im Shader-Modell 1.0 verwendet diese nur in Verbindung mit Verzweigungsbefehlen; die bedingte Verzweigung ist&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>@%p14 bra $label; // gehe zu $label</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>@%p14 bra $label; // gehe zu $label</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Die Anweisung &lt;code&gt;setp.cc.type&lt;/code&gt; setzt ein Prädikatsregister auf das Ergebnis des Vergleichs zweier Register des entsprechenden Typs. Es gibt auch <del style="font-weight: bold; text-decoration: none;">ein</del> Anweisung &lt;code&gt;set&lt;/code&gt;, wobei &lt;syntaxhighlight lang="asm" inline=""&gt;set.le.u32.u64 %r101, %rd12, %rd28&lt;/syntaxhighlight&gt; das 32-Bit-Register &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0xffffffff&lt;/code&gt; setzt, wenn das 64-Bit-Register &lt;code&gt;%rd12&lt;/code&gt; kleiner oder gleich dem 64-Bit-Register &lt;code&gt;%rd28&lt;/code&gt; ist. Andernfalls wird &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0x00000000&lt;/code&gt; gesetzt.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Die Anweisung &lt;code&gt;setp.cc.type&lt;/code&gt; setzt ein Prädikatsregister auf das Ergebnis des Vergleichs zweier Register des entsprechenden Typs. Es gibt auch <ins style="font-weight: bold; text-decoration: none;">eine</ins> Anweisung &lt;code&gt;set&lt;/code&gt;, wobei &lt;syntaxhighlight lang="asm" inline=""&gt;set.le.u32.u64 %r101, %rd12, %rd28&lt;/syntaxhighlight&gt; das 32-Bit-Register &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0xffffffff&lt;/code&gt; setzt, wenn das 64-Bit-Register &lt;code&gt;%rd12&lt;/code&gt; kleiner oder gleich dem 64-Bit-Register &lt;code&gt;%rd28&lt;/code&gt; ist. Andernfalls wird &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0x00000000&lt;/code&gt; gesetzt.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Es gibt ein paar vordefinierte Bezeichner, die Pseudoregister bezeichnen. Unter anderem enthalten &lt;code&gt;%tid, %ntid, %ctaid&lt;/code&gt;, und &lt;code&gt;%nctaid&lt;/code&gt; Thread-Indizes, Block-Dimensionen, Block-Indizes und Grid-Dimensionen.&lt;ref name="ptx-isa"&gt;{{Cite web|url=http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.3.pdf|title=PTX ISA Version 2.3|publisher=}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Es gibt ein paar vordefinierte Bezeichner, die Pseudoregister bezeichnen. Unter anderem enthalten &lt;code&gt;%tid, %ntid, %ctaid&lt;/code&gt;, und &lt;code&gt;%nctaid&lt;/code&gt; Thread-Indizes, Block-Dimensionen, Block-Indizes und Grid-Dimensionen.&lt;ref name="ptx-isa"&gt;{{Cite web|url=http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.3.pdf|title=PTX ISA Version 2.3|publisher=}}&lt;/ref&gt;</div></td> </tr> </table> MaxEmanuel https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=226211580&oldid=prev MaxEmanuel: /* Register */ Grammatik 2022-09-16T15:50:52Z <p><span class="autocomment">Register: </span> Grammatik</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 16. September 2022, 17:50 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 2:</td> <td colspan="2" class="diff-lineno">Zeile 2:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Register ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Register ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>PTX verwendet einen beliebig großen Registersatz; die Ausgabe des Compilers erfolgt fast ausschließlich in Form von Einzelzuweisungen, wobei sich aufeinanderfolgende Zeilen im Allgemeinen auf aufeinanderfolgende Register beziehen.<del style="font-weight: bold; text-decoration: none;"> </del> Programme beginnen mit Deklarationen der Form&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>PTX verwendet einen beliebig großen Registersatz; die Ausgabe des Compilers erfolgt fast ausschließlich in Form von Einzelzuweisungen, wobei sich aufeinanderfolgende Zeilen im Allgemeinen auf aufeinanderfolgende Register beziehen. Programme beginnen mit Deklarationen der Form&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>.reg .u32 %r&lt;335&gt;; // deklariere 335 Register %r0, %r1, ..., %r334 vom Typ vorzeichenlosem 32-Bit Integer</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>.reg .u32 %r&lt;335&gt;; // deklariere 335 Register %r0, %r1, ..., %r334 vom Typ vorzeichenlosem 32-Bit Integer</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es handelt sich um eine Assemblersprache mit drei Argumenten. Fast alle Befehle geben ausdrücklich den Datentyp (in Form von Vorzeichen und Breite) an, mit dem sie arbeiten. Registernamen wird ein %-Zeichen vorangestellt und Konstanten sind Literale z.&amp;nbsp;B.:&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es handelt sich um eine Assemblersprache mit drei Argumenten. Fast alle Befehle geben ausdrücklich den Datentyp (in Form von Vorzeichen und Breite) an, mit dem sie arbeiten. Registernamen wird ein %-Zeichen vorangestellt und Konstanten sind Literale z.&amp;nbsp;B.:&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>shr.u64 %rd14, %rd12, 32; // schiebe einen <del style="font-weight: bold; text-decoration: none;">vorzeichenlose</del> 64-Bit Integer aus %rd12 nach rechts um 32 Positionen, Ergebnis in %rd14</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>shr.u64 %rd14, %rd12, 32; // schiebe einen <ins style="font-weight: bold; text-decoration: none;">vorzeichenlosen</ins> 64-Bit Integer aus %rd12 nach rechts um 32 Positionen, Ergebnis in %rd14</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>cvt.u64.u32 %rd142, %r112; // konvertiere einen vorzeichenlosen 32-Bit Integer zu 64-Bit</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>cvt.u64.u32 %rd142, %r112; // konvertiere einen vorzeichenlosen 32-Bit Integer zu 64-Bit</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es gibt Prädikatsregister, aber kompilierter Code im Shader-Modell 1.0 verwendet diese nur in Verbindung mit Verzweigungsbefehlen; die bedingte Verzweigung ist&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es gibt Prädikatsregister, aber kompilierter Code im Shader-Modell 1.0 verwendet diese nur in Verbindung mit Verzweigungsbefehlen; die bedingte Verzweigung ist&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>@%p14 bra $label; // gehe zu $label</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>@%p14 bra $label; // gehe zu $label</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Die Anweisung &lt;code&gt;setp.cc.type&lt;/code&gt; setzt ein Prädikatsregister auf das Ergebnis des Vergleichs zweier Register des entsprechenden <del style="font-weight: bold; text-decoration: none;">Types</del>. Es gibt auch <del style="font-weight: bold; text-decoration: none;">einen</del> Anweisung &lt;code&gt;set&lt;/code&gt;, wobei &lt;syntaxhighlight lang="asm" inline=""&gt;set.le.u32.u64 %r101, %rd12, %rd28&lt;/syntaxhighlight&gt; das 32-Bit-Register &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0xffffffff&lt;/code&gt; setzt, wenn das 64-Bit-Register &lt;code&gt;%rd12&lt;/code&gt; kleiner oder gleich dem 64-Bit-Register &lt;code&gt;%rd28&lt;/code&gt; ist. Andernfalls wird &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0x00000000&lt;/code&gt; gesetzt.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Die Anweisung &lt;code&gt;setp.cc.type&lt;/code&gt; setzt ein Prädikatsregister auf das Ergebnis des Vergleichs zweier Register des entsprechenden <ins style="font-weight: bold; text-decoration: none;">Typs</ins>. Es gibt auch <ins style="font-weight: bold; text-decoration: none;">ein</ins> Anweisung &lt;code&gt;set&lt;/code&gt;, wobei &lt;syntaxhighlight lang="asm" inline=""&gt;set.le.u32.u64 %r101, %rd12, %rd28&lt;/syntaxhighlight&gt; das 32-Bit-Register &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0xffffffff&lt;/code&gt; setzt, wenn das 64-Bit-Register &lt;code&gt;%rd12&lt;/code&gt; kleiner oder gleich dem 64-Bit-Register &lt;code&gt;%rd28&lt;/code&gt; ist. Andernfalls wird &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0x00000000&lt;/code&gt; gesetzt.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Es gibt ein paar vordefinierte Bezeichner, die Pseudoregister bezeichnen. Unter anderem enthalten &lt;code&gt;%tid, %ntid, %ctaid&lt;/code&gt;, und &lt;code&gt;%nctaid&lt;/code&gt; Thread-Indizes, Block-Dimensionen, Block-Indizes und Grid-Dimensionen.&lt;ref name="ptx-isa"&gt;{{Cite web|url=http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.3.pdf|title=PTX ISA Version 2.3|publisher=}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Es gibt ein paar vordefinierte Bezeichner, die Pseudoregister bezeichnen. Unter anderem enthalten &lt;code&gt;%tid, %ntid, %ctaid&lt;/code&gt;, und &lt;code&gt;%nctaid&lt;/code&gt; Thread-Indizes, Block-Dimensionen, Block-Indizes und Grid-Dimensionen.&lt;ref name="ptx-isa"&gt;{{Cite web|url=http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.3.pdf|title=PTX ISA Version 2.3|publisher=}}&lt;/ref&gt;</div></td> </tr> </table> MaxEmanuel https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224980375&oldid=prev Crazy1880: ref-TAG-fix 2022-08-01T04:53:42Z <p>ref-TAG-fix</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 1. August 2022, 06:53 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 40:</td> <td colspan="2" class="diff-lineno">Zeile 40:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einzelnachweise ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einzelnachweise ==</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&lt;references /&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Nvidia]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Nvidia]]</div></td> </tr> </table> Crazy1880 https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224973233&oldid=prev Aka: Abkürzung korrigiert 2022-07-31T19:37:44Z <p>Abkürzung korrigiert</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 31. Juli 2022, 21:37 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 4:</td> <td colspan="2" class="diff-lineno">Zeile 4:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>PTX verwendet einen beliebig großen Registersatz; die Ausgabe des Compilers erfolgt fast ausschließlich in Form von Einzelzuweisungen, wobei sich aufeinanderfolgende Zeilen im Allgemeinen auf aufeinanderfolgende Register beziehen.  Programme beginnen mit Deklarationen der Form&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>PTX verwendet einen beliebig großen Registersatz; die Ausgabe des Compilers erfolgt fast ausschließlich in Form von Einzelzuweisungen, wobei sich aufeinanderfolgende Zeilen im Allgemeinen auf aufeinanderfolgende Register beziehen.  Programme beginnen mit Deklarationen der Form&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>.reg .u32 %r&lt;335&gt;; // deklariere 335 Register %r0, %r1, ..., %r334 vom Typ vorzeichenlosem 32-Bit Integer</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>.reg .u32 %r&lt;335&gt;; // deklariere 335 Register %r0, %r1, ..., %r334 vom Typ vorzeichenlosem 32-Bit Integer</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es handelt sich um eine Assemblersprache mit drei Argumenten. Fast alle Befehle geben ausdrücklich den Datentyp (in Form von Vorzeichen und Breite) an, mit dem sie arbeiten. Registernamen wird ein %-Zeichen vorangestellt und Konstanten sind Literale z.B.:&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es handelt sich um eine Assemblersprache mit drei Argumenten. Fast alle Befehle geben ausdrücklich den Datentyp (in Form von Vorzeichen und Breite) an, mit dem sie arbeiten. Registernamen wird ein %-Zeichen vorangestellt und Konstanten sind Literale z.<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>B.:&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>shr.u64 %rd14, %rd12, 32; // schiebe einen vorzeichenlose 64-Bit Integer aus %rd12 nach rechts um 32 Positionen, Ergebnis in %rd14</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>shr.u64 %rd14, %rd12, 32; // schiebe einen vorzeichenlose 64-Bit Integer aus %rd12 nach rechts um 32 Positionen, Ergebnis in %rd14</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>cvt.u64.u32 %rd142, %r112; // konvertiere einen vorzeichenlosen 32-Bit Integer zu 64-Bit</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>cvt.u64.u32 %rd142, %r112; // konvertiere einen vorzeichenlosen 32-Bit Integer zu 64-Bit</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 14:</td> <td colspan="2" class="diff-lineno">Zeile 14:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Zustandsbereiche ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Zustandsbereiche ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Befehle Laden (&lt;code&gt;ld&lt;/code&gt;) und Speichern (&lt;code&gt;st&lt;/code&gt;) beziehen sich auf einen von mehreren verschiedenen Zustandsbereichen, z.B. &lt;code&gt;ld.param&lt;/code&gt;.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Befehle Laden (&lt;code&gt;ld&lt;/code&gt;) und Speichern (&lt;code&gt;st&lt;/code&gt;) beziehen sich auf einen von mehreren verschiedenen Zustandsbereichen, z.<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>B. &lt;code&gt;ld.param&lt;/code&gt;.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Es gibt acht Zustandsbereiche:&lt;ref name="ptx-isa"&gt;&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Es gibt acht Zustandsbereiche:&lt;ref name="ptx-isa"&gt;&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> Aka https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224970154&oldid=prev Chewbacca2205: 65 Versionen von :en:Parallel_Thread_Execution importiert: WP:IMP * user:Luke081515Bot 2022-07-31T17:28:06Z <p>65 Versionen von <a href="https://en.wikipedia.org/wiki/Parallel_Thread_Execution" class="extiw" title="en:Parallel Thread Execution">en:Parallel_Thread_Execution</a> importiert: WP:IMP * <a href="/wiki/Benutzer:Luke081515Bot" title="Benutzer:Luke081515Bot">user:Luke081515Bot</a></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <tr class="diff-title" lang="de"> <td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">Version vom 31. Juli 2022, 19:28 Uhr</td> </tr><tr><td colspan="2" class="diff-notice" lang="de"><div class="mw-diff-empty">(kein Unterschied)</div> </td></tr></table> Chewbacca2205 https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224969337&oldid=prev MaxEmanuel: ref Fehler korrigiert 2022-07-31T16:49:21Z <p>ref Fehler korrigiert</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 31. Juli 2022, 18:49 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 8:</td> <td colspan="2" class="diff-lineno">Zeile 8:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>cvt.u64.u32 %rd142, %r112; // konvertiere einen vorzeichenlosen 32-Bit Integer zu 64-Bit</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>cvt.u64.u32 %rd142, %r112; // konvertiere einen vorzeichenlosen 32-Bit Integer zu 64-Bit</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es gibt Prädikatsregister, aber kompilierter Code im Shader-Modell 1.0 verwendet diese nur in Verbindung mit Verzweigungsbefehlen; die bedingte Verzweigung ist&lt;syntaxhighlight lang="asm"&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Es gibt Prädikatsregister, aber kompilierter Code im Shader-Modell 1.0 verwendet diese nur in Verbindung mit Verzweigungsbefehlen; die bedingte Verzweigung ist&lt;syntaxhighlight lang="asm"&gt;</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>@%p14 bra $label; // gehe zu<del style="font-weight: bold; text-decoration: none;"> </del> $label</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>@%p14 bra $label; // gehe zu $label</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Die Anweisung &lt;code&gt;setp.cc.type&lt;/code&gt; setzt ein Prädikatsregister auf das Ergebnis des Vergleichs zweier Register des entsprechenden Types. Es gibt auch einen Anweisung &lt;code&gt;set&lt;/code&gt;, wobei &lt;syntaxhighlight lang="asm" inline=""&gt;set.le.u32.u64 %r101, %rd12, %rd28&lt;/syntaxhighlight&gt; das 32-Bit-Register &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0xffffffff&lt;/code&gt; setzt, wenn das 64-Bit-Register &lt;code&gt;%rd12&lt;/code&gt; kleiner oder gleich dem 64-Bit-Register &lt;code&gt;%rd28&lt;/code&gt; ist. Andernfalls wird &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0x00000000&lt;/code&gt; gesetzt.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>&lt;/syntaxhighlight&gt;Die Anweisung &lt;code&gt;setp.cc.type&lt;/code&gt; setzt ein Prädikatsregister auf das Ergebnis des Vergleichs zweier Register des entsprechenden Types. Es gibt auch einen Anweisung &lt;code&gt;set&lt;/code&gt;, wobei &lt;syntaxhighlight lang="asm" inline=""&gt;set.le.u32.u64 %r101, %rd12, %rd28&lt;/syntaxhighlight&gt; das 32-Bit-Register &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0xffffffff&lt;/code&gt; setzt, wenn das 64-Bit-Register &lt;code&gt;%rd12&lt;/code&gt; kleiner oder gleich dem 64-Bit-Register &lt;code&gt;%rd28&lt;/code&gt; ist. Andernfalls wird &lt;code&gt;%r101&lt;/code&gt; zu &lt;code&gt;0x00000000&lt;/code&gt; gesetzt.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 15:</td> <td colspan="2" class="diff-lineno">Zeile 15:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Zustandsbereiche ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Zustandsbereiche ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Befehle Laden (&lt;code&gt;ld&lt;/code&gt;) und Speichern (&lt;code&gt;st&lt;/code&gt;) beziehen sich auf einen von mehreren verschiedenen Zustandsbereichen, z.B. &lt;code&gt;ld.param&lt;/code&gt;.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Befehle Laden (&lt;code&gt;ld&lt;/code&gt;) und Speichern (&lt;code&gt;st&lt;/code&gt;) beziehen sich auf einen von mehreren verschiedenen Zustandsbereichen, z.B. &lt;code&gt;ld.param&lt;/code&gt;.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Es gibt acht Zustandsbereiche:&lt;ref name="ptx-isa"&gt;&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Es gibt acht Zustandsbereiche:&lt;ref name="ptx-isa"&gt;{{Cite web|url=http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.3.pdf|title=PTX ISA Version 2.3|publisher=}}&lt;cite class="citation web cs1" data-ve-ignore="true"&gt;[http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/ptx_isa_2.3.pdf "PTX ISA Version 2.3"] &lt;span class="cs1-format"&gt;(PDF)&lt;/span&gt;.&lt;/cite&gt;&lt;/ref&gt;</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* &lt;code&gt;.reg&lt;/code&gt; : Register</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* &lt;code&gt;.reg&lt;/code&gt; : Register</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 34:</td> <td colspan="2" class="diff-lineno">Zeile 34:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* Standard Portable Intermediate Representation (SPIR)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* Standard Portable Intermediate Representation (SPIR)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Fat Binary|CUDA binary]] (cubin) – a type of fat binary</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Fat Binary|CUDA binary]] (cubin) – a type of fat binary</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Der Absatz wurde verschoben. Klicken, um zur neuen Stelle zu springen." href="#movedpara_8_1_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_6_1_lhs"></a>== Einzelnachweise ==</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Weblinks ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Weblinks ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://docs.nvidia.com/cuda/parallel-thread-execution/ PTX ISA bei NVIDIA Developer Zone]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://docs.nvidia.com/cuda/parallel-thread-execution/ PTX ISA bei NVIDIA Developer Zone]</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Der Absatz wurde verschoben. Klicken, um zur alten Stelle zu springen." href="#movedpara_6_1_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_8_1_rhs"></a>== Einzelnachweise ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Nvidia]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Nvidia]]</div></td> </tr> </table> MaxEmanuel https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224969296&oldid=prev MaxEmanuel: Erstellt durch Übersetzen der Seite „Parallel Thread Execution“ 2022-07-31T16:47:07Z <p>Erstellt durch Übersetzen der Seite „<a href="https://en.wikipedia.org/wiki/Special:Redirect/revision/1089945001" class="extiw" title="en:Special:Redirect/revision/1089945001">Parallel Thread Execution</a>“</p> <a href="//de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&amp;diff=224969296&amp;oldid=224970153">Änderungen zeigen</a> MaxEmanuel https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224970153&oldid=prev en>Matthiaspaul: CE 2022-05-26T13:40:21Z <p>CE</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 26. Mai 2022, 15:40 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 1:</td> <td colspan="2" class="diff-lineno">Zeile 1:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Primary sources|date=August 2020}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Primary sources|date=August 2020}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{short description|Low-level parallel thread execution virtual machine and instruction set architecture}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{short description|Low-level parallel thread execution virtual machine and instruction set architecture}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Parallel Thread Execution''' ('''PTX''' or '''NVPTX'''&lt;ref&gt;{{cite web|url=https://llvm.org/docs/NVPTXUsage.html|title=User Guide for NVPTX Back-end — LLVM 7 documentation|website=llvm.org}}&lt;/ref&gt;) is a low-level [[Parallel computing|parallel]] [[Thread (computing)|thread]] [[Execution (computing)|execution]] [[virtual machine]] and [[instruction set architecture]] used in [[Nvidia]]'s [[CUDA]] programming environment. The [[Nvidia CUDA Compiler|NVCC]] compiler translates code written in CUDA, a [[C++ (programming language)|C++]]-like language, into PTX instructions, and the graphics driver contains a compiler which translates the PTX instructions into <del style="font-weight: bold; text-decoration: none;">a</del> binary code&lt;ref&gt;{{Cite web|url=https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref|title=CUDA Binary Utilities|last=|first=|date=|website=docs.nvidia.com|language=en-us|url-status=live|archive-url=|archive-date=|access-date=2019-10-19}}&lt;/ref&gt; which can be run on the processing cores of [[List of Nvidia graphics processing units|Nvidia GPUs]]. The [[GNU Compiler Collection]] also has basic ability for PTX generation in the context of [[OpenMP]] offloading.&lt;ref&gt;{{cite web |title=nvptx |url=https://gcc.gnu.org/wiki/nvptx |website=GCC Wiki}}&lt;/ref&gt; Inline PTX assembly can be used in CUDA.&lt;ref&gt;{{Cite web|url=http://docs.nvidia.com/cuda/inline-ptx-assembly/index.html|title=Inline PTX Assembly in CUDA|website=docs.nvidia.com|language=en-us|access-date=2019-11-03}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Parallel Thread Execution''' ('''PTX''' or '''NVPTX'''&lt;ref&gt;{{cite web|url=https://llvm.org/docs/NVPTXUsage.html|title=User Guide for NVPTX Back-end — LLVM 7 documentation|website=llvm.org}}&lt;/ref&gt;) is a low-level [[Parallel computing|parallel]] [[Thread (computing)|thread]] [[Execution (computing)|execution]] [[virtual machine]] and [[instruction set architecture]] used in [[Nvidia]]'s [[CUDA]] programming environment. The [[Nvidia CUDA Compiler|NVCC]] compiler translates code written in CUDA, a [[C++ (programming language)|C++]]-like language, into PTX instructions<ins style="font-weight: bold; text-decoration: none;"> (an [[assembly language]] represented as [[ASCII]] text)</ins>, and the graphics driver contains a compiler which translates the PTX instructions into <ins style="font-weight: bold; text-decoration: none;">the executable</ins> binary code&lt;ref&gt;{{Cite web|url=https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref|title=CUDA Binary Utilities|last=|first=|date=|website=docs.nvidia.com|language=en-us|url-status=live|archive-url=|archive-date=|access-date=2019-10-19}}&lt;/ref&gt; which can be run on the processing cores of [[List of Nvidia graphics processing units|Nvidia GPUs]]. The [[GNU Compiler Collection]] also has basic ability for PTX generation in the context of [[OpenMP]] offloading.&lt;ref&gt;{{cite web |title=nvptx |url=https://gcc.gnu.org/wiki/nvptx |website=GCC Wiki}}&lt;/ref&gt; Inline PTX assembly can be used in CUDA.&lt;ref&gt;{{Cite web|url=http://docs.nvidia.com/cuda/inline-ptx-assembly/index.html|title=Inline PTX Assembly in CUDA|website=docs.nvidia.com|language=en-us|access-date=2019-11-03}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Registers ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Registers ==</div></td> </tr> </table> en>Matthiaspaul https://de.wikipedia.org/w/index.php?title=Parallel_Thread_Execution&diff=224970152&oldid=prev en>Matthiaspaul: /* See also */ improved link 2022-05-25T01:15:31Z <p><span class="autocomment">See also: </span> improved link</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 25. Mai 2022, 03:15 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 48:</td> <td colspan="2" class="diff-lineno">Zeile 48:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==See also==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==See also==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Standard Portable Intermediate Representation]] (SPIR)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Standard Portable Intermediate Representation]] (SPIR)</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [[<del style="font-weight: bold; text-decoration: none;">Fat</del> binary]]</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [[<ins style="font-weight: bold; text-decoration: none;">CUDA</ins> binary]]<ins style="font-weight: bold; text-decoration: none;"> (cubin) – a type of fat binary</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== References ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== References ==</div></td> </tr> </table> en>Matthiaspaul