Intel springt auf den OpenCL-Zug auf

IntelDerzeit bemerkt man an mehreren Stellen Intels Bemühungen, trotz der zunehmenden Verbreitung von GPGPU-Anwendungen weiterhin die eigenen CPUs als die bessere Wahl darzustellen. Daher gab es von Intel im Gegensatz zu AMD bisher auch keine eigene OpenCL-Unterstützung für CPUs.
Nun hat Intel aber angekündigt, dass man eine eigene OpenCL-Implementierung für CPUs plant, die es zukünftig ermöglichen soll, OpenCL-Anwendungen unter Ausnutzung von SSE und AVX inklusive der Vektoreinheiten effizienter auf CPUs auszuführen. "OpenCL is a great framework to harness Intel CPUs", was wie eine Antithese klingt, könnte letztlich den Durchbruch für OpenCL bedeuten und damit langfristig auch für Nvidia und AMD positive Folgen haben.

Eigentlich wurde OpenCL entwickelt, um parallele und heterogene Architekturen effizienter ausnutzen zu können. Primär verbindet man daher OpenCL auch mit GPUs, die durch das Framework als Coprozessoren genutzt werden und so für einen erheblichen Geschwindigkeitsschub bei einigen Anwendungen sorgen können. Doch AMD, für die OpenCL ein Kernelement ihrer APU-Strategie darstellt, hatte von Anfang an auch OpenCL-Treiber für die eigenen CPUs bereitgestellt. So können CPUs für serielle Aufgaben und GPUs für parallele Berechnungen gemeinsam an einem Problem arbeiten, wodurch alle Ressourcen im System entsprechend ihrer Fähigkeiten genutzt werden sollen. Bisher lief dabei allerdings der OpenCL-Code auf CPUs meist weniger effizient als C-Code.
Intel will nun aber offensichtlich durch die Nutzung der SIMD-Einheiten und künftig durch AVX CPUs ähnlich wie GPUs nutzen, so dass durch Nutzung von OpenCL-Code und Einbeziehen der Vektoreinheiten auf der CPU eine effizientere Berechnung als bei nativem C-Code erreicht werden kann. Gegenüber einfachem C-Code rechnet Intel mit einer um Faktor 15 erhöhten Performance bei nicht optimiertem OpenCL-Code unter Ausnutzung der Vektoreinheiten. Mit einigen Optimierungen liegt der OpenCL-Code dann sogar nahe an perfekt optimiertem C-Code, der SSE und Multithreading nutzt.

Schon am Anfang der Ausführungen zu OpenCL spricht Intel auch von der Nutzung seiner neuen Sandy Bridge-Prozessoren mit integriertem Grafikkern, allerdings wird auf die Grafikeinheit in den folgenden Ausführungen nicht mehr eingegangen. Es bleibt daher fraglich, ob die - wahrscheinlich vergleichsweise schwache - integrierte GPU der Sandy Bridge-Generation schon für GPGPU-Aufgaben effizient genutzt werden kann. Interessanter dürfte die Nutzung von OpenCL für die kommenden Knights-Coprozessoren sein, die auf Larrabee-Technik basieren und mit OpenCL-Code wahrscheinlich leichter effizient zu nutzen sind als mit C-Code.
Intels OpenCL-SDK soll Ende des Jahres in einer Alpha-Version für Entwickler erscheinen.


Kommentar schreiben

  • Loggen Sie sich oben mit ihren Benutzerdaten ein, um Kommentare zu verfassen.
  • Falls Sie noch kein Mitglied sind, können Sie sich in unserem Forum registrieren.

1 Kommentar

1.) Daedalus 15.08.2010 - 17:29 Uhr
Sehr gut. Es ist extrem vernünftig AUTOMATISIERT die Optimierungen der CPU mit zu berücksichtigen. Aber hoffentlich werden die AMD-CPUs fair behandelt. Sonst muss man wieder mit zwei Tools arbeiten. Dann nicht mehr so schön.