Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
Vektorprozessor – Wikipedia Zum Inhalt springen

Vektorprozessor

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Vektorrechner)
Datei:Processor board cray-1 hg.jpg
Prozessorplatine eines CRAY-YMP-Vektor-Computers

Vorlage:Hinweisbaustein Vektorprozessoren (auch Vektorrechner oder Array-Prozessoren genannt) führen eine Berechnung gleichzeitig auf vielen Daten (in einem Vektor bzw. Array) aus. Wenn viele gleichartige Daten auf gleiche Weise bearbeitet werden sollen (beispielsweise bei Matrizenoperationen), sind Vektorprozessoren reinen Allzweck-Prozessoren (z. B. x86), die alle Daten nacheinander bearbeiten, weit überlegen. Dies ist zumindest dann der Fall, wenn der Vektorrechner auch einen parallelen Zugriff auf den Hauptspeicher hat.

Funktionsweise und Anwendungsfelder

Vektorprozessoren werden vor allem im High-Performance-Computing (HPC) genutzt. Die Cray-Supercomputer nutzten Vektorprozessoren. Anbieter von Vektorrechnern waren NEC und die Convex Computer Corporation, etwa mit der C38xx-Serie, die Galliumarsenid-Technologie einsetzte, oder Fujitsu Siemens Computers mit ihrer VPP-Serie.

Gerade in HPC-Anwendungen fallen oft viele gleichartige Daten an, die auf ähnliche Weise verarbeitet werden sollen, so zum Beispiel bei Simulationen in der Meteorologie und Geologie, wo vielfach Vektorrechner verwendet werden.

Vektorrechner haben in den letzten Jahren große Konkurrenz durch massiv parallel aufgebaute Rechencluster bekommen, die aus vielen Tausend Standardprozessoren aufgebaut sind. Durch den Rückgriff auf Standardkomponenten, die über den HPC-Sektor hinaus verbreitet sind, lassen sich Kosten sparen, zumal solche Standardprozessoren durch die intensive technologische Entwicklung sehr leistungsfähig geworden sind. Noch günstiger geht es mit verteiltem Rechnen.

Wegen der Vorteile, die sich durch die gleichzeitige Ausführung einer Rechenoperation auf mehreren Daten ergeben (Single Instruction, Multiple Data, SIMD) haben auch Standardprozessoren seit den 1990er-Jahren Erweiterungen der jeweiligen Architektur erfahren, um diese Art von Berechnungen zu beschleunigen. Siehe dazu Architektur des x86-Prozessors oder AltiVec für PowerPC-Prozessoren.

Neben der oben genannten Anwendungen für Vektorprozessoren gehört auch die graphische Simulation zu einer Hauptanwendung. Gerade aufwendige 3D-Spiele verlangen enorm viele Berechnungen (Matrizenoperationen auf 3D-Koordinaten, Antialiasing der Bildschirmausgabe) auf großen Datenmengen, weshalb heutige Grafikprozessoren große Ähnlichkeiten zu reinen Vektorprozessoren aufweisen.

Vektorprozessor bei der Arbeit

MIPS-Architekturbeispiel

Anhand eines einfachen Beispiels soll der Unterschied zwischen Skalar- und Vektorprozessor gezeigt werden.

<math>Y = a\cdot X + Y</math>

X und Y sind zwei Vektoren gleicher Länge und a ist eine skalare Größe. Dieses Problem wird auf Skalarprozessoren durch eine Schleife gelöst. Die gleiche Schleife wird auch im LINPACK-Benchmark verwendet, um die Leistung der getesteten Rechner zu bestimmen. In C-Syntax sieht das folgendermaßen aus:

<syntaxhighlight lang="c">

for (i = 0; i < 64; i++)
    Y[i] = a * X[i] + Y[i];

</syntaxhighlight>

Hier wird angenommen, dass die Vektoren aus 64 Elementen bestehen.

In MIPS-Code sieht dieses Programmfragment folgendermaßen aus: <syntaxhighlight lang="asm">

       L.D     F0, a          ; Skalar a laden
       DADDIU  R4, Rx, #512   ; letzte Adresse 512/8 = 64
Loop:  L.D     F2, 0(Rx)      ; X(i) laden
       MUL.D   F2, F2, F0     ; a * X(i)
       L.D     F4, 0(Ry)      ; Y(i) laden
       ADD.D   F4, F4, F2     ; a * X(i) + Y(i)
       S.D     0(Ry), F4      ; Y(i) speichern
       DADDIU  Rx, Rx, #8     ; Index (i) von X inkrementieren
       DADDIU  Ry, Ry, #8     ; Index (i) von Y inkrementieren
       DSUBU   R20, R4, Rx    ; Rand berechnen
       BNEZ    R20, Loop      ; wenn 0, dann fertig

