Wie zu transponieren einer matrix in CUDA/cublas?

Sagen, dass ich eine matrix mit einer dimension von A*B auf die GPU, wo B (Anzahl der Spalten) ist die führende dimension angenommen, ein C-Stil. Gibt es eine Methode in CUDA (oder cublas) zu transponieren dieser matrix FORTRAN-Stil, wo A (Anzahl der Zeilen) wird die führende dimension?

Ist es sogar besser, wenn es umgesetzt werden können, während host->device transfer, während halten Sie die original-Daten unverändert.

  • Da CUBLAS kann auf beide umgesetzt und normale Matrizen, werden Sie wahrscheinlich nicht brauchen, um explizit berechnen Sie die matrix transponieren, auch wenn das arbeiten mit Matrizen, das sind in row-major-Reihenfolge.
  • Es scheint, dass mit cublas<t>geam, wie unten vorgeschlagen, ist eine sehr effiziente Methode zur Durchführung von matrix-Umsetzung in CUDA. Für eine vollständige code und ein Vergleich mit den matrix-Transponierung mit Schub, siehe Was ist die effizienteste Methode zum transponieren einer matrix in CUDA?.
Schreibe einen Kommentar