J'apprends le Metal d'Apple en essayant de faire un peu de calcul GPU.Pourquoi l'exemple de multiplication de la matrice métallique d'Apple nécessite un remplissage C
J'ai vérifié le matrix multiplication example donné par Apple. Il y a un point que je ne peux pas comprendre.
Dans le fichier MetalMatrixMult.h
// Number of rows in matrices A and C.
@property (nonatomic) uint16_t m;
// Number of columns in matrix A; number of rows in matrix B.
@property (nonatomic) uint16_t n;
// Number of columns in matrices B and C.
@property (nonatomic) uint16_t k;
// Output matrix (padded) C row count
@property (nonatomic, readonly) uint16_t M;
// Output matrix (padded) C column count
@property (nonatomic, readonly) uint16_t K;
// Output matrix C = A x B
@property (nonatomic, readonly) float* output;
Il dit la matrice C est rembourré. Je ne suis pas clair ce que pad
signifie ici. Est-ce une sorte d'alignement? Parce que je sais qu'il existe des types d'alignement dans la spécification du langage de shader de Metal, mais je ne sais pas pourquoi nous avons besoin de tamponner un herer tampon.
Merci.
Très clair. Merci –