Speedup GPU vs. CPU für matrix-Operationen

Frage ich mich, wie viel GPU-computing würde mir helfen, die Geschwindigkeit meiner Simulationen.

Den kritischen Teil meiner code-matrix-Multiplikation. Grundsätzlich ist der code der aussieht, wie der folgende python-code mit Matrizen der Ordnung 1000 und lange Schleifen.

import numpy as np
m_size = 1000
sim_length = 50

a = np.random.rand(m_size, m_size)
b = np.random.rand(m_size, m_size)

for j in range(sim_length):
    result = np.dot(a,b)

Hinweis: Meine Matrizen sind dicht, meist zufällig und for-Schleifen wurden mit cython.

Meine naive Vermutung wäre, dass ich zwei Faktoren:

  • Mehr parallele threads (Derzeit um 1 thread, die GPU um 100 threads?) --> Beschleunigung von um die 100? [Quelle ist ziemlich veraltet, ab 2011]
  • Niedrigeren Prozessor-Frequenz (Derzeit 3Ghz GPUs in der Regel 2 Ghz) --> Vernachlässigung

Erwarte ich, dass dieser Standpunkt ist zu naiv, so was bin ich?

  • Ich schlage vor, ein guter Ausgangspunkt wäre PyCUDA wenn Ihre GPU zulässt. Große Bibliothek, die ich verwendet habe in der Vergangenheit mit numpy.
InformationsquelleAutor physicsGuy | 2016-08-01
Schreibe einen Kommentar