728x90

NVIDIA에서 공식적으로 제공하는 방법이다.



위 코드와 같은 방법으로 사용이 가능하다.


우선 두개의 cudaEvent 변수를 생성해야 하는데, 이것은 record 하는 순간의 timestamp를 저장하는 형식이기 때문이다.

이후 cudaEventRecord()를 이용하여 시작하는 순간과 끝나는 순간의 timestamp를 저장하면 된다.

시간은 cudaEventElapsedTime()를 이용하여 받아오는데, cudaEvent는 기본적으로 float으로 반환한다.


cudaEventSynchronize()는 Host에서 사용되는 함수로써, event가 발생할 때까지 Host는 대기하게 된다.

이와 비슷한 함수로 cudaStreamWaitEvent()가 있는데, 이 함수는 Device내부에서 event가 발생할 때까지 대기한다.


728x90

+ Recent posts