Que signifie by this Nvidia?Mémoire partagée allouée dynamiquement dans CUDA. Configuration d'exécution
Ns
est de typesize_t
et spécifie le nombre d'octets dans mémoire partagée qui est allouée dynamiquement par bloc pour cet appel en plus de la mémoire allouée statiquement; cette mémoire allouée dynamiquement est utilisée par l'une quelconque des variables déclarées comme matrice externe comme mentionné dans__shared__
;Ns
est un argument optionnel dont la valeur par défaut est 0; La taille de la mémoire partagée dans mon GPU est de 48 Ko.
Par exemple, je veux exécuter 4 noyaux en même temps, chacun d'eux utilise 12ko de mémoire partagée.
Pour ce faire, dois-je appeler Kernek cette façon
kernel<<< gridSize, blockSize, 12 * 1024 >>>();
ou si le troisième argument de 48 * 1024?
Le troisième argument spécifie combien de mémoire partagée dynamiquement allouée est utilisée par le noyau, donc le troisième argument doit être '12 * 1024'. Mais si vous voulez exécuter quatre noyaux en parallèle, je suppose que vous utiliserez des flux, donc il devrait y avoir aussi un quatrième argument dans vos appels au noyau. – JackOLantern
Merci! En passant, je ne voulais pas dire «4 noyaux en même temps», mais «1 noyau sur 4 threads en même temps». Je suppose que j'ai encore besoin d'utiliser 'kernel <<< gridSize, blockSize, 12 * 1024 * 1024 >>>();' –
Je suppose que vous voulez dire '12 * 1024', pas' 12 * 1024 * 1024'. – ArchaeaSoftware