</syntaxhighlight>

In VMIPS-Code sieht das Ganze jedoch so aus: <syntaxhighlight lang="asm">

L.D      F0, a       ; Skalar a laden
LV       V1, Rx      ; Vektor X laden
MULVS.D  V2, V1, F0  ; Vektor-Skalar-Multiplikation
LV       V3, Ry      ; Vektor Y laden
ADDV.D   V4, V2, V3  ; Vektor-Addition
SV       Ry, V4      ; Resultat speichern

</syntaxhighlight>

Dieses Beispiel zeigt, wie effizient der Vektorprozessor die Aufgabe löst. Bei VMIPS genügen sechs Befehle, während bei MIPS 64·9 + 2 = 578 Befehle ausgeführt werden. Hauptsächlich entfällt die Schleife. Bei VMIPS muss also nur ein Bruchteil der Befehle aus dem Speicher geholt und dekodiert werden.

Bei der MIPS-Architektur werden Multiplikationen und Additionen abwechselnd ausgeführt, das heißt die Addition muss immer auf die langsamere Multiplikation warten. Beim Vektorrechner hingegen werden zuerst alle unabhängigen Multiplikationen ausgeführt und darauf folgend alle abhängigen Additionen. Dies ist ein weiterer bedeutender Unterschied.

Beispiel einer x86-Architektur, in Hochsprache eingebettet

Ein aktuelles x86-Prozessorarchitekturbeispiel unter Verwendung der SSE-Befehlserweiterung. Das Beispiel zeigt das vektorisierte Multiplizieren von Gleitkommazahl-Arrays einfacher Genauigkeit. Der gezeigte Quellcode ist in der Hochsprache „C“ geschrieben, mit wesentlichen Inline-Assembler-Anteilen (Intel-Syntax), welcher direkt mit dem GCC kompiliert werden kann.

<syntaxhighlight lang="c"> //SSE-Funktion zum vektorisierten Multiplizieren von 2 Arrays mit Single-precision-Gleitkommazahlen //Erster Parameter Zeiger auf Ziel/Quellarray, zweiter Parameter 2. Quellarray, dritter Parameter Anzahl der Gleitkommazahlen in jedem Array //32-Bit-Version void mul_asm(float* out, float* in, unsigned int leng) {

    unsigned int count, rest;
    rest  = (leng*4)%16;
    count = (leng*4)-rest;
    if (count>0){
    // vectorized part; 4 floats per loop iteration
    __asm __volatile__  (".intel_syntax noprefix\n\t"
    "loop:                 \n\t"
    "movups xmm0,[ebx+ecx] ;loads 4 floats in first register (xmm0)\n\t"
    "movups xmm1,[eax+ecx] ;loads 4 floats in second register (xmm1)\n\t"
    "mulps xmm0,xmm1       ;multiplies both vector registers\n\t"
    "movups [eax+ecx],xmm0 ;write back the result to memory\n\t"
    "sub ecx,16            ;increase address pointer by 4 floats\n\t"
    "jnz loop              \n\t"
    ".att_syntax prefix    \n\t"
      : : "a" (out), "b" (in), "c"(count), "d"(rest): "xmm0","xmm1");
    }
    // scalar part; 1 float per loop iteration
    if (rest!=0)
    {
     __asm __volatile__  (".intel_syntax noprefix\n\t"
    "add eax,ecx           \n\t"
    "add ebx,ecx           \n\t"
    "rest:                 \n\t"
    "movss xmm0,[ebx+edx]  ;load 1 float in first register (xmm0)\n\t"
    "movss xmm1,[eax+edx]  ;load 1 float in second register (xmm1)\n\t"
    "mulss xmm0,xmm1       ;multiplies both scalar registers\n\t"
    "movss [eax+edx],xmm0  ;write back the result\n\t"
    "sub edx,4             \n\t"
    "jnz rest              \n\t"
    ".att_syntax prefix    \n\t"
      : : "a" (out), "b" (in), "c"(count), "d"(rest): "xmm0","xmm1");
    }
    return;

} </syntaxhighlight>

Programmierung von Vektorprozessoren mit höheren Programmiersprachen

