| Es wurden weitere Begriffe gefunden: | |||||
| Kepler-GPU-GK110 | |||||
|
Im Jahr 2012 stellt Nvidia den bis Dato komplexesten und leistungsfähigsten Grafik-Prozessor her: das Kepler Projekt GK110 mit 7,1 Milliarden Transistoren. Highlight dieser Hochleistungs-GPU ist Dynamic Parallelism, wodurch die GPU selbständig neue Kernel erzeugen kann und Hyper-Q. Dynamic Parallelism erzeugt bei einem auf der GPU ablaufenden Thread automatisch einen neue Kernel, so dass die GPU unter anderem rekursive Funktionen ohne Mitwirken der CPU verarbeiten kann. Hyper-Q ermöglicht den virtualisierten Zugriff der Hauptprozessor-Kerne mit bis zu 32 MPI-Tasks auf die Kepler GPU. Es können also bis zu 32 Threads der CPU parallel auf die GPU zugreifen. Die GK110-GPU wird im 28 Nanometer-Prozess hergestellt. Die Kepler GPU beherrscht auch die GPUDirect Technik für den effizienten Datenaustausch zwischen Grafikkarten innerhalb eines Servers und zwischen Grafikkarten heterogener Server über das Networkinterface RDMA (Remote Direct Memory Access). Die Kepler-GPU arbeitet mit einer reduzierten Leistungsaufnahme und ist dabei bei Standardanwendungen um 50 - 80% leistungsfähiger als bisherige GPUs. Programmierer können die CUDA-API (Compute Unified Device Architecture) verwenden, um die Big Kepler GPU (GK110) anzusteuern. Die erste Grafikkarte mit der Big Kepler GPU wird die Tesla K20 sein. Sie verfügt über eine 384 Bit breite Speicheranbindung. |
|||||
| Siehe auch: GPU CPU Grafikkarte CUDA-API Intel-Sandy-Bridge APU | |||||
| RISC | |||||
|
Reduced Instruction Set Computer. Bei RISC-Prozessoren liegt ein reduzierter Befehlssatz vor; d.h. der Prozessor verfügt häufig nur über eine kleine Anzahl von Maschinenbefehlen mit fester Befehlslänge. Diese Befehle werden dabei möglichst in einem Taktzyklus verarbeitet. RISC-Rechner erreichen deshalb eine hohe Verarbeitungsgeschwindigkeit, benötigen aber Software, die auf sie abgestimmt ist. RISC-Prozessoren wurden ursprünglich für Mainframe-Rechner entwickelt. In der Sun SPARC Architektur wurden z. B. RISC Prozessoren verbaut. Im Personal-Computer-Bereich wurden RISC-Prozessoren seit den frühen 90er Jahren in PowerPC-Prozessoren von Motorola, IBM und Apple-Macintosh-Rechnern eingesetzt. Heute arbeitet man häufig mit einer Mischung aus RISC (als RISC-Kern) und CISC (Complex Instruction Set Computer), wie bei den jüngeren Pentium-Prozessoren von Intel. StrongARM Architektur Intel stieg in die RISC Architektur auch durch den Kauf der StrongARM Architektur von DEC ein (Advanced Risc Machines Ltd.). Die ARM Architektur verfügt über eine 32-Bit RISC Architektur (Advanced RISC Machine oder Acorn RISC Machine) mit dem ARM V4 Instruction Set (ISA: Instruction Set Architecture). Später ersetzte Intel die StrongARM Architektur durch XScale. Die erste Version des StrongARM war bereits 1995 fertig und wurde vermutlich durch Acorn Desktop Prozessoren weiterentwickelt. Der StrongARM SA-100 sorgte im Newton 2100 für lange Akkulaufzeiten. XScale ist eine Weiterentwicklung der StrongARM RISC-Architektur durch Intel. Die DEC Entwickler verliessen ihre Firma, nachdem Intel grosse Teile der Lizenzen besass, so dass Intel gezwungen war die ARM Architektur selber weiter zu entwickeln. |
|||||
| Siehe auch: CISC Cell SPARC PowerPC Pentium-4 Core-2-Duo Intel IBM Sun-Microsystems CPU | |||||
| Multithreading | |||||
|
Beim Multithreading werden die einzelnen Tasks (Aufträge) in kleinere eigenständige Prozesse (= Threads) aufgeteilt. Ein multithreading-fähiger Prozessor ist somit in der Lage, mehrere Threads auf einmal zu bearbeiten. Echte Parallel-Verarbeitung ist nur bei mehreren Prozessoren gegeben. Aber auch ein einzelner Prozessor, der multithreading-fähig ist, kann damit schneller arbeiten, wenn die Threads intelligent abgearbeitet werden, beispielsweise durch Verkürzung von Wartezeiten, optimale Auslastung bzw. Einlastung (Scheduling) von Threads. Im Unterschied zum Multitasking bezieht sich die Nebenläufigkeit nicht nur auf Prozesse sondern auch auf Bearbeitungsstränge (Threads) innerhalb der Prozesse. Intel leitet seine Hyper-Threading-Technologie vom Multithreading ab. Es handelt sich um Simultaneous Multithreading (SMT) beim Pentium 4 und XEON Prozessor. Diese Technologie erhöht die Leistung von multi-threaded Anwendungen, indem sie die Auslastung der On-Chip-Ressourcen (welche in der Intel NetBurst Architektur verfügbar sind) erhöht. Die NetBurst-Ressourcen sind im Normalfall nur zu 30% + X ausgelastet. Hyper-Threading erhöht diese Auslastung durch entsprechende Logik und erzeugt einen zweiten logischen Prozessor. Weitere Beispiele für Prozessoren mit Multithreading sind der UltraSPARC T1 (Niagara), UltraSPARC T2 (Niagara II) oder der Rock Prozessor von Sun Microsystems. Man unterscheidet softwareseitiges Multithreading und hardwareseitiges Multithreading. Softwareseitiges Multithreading Beim softwareseitigen Multithreading steht meist nur ein Prozessor zur Verfügung. Die einzelnen Threads werden effizient auf die zur Verfügung stehenden Ressourcen aufgeteilt. Die Anzahl der Threadwechsel sollte jedoch möglichst gering sein um den dadurch entstehenden Verwaltungsaufwand möglichst gering zu halten. Hardwareseitiges Multithreading Beim hardwareseitigen Multithreading wird das Multithreading von der Hardware unterstützt, indem z. B. mehrere Prozessorkerne die Thread-Abarbeitung parallelisieren oder indem ein Multithreaded Prozessor vorliegt. Ein Multithreaded Prozessor kann mehrere Threads gleichzeitig abarbeiten. Dazu besitzt ein Thread einen eigenen Registersatz mit Stackpointer und Befehlszähler (Programcounter, Befehlszählregister). Häufige Thread-Wechsel bewirken beim hardwareseitigen Multithreading sogar eine Steigerung der Performance, da Konflikte in den Pipelines der Prozessoren (Pipeline Hazards) reduziert werden können. Multithreading-Prozessoren können unterschiedliche Strategien für die Aufteilung und Einlastung der Threads bzw. deren paralleler Verarbeitung anwenden: 1. Switch-By-Event: Ereignisse welchen einen Thread-Wechsel auslösen. 2. Time-Slices: jedem Thread wird eine bestimmte Zeitspanne zugewiesen. 3. Simultaneous Multithreading (SMT). Thread Grundsätzlich ist zu unterscheiden zwischen Prozess, Kernel-Thread und User-Thread. Ab ca. 1995 unterstützen die meisten Betriebssysteme alle 3 Kategorien. Moderne Prozessoren sind i.d.R. mehrfädig, d.h. sie unterstützen hardwareseitiges Multithreading. |
|||||
| Siehe auch: Multitasking Pipeline-Architektur Simultaneous-Multithreading Hyper-Threading SMP Superskalar Thread Pentium-4 Dual-Core NetBurst | |||||