[CUDA] thrust의 사용

spring·2020년 11월 9일
0

thrust는 cuda를 C++로 사용할 떄 사용하면 좋다.

thrust 함수를 호출할 땐, 가능하면 cu파일에서 호출하는 것이 좋다. (h,cpp파일에서 동작하지 않는 함수들이 있다)

for_each의 경우 쿠다 커널 함수를 짜지 않고 쿠다에서 실행시킬 수 있는 좋은 함수이다. 게다가 블록, 그리드 수를 고민할 필요도 없고 성능은 완벽하게 동일하다.

thrust::for_each(
		thrust::counting_iterator<int>(0),
		thrust::counting_iterator<int>(N*MB),
		[=] __host__ __device__ (const int& idx)->void {
		int oh = static_cast<float>((idx % N) == y[idx / N]);
		error[idx] = input[idx] - oh;
		}
	);
profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

0개의 댓글