2010-12-03 9 views
5

Estoy aprendiendo CUDA y tengo algo como esto en este momento.CUDA Principiante - Espera a que finalice un hilo antes de pasar a

__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); 
} 

La cosa es, cada temperatura necesita el resultado de la última.

Cómo puedo forzar a cada bloque a esperar al último.

Gracias!

Respuesta

8

Simplemente haciendo una llamada a __syncthreads() debe hacer exactamente lo que quiere.

Cuestiones relacionadas