GPU Processing Overkill?

420
Ben Franchuk

Gibt es einen solchen Punkt, an dem die Verwendung von GPU-Verarbeitung oder Koprozessoren (wie die Intel Xeon PHI-Karte oder die Nvidia Tesla-Karte) tatsächlich die Geschwindigkeit reduzieren kann, mit der eine Software Daten berechnet?

Angenommen, ich hatte eine riesige Gruppe externer PCI-E-Erweiterungen (wie diese hier http://www.cyclone.com/products/expansion_systems/FAQ.php ), die alle an denselben Computer angeschlossen sind. Könnte es aufgrund der Verteilung der Daten über die Erweiterungen und der GPUs innerhalb der Erweiterungen nicht theoretisch tatsächlich die Geschwindigkeit verlangsamen, mit der Daten verarbeitet werden?

Ich wundere mich nur. Wenn dies nicht der Fall ist, warum?

2

1 Antwort auf die Frage

2
Mitch

Es gibt einen Punkt, an dem Sie die Ressourcen Ihrer CPU sättigen werden, und die GPUs werden sich im Leerlauf befinden. Es gibt auch einen Punkt, an dem die Busressourcen ausgehen könnten. Da es sich um einen Bus handelt, gibt es eine maximale Menge übertragbarer Daten pro Zeiteinheit, was wiederum dazu führen kann, dass GPUs im Leerlauf sitzen.

Das Hinzufügen von GPUs sollte die Leistung jedoch nicht beeinträchtigen, sie jedoch nicht weiter verbessern.


Rechentechnisch gibt es auch einige Probleme, bei denen der Versuch, sie auf einer GPU auszuführen, langsamer sein könnte als auf einer CPU. Algorithmen wie Scrypt wurden speziell für die Verwendung einer großen Menge an RAM entwickelt, um die durch die Implementierung von FGPAs und GPUs erhaltenen nichtlinearen Beschleunigungen zu verhindern.

GPUs bieten nur dann Geschwindigkeitssteigerungen, wenn viele parallele Vorgänge stattfinden. Die Berechnung einer einzelnen Multiplikation wäre nicht schneller. GPUs sind im Allgemeinen auch nicht gern verzweigt (Ausführung von bedingtem Code).