J'ai une mémoire globale principale (gpu_mem
), avec une variable (gpu_mem_offset
) pour suivre le décalage actuel de cette mémoire globale où un thread mettra à jour son contenu. Le script suivant garantira-t-il l'atomicité du contenu de la mémoire et des valeurs de décalage?atomicité de mise à jour de mémoire GPU
__global__ void kernel(int *gpu_mem, int *gpu_mem_offset)
{
gpu_mem[(*gpu_mem_offset)++] = some_value;
}
Mise à jour
Je réalise rapidement que le script ci-dessus est stupide, mais je ne décrirais mon intention: comment garantir l'atomicité à la fois du contenu de la mémoire et les valeurs de décalage? Ou, comment les verrouiller tous les deux en même temps? Peut-être pas réalisable?
En un mot, non, chaque fois que vous exécutez plus d'un seul thread – talonmies