2010-12-03 10 views
5

J'apprends le CUDA et j'ai quelque chose comme ça en ce moment.CUDA Débutant - Force à attendre la fin d'un fil avant de continuer

__device__ void iterate_temperatures(int fieldSize, Atom *atoms) { 

    int temperature = threadIdx.x + blockDim.x * blockIdx.x; 

    nAtoms = pow(fieldSize, DIMENSION); 


    iterate_atoms<<<nAtoms>>>(atoms, nAtoms, temperature); 
} 

Cela étant, chaque température nécessite le résultat du dernier.

Comment puis-je forcer chaque bloc à attendre le dernier.

Merci!

Répondre

8

Il suffit de passer un appel à __syncthreads() devrait faire exactement ce que vous voulez.