Comment faire pour transposer une matrice dans CUDA/cublas?

Dire que j'ai une matrice avec une dimension de A*B sur GPU, où B (nombre de colonnes) est la principale dimension en supposant un C style. Existe t'il une méthode en CUDA (ou cublas) pour transposer cette matrice de FORTRAN style, où A (nombre de lignes) devient la première dimension?

C'est encore mieux si elle pourrait être transposée au cours de host->device transfert de tout garder les données d'origine inchangé.

  • Parce que CUBLAS peuvent fonctionner sur les deux transposée et normal matrices, vous n'avez probablement pas besoin de calculer explicitement la matrice de transposition, même lorsque l'on travaille avec des matrices qui sont en ligne pour une commande importante.
  • Il semble que l'utilisation de cublas<t>geam, comme indiqué ci-dessous, est un moyen très efficace pour effectuer de la matrice de transposition en CUDA. Pour un code complet et une comparaison avec la matrice de transposition à l'aide de la Poussée, voir Quel est le moyen le plus efficace pour transposer une matrice dans CUDA?.