Problematisch bei GPUs war bisher, dass die großen Hersteller auffallend häufig neue Bausteingenerationen auf den Markt gebracht haben. So mancher Anwender in der Industrie fragt sich daher, wie es um die Langzeitverfügbarkeit der GPUs bestellt ist. Bei näherer Betrachtung aber verliert das Problem an Brisanz: »Es sind Tendenzen von GPU-Herstellern zu erkennen, Bausteine mit längerer Verfügbarkeit auf den Markt zu bringen«, stellt Balz fest.
Ein Schlüssel zur Aufhebung des Dilemmas liegt in der Software: »Zumindest in Verbindung mit CVB stellt das kein Problem dar«, ist sich Kersting sicher. »Die Verwendung der Programmierschnittstellen-Sammlung DirectX als Basis hat den Vorteil, dass man selbst dann, wenn eine bestimmte Hardware nicht mehr verfügbar ist, leicht auf den Nachfolger umsteigen kann, der in der Regel nicht nur günstiger, sondern auch schneller ist.« Schwieriger werde es bei Ansätzen, die beispielsweise die CUDA-Bibliothek (Compute Unified Device Architecture) von Nvidia nutzen: »Man ist damit an den Hersteller Nvidia gebunden und muss darauf vertrauen, dass er weiterhin abwärts kompatible Hardware bereitstellt.«
Auch Balz erachtet die Frage, wie kompatibel künftige GPUs sind, als für Software-Hersteller wichtig: »Mit der Programmierplattform OpenCL (Open Computing Language) ist ein Ansatz geschaffen, GPUs verschiedener Hersteller und andere Prozessorsysteme über eine gemeinsame Software-Basis nutzbar zu machen«, sagt er.
Nach Ecksteins Meinung liegt das Problem darin, dass GPUs zunächst für den Massenmarkt entwickelt würden, der grundsätzlich andere Anforderungen stelle als die Industrie. »Aus Sicht der Industrie bieten sich derzeit zwei Lösungen für das Problem an: Zum einen gibt es speziell für die Industrie gefertigte Grafikkarten, etwa die der 'Tesla’-Serie von Nvidia, für die eine Verfügbarkeit von drei Jahren garantiert ist«, führt er aus. »Der andere Ansatz geht über die Schnittstellenkompatibilität: Wenn der Software-Hersteller die Verfahren immer an die neuen Karten anpasst, also an die neuen Treiber, dann kann der Anwender einfach eine alte Karte durch eine neue austauschen, ohne an seinem Programm etwas ändern zu müssen.« In der Regel werde seine Applikation dadurch sogar noch schneller. »Aber auch hier muss der Anwender vorab prüfen, ob der Software-Hersteller dedizierte Eigenschaften von GPUs ausnutzt oder die Programmierung über eine Standardschnittelle realisiert, so wie Halcon auf dem OpenCL-Standard beruht«, ergänzt der MVTec-Geschäftsführer.
Angesichts der Geschwindigkeitsvorteile, die die GPU gegenüber der CPU hat, stellt sich die Frage, ob die GPU die CPU in der Bildverarbeitung dereinst ersetzen könnte. Alle befragten Experten verneinen dies jedoch: »Die GPU kann die CPU entlasten, aber nicht ersetzen«, konstatiert Balz. »Sie ist als Co-Prozessor zu sehen, dessen Stärke in der hochparallelen Verarbeitung von Daten mit einfachen Algorithmen zu suchen ist.« Ähnlich Eckstein: »Die GPU ist definitiv eine Entlastung der CPU, aber auch nicht mehr«, stellt er klar. »Dies liegt an der Tatsache, dass viele Programmteile sequenziell sind und in diesem Modus eine GPU extrem langsam ist - der Faktor ist hier größer als 100, verglichen mit der CPU.« Kersting pflichtet den beiden bei: »Wir denken nicht, dass CPUs überflüssig werden, denn beide Systeme haben ihre Vor- und Nachteile, die bei unterschiedlichen Aufgaben zu berücksichtigen sind«, führt er aus. »Man denke hier nur an die vielfältigen, im PC vorhandenen und in Anwendungen benutzten Schnittstellen etwa zur SPS. Allerdings könnte schon bald die eine oder andere GPU auf den Markt kommen, in der eine kleine CPU enthalten ist, und auch CPUs mit eingebauter GPU sind durchaus denkbar.«
Auch Noffz ist ähnlicher Meinung: »Architektonisch unterscheiden sich GPU und CPU zu sehr, um eine der Technologien mittelfristig zu subsummieren«, sagt er. »Hierfür entwickeln sich alle Technologien einschließlich FPGA auch zu schnell weiter, um die spezifischen Stärken zu integrieren.«
Eine aktuelle Entwicklung von Intel und Altera, ein CPU-FPGA-Gespann auf einer Miniaturplatine für den Embedded-Markt, zeigt laut Noffz »den weitaus interessanteren Ansatz in einer symbiotischen Kombination anstatt in einer Absorption«. Die Integration eines CPU-Cores in einen FPGA-Baustein erweitere zwar den Einsatzbereich für integrierte Systeme, werde aber bei der Nutzung für Bildverarbeitungsaufgaben nie über einen Hilfsprozessor hinausgehen können. »Für die gleichzeitige Nutzung von CPU und GPU gilt dies analog«, legt Noffz dar. »Ziel ist es, die Schwächen der unterschiedlichen Technologien zu kompensieren, um zusätzliche Ressourcen für die eigenen Stärken bereitzustellen.«