Dieses Beispieldesign führt zwei Instanzen einer Klasse in zwei separaten Threads aus. Jede Instanz verwendet einen anderen Kernel: Die erste Instanz führt einen Vektor-Zusatzkern aus, um folgendes durchzuführen: C = A + B, wobei A, B und C N-Element-Vektoren sind. Die zweite Instanz führt einen Memberwise Vector Multiplikations-Kernel aus, um Folgendes durchzuführen: C = A * B (memberwise). Die Kernel sind absichtlich einfach gehalten und nicht optimiert.
Da das Gerät nicht programmiert werden kann, um zwei separate Programme gleichzeitig zu verwenden, teilen sich beide Probleminstanzen das gleiche OpenCL™-Programm (wodurch im gleichen Kontext ausgeführt wird). Wie in diesem Beispiel können die beiden Threads jedoch separate Befehlswarteschlangen haben. Zur Vereinfachung laufen die beiden Threads auf zwei Instanzen des gleichen Codes mit unterschiedlichen Argumenten, können aber im Allgemeinen zwei separate Klassen ausführen.
Neben der Einführung der grundlegenden OpenCL-Programmierschnittstelle (API) unterstützt dieses Beispiel die Partitionierung des Problems auf mehreren OpenCL-Geräten, falls verfügbar. Wenn M-Geräte verfügbar sind, wird das Problem so aufgeteilt, dass jedes Gerät mit N/M-Punkten betrieben wird. Das Host-Programm nimmt an, dass alle Geräte vom gleichen Typ sind (das heißt, dass die gleiche Binärdatei verwendet werden kann, aber der Code kann generalisiert werden, um verschiedene Gerätetypen einfach zu unterstützen).
Downloads
Das Design-Beispiel liefert den Quellcode für das OpenCL-Gerät (.cl) und die Host-Anwendung. Zum Kompilieren der Host-Anwendung enthält das Linux* Paket eine Makefile und das Windows* Paket enthält ein Microsoft* Visual Studio 2010-Projekt.
Die folgenden Downloads werden für dieses Beispiel bereitgestellt:
Die Verwendung dieses Designs unterliegt den Bedingungen der Hardware-Referenzdesignlizenzvereinbarung.
Software- und Hardware-Anforderungen
Dieses Designbeispiel erfordert die folgenden Tools:
- Intel® FPGA Software v17.1 oder neuer
- Intel FPGA SDK für OpenCL™ v17.1 oder neuer
- Unter Linux: GNU Make und gcc
- Unter Windows: Microsoft Visual Studio 2010
Um die Intel® Design-Tools herunterzuladen, besuchen Sie die OpenCL Download-Seite. Die Anforderungen an das zugrunde liegende Betriebssystem sind dieselben wie die des Intel FPGA SDK für OpenCL.
OpenCL und das OpenCL-Logo sind Marken von Apple Inc., die mit Genehmigung von Khronos verwendet werden.
* Das Produkt basiert auf einer veröffentlichten Khronos-Spezifikation und hat den Khronos-Konformitätstest bestanden. Der aktuelle Konformitätsstatus finden Sie unter www.khronos.org/conformance.