"cudaThreadSynchronize()" and "__syncthreads()"

Hello friends, i’m a beginer of CUDA programing. Cound anybody tell me the difference between “cudaThreadSynchronize()” and “__syncthreads()”? Thanks!

BTW, Hope the CUDA could support the Ms Windows Vista soon…

cudaThreadSynchronize() is a host function that waits for all previous async operations (i.e. kernel calls, async memory copies) to complete.

__synchtreads() is a device function that acts as a thread barrier. All threads in a block must reach the barrier before any can continue execution. It is only of use when you need to avoid race conditions when threads in a block access shared memory.

It has been said that a new CUDA beta supporting Vista might be available by the end of March. That was mentioned a while back, though, and there have been no updates. NVIDIA is pretty tight lipped about future software and hardware releases.