J'essaie de comprendre l'idée de la dimension dominante dans cuBLAS. Il est mentionné que lda
doit toujours être supérieur ou égal au nombre de lignes dans une matrice.La dimension principale de cuBLAS permet-elle d'accéder à une sous-matrice?
Si j'ai une matrice A 100x100 et que je voulais accéder à A (90:99, 0:99), quels seraient les arguments de cublasSetMatrix
? lda
spécifie le nombre de lignes entre les éléments dans la même colonne (100 dans ce cas), mais où devrais-je spécifier le 90? Je ne peux voir un moyen en ajustant *A
.
La définition de la fonction est:
cublasStatus_t cublasSetMatrix(int rows, int cols, int elemSize, const void *A, int lda, void *B, int ldb)
Et je suppose aussi que je ne serais pas en mesure de transférer la partie inférieure droite de 3x3 d'une matrice 5x5, compte tenu des limites de longueur.
La réponse dépend de l'ordre de stockage de la matrice. Dans quel sens A est-il stocké? – talonmies
@talonmies Colonne-major – John
Oui, vous pouvez accéder à une sous-matrice arbitraire avec CUBLAS (ou tout BLAS, pour cette question). S'il vous plaît décoder votre notation. 'A (90:99, 0:99)' = colonne 99 des lignes 90 à 0? Pourquoi les lignes sont-elles spécifiées dans l'ordre inverse? – njuffa