__syncthreads() : 각 스레드의 작업을 모두 동일하게 맞추어준다
- 때문에 지연 감춤의 효과를 떨어뜨린다.
- 빠른속도의 공유 메모리를 사용한다고해서 반드시 유리하지만은 않다는 것을 의미한다.
공유메모리에 전역 메모리 일부를 읽어 데이터를 처리하는 방법을 많이 사용하지만,
공유메모리에 전역 메모리를 복사한 후 __syncthreads()를 사용할 경우 지연 감춤은 일어나지 않는다.
즉, 전역메모리 참조 횟수 대비 적당한 시간의 명령 수행시간이 확보되고, __syncthread()가 그 명령 수행시간 사이를 구분짓지 않는 경우, 지연감춤이 일어나는 전역 메모리만 사용하는 경우가 공유메모리를 함께 사용하는 것 보다 더 나을 수 있다.
결국은 메모리 매니지먼트가 그만큼 GPU 프로그래밍에서는 상당히 중요하다는 것
'Graphics > GPU' 카테고리의 다른 글
GPU 최적화 기초 - 활성 블록 최적화, 메모리 최적화 (0) | 2014.06.09 |
---|---|
GPU 최적화 기초 - 알고리즘 최적화 (0) | 2014.06.09 |
GPU 최적화 기초 - 전역메모리 참조시간, 지연감춤 (0) | 2014.06.09 |
GPU 최적화 기초 - 활성 블록 수와 자원 (0) | 2014.06.09 |
GPU 최적화 기초 - 활성화 비율 (0) | 2014.06.09 |