CUDA 병렬 프로그래밍 (20121027)
CUDA 병렬 프로그래밍, 정영훈 저, 이한디지털리
6. CUDA API 함수
- 보통 쓰이는 CUDA 환경이 CUDA Runtime API, 그 하위로 CUDA 드라이버 API가 있다.
- 드라이버 API에서는 라이브러리(CUFFT, CUBLAS)를 사용못함
- API는 세세하게 조절가능하나 과정이 복잡
7. 성능측정
- Timer 혹은 Event로 시간 측정 가능
- cubin 파일을 생성하면 내부에 사용된 메모리 정보를 볼 수 있음
- tools 디렉토리에 CUDA_Occupancy_calculator.xls 파일로 점유율을 계산할 수 있음
- Active Threads per Multiprocessor, Active Warps per Multiprocessor, Active Thread Blocks per Multiprocessor 를 주목. 마지막 것이 중요하다.
- Visual Profiler의 gld uncoalesced와 gld coalesced를 보면 결합 전송을 볼 수 있음.
8. 스트림
- 메모리 복사와 커널 실행을 병렬로 실행가능한데, 커널이 하나만 실행하는 상황에서는 사용효과가 없어보인다.