Das obige Beispiel ist direkt in der Maschinensprache codiert, was heutzutage allerdings nicht mehr üblich, aber durchaus möglich ist (SIMD Intrinsics oder Inline-Assembler-Code-Anteile). Architekturen mit speziellen Maschinenanweisungen für Vektoren benötigen zur Nutzung dieser aus höheren Programmiersprachen entweder eine Unterstützung durch

  • parallelisierende Compiler (also solche, die eine ganze Schleife im Quellcode in eine SIMD-Rechenanweisung umwandeln können)
  • eine Spracherweiterung für die Generierung der Array-Funktionen
  • oder zumindest durch spezielle Bibliotheksfunktionen

Zumindest in den letzten beiden Fällen muss der Softwareentwickler auf jeden Fall die Architektur kennen und die speziellen Funktionen dann auch verwenden, um die Vektorverarbeitung zu nutzen.

Siehe auch

Weblinks

  • <templatestyles src="Webarchiv/styles.css" />{{#if:20131106210422
      | {{#ifeq: 20131106210422 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Anleitung zur Vektorprogrammierung | {{#invoke:WLink|getEscapedTitle|Anleitung zur Vektorprogrammierung}} | {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20131106210422}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Anleitung zur Vektorprogrammierung | {{#invoke:WLink|getEscapedTitle|Anleitung zur Vektorprogrammierung}} | {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20131106210422}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Anleitung zur Vektorprogrammierung | {{#invoke:WLink|getEscapedTitle|Anleitung zur Vektorprogrammierung}} | {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Anleitung zur Vektorprogrammierung | {{#invoke:WLink|getEscapedTitle|Anleitung zur Vektorprogrammierung}} | {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Anleitung zur Vektorprogrammierung | {{#invoke:WLink|getEscapedTitle|Anleitung zur Vektorprogrammierung}} | {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Anleitung zur Vektorprogrammierung | {{#invoke:WLink|getEscapedTitle|Anleitung zur Vektorprogrammierung}} | {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20131106210422|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://static.cray-cyber.org/Documentation/Vector_C.pdf}}
    || {{#if:  || }}
  }}{{#if: Anleitung zur Vektorprogrammierung
    | {{#if: {{#invoke:WLink|isBracketedLink|Anleitung zur Vektorprogrammierung}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://static.cray-cyber.org/Documentation/Vector_C.pdf%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://static.cray-cyber.org/Documentation/Vector_C.pdf%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://static.cray-cyber.org/Documentation/Vector_C.pdf }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} (PDF; 1,03 MB) Cray Research (englisch)
  • <templatestyles src="Webarchiv/styles.css" />{{#if:20100710155403
      | {{#ifeq: 20100710155403 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: HiCoVec | {{#invoke:WLink|getEscapedTitle|HiCoVec}} | {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20100710155403}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: HiCoVec | {{#invoke:WLink|getEscapedTitle|HiCoVec}} | {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20100710155403}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: HiCoVec | {{#invoke:WLink|getEscapedTitle|HiCoVec}} | {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: HiCoVec | {{#invoke:WLink|getEscapedTitle|HiCoVec}} | {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: HiCoVec | {{#invoke:WLink|getEscapedTitle|HiCoVec}} | {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: HiCoVec | {{#invoke:WLink|getEscapedTitle|HiCoVec}} | {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20100710155403|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.hs-augsburg.de/~kiefer/hicovec/}}
    || {{#if:  || }}
  }}{{#if: HiCoVec
    | {{#if: {{#invoke:WLink|isBracketedLink|HiCoVec}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.hs-augsburg.de/~kiefer/hicovec/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.hs-augsburg.de/~kiefer/hicovec/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.hs-augsburg.de/~kiefer/hicovec/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} Quelloffener, konfigurierbarer Vektorprozessor der HS Augsburg

{{#if:||{{#ifeq:0|10|{{#ifeq:Vektorprozessor|Vorlage:Erweiterte Navigationsleiste||Vorlage:Templatetransclusioncheck Vorlage:Dokumentation/ruler}}}}}}<templatestyles src="Erweiterte Navigationsleiste/styles legacy.css" />Vorlage:Klappleiste/Anfang{{#if: |

{{{Untertitel}}}

}}{{#if: |

{{{Untertitel2}}}

}}

{{#if: AMD_Phenom_die.png | {{#if: CISC • EPIC • NISC • RISC • VLIW • Mikroarchitektur | {{#if:nach Befehlssatzaufbau||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 2|1|2}}px solid #FFF;border-bottom: {{#if: mit Optimierung für Einsatzzweck|2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|nach Befehlssatzaufbau }} {{#if: (Haupt-)Prozessor • Hardwarebeschleunigung • Grafikprozessor • GPGPU • Streamprozessor • Soundprozessor • Gleitkommaeinheit • Netzwerkprozessor • Physikbeschleuniger • Vektorprozessor • Tensor Processing Unit | {{#if:mit Optimierung für Einsatzzweck||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 3|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|mit Optimierung für Einsatzzweck }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 4|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 5|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 6|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 7|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 8|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 9|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 10|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 11|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 12|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 13|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 14|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 15|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 16|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 17|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 18|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 19|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 20|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 21|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 22|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 23|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 24|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 25|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 26|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 27|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 28|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 29|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 30|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 31|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 32|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }}
class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent; " rowspan="{{#expr: 0{{#if:1-Bit-Architektur •

Bit-Slice-Architektur • 4-Bit-Architektur • 8-Bit-Architektur • 16-Bit-Architektur • 32-Bit-Architektur • 64-Bit-Architektur|+1}}{{#if:CISC • EPIC • NISC • RISC • VLIW • Mikroarchitektur|+1}}{{#if:(Haupt-)Prozessor • Hardwarebeschleunigung • Grafikprozessor • GPGPU • Streamprozessor • Soundprozessor • Gleitkommaeinheit • Netzwerkprozessor • Physikbeschleuniger • Vektorprozessor •

Tensor Processing Unit|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}}}" |

}} {{#if: 1-Bit-Architektur • Bit-Slice-Architektur • 4-Bit-Architektur • 8-Bit-Architektur • 16-Bit-Architektur • 32-Bit-Architektur • 64-Bit-Architektur | {{#if:nach Wortbreite||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 1|1|2}}px solid #FFF;border-bottom: {{#if: nach Befehlssatzaufbau|2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|nach Wortbreite }}

{{#if:nach Wortbreite colspan="2"}} class="hlist" style="text-align: {{#if:nach Wortbreite|left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

1-Bit-Architektur • Bit-Slice-Architektur • 4-Bit-Architektur • 8-Bit-Architektur • 16-Bit-Architektur • 32-Bit-Architektur • 64-Bit-Architektur }} {{#if: |

class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent; " rowspan="{{#expr: 0{{#if:1-Bit-Architektur •

Bit-Slice-Architektur • 4-Bit-Architektur • 8-Bit-Architektur • 16-Bit-Architektur • 32-Bit-Architektur • 64-Bit-Architektur|+1}}{{#if:CISC • EPIC • NISC • RISC • VLIW • Mikroarchitektur|+1}}{{#if:(Haupt-)Prozessor • Hardwarebeschleunigung • Grafikprozessor • GPGPU • Streamprozessor • Soundprozessor • Gleitkommaeinheit • Netzwerkprozessor • Physikbeschleuniger • Vektorprozessor •

Tensor Processing Unit|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}}}" |
{{{BILD}}}

}}{{#if: |

class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent; " rowspan="{{#expr: 0{{#if:1-Bit-Architektur •

Bit-Slice-Architektur • 4-Bit-Architektur • 8-Bit-Architektur • 16-Bit-Architektur • 32-Bit-Architektur • 64-Bit-Architektur|+1}}{{#if:CISC • EPIC • NISC • RISC • VLIW • Mikroarchitektur|+1}}{{#if:(Haupt-)Prozessor • Hardwarebeschleunigung • Grafikprozessor • GPGPU • Streamprozessor • Soundprozessor • Gleitkommaeinheit • Netzwerkprozessor • Physikbeschleuniger • Vektorprozessor •

Tensor Processing Unit|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}}}" |

}}

{{#if:nach Befehlssatzaufbau colspan="2"}} class="hlist" style="text-align: {{#if:nach Befehlssatzaufbau|left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

CISC • EPIC • NISC • RISC • VLIW • Mikroarchitektur }}

{{#if:mit Optimierung für Einsatzzweck left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

(Haupt-)Prozessor • Hardwarebeschleunigung • Grafikprozessor • GPGPU • Streamprozessor • Soundprozessor • Gleitkommaeinheit • Netzwerkprozessor • Physikbeschleuniger • Vektorprozessor • Tensor Processing Unit }}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: |

{{{Weiteres}}}

}}{{#if: |

{{{Weiteres2}}}

}}{{#if: |

{{{Anmerkungen}}}

}}Vorlage:Klappleiste/Ende