2013-05-03 1 views

답변

1

현대 아키텍처는 완화 된 메모리 모델을 가지고 있습니다. 즉, 메모리 액세스가 반드시 프로그램에 나타나는 순서대로 실행되지는 않습니다.

Threadfence 명령어는 실제로 메모리 펜스입니다. 펜스가 펜스 이전에 실제로 실행되기 전에 나타나는 메모리 액세스를 보장합니다. 이 설명서에서 보셨 듯이 공유 (블록) 메모리, 전역 메모리 및 호스트 메모리를 다루는 울타리의 3 가지 변형이 있습니다.

__syncthreads는 블록 수준의 동기화를 제공합니다. 즉, 블록의 스레드가 대기합니다. __syncthreads는 동일한 블록의 스레드에 대한 메모리 울타리로도 작동합니다.

설명서의 예는 좋은 예입니다.

nv 포럼의 응답을 확인하십시오. https://devtalk.nvidia.com/default/topic/412600/trying-to-understand-memory-fence-function-example/

관련 문제