인프런 커뮤니티 질문&답변

박 신석님의 프로필 이미지
박 신석

작성한 질문수

CUDA 프로그래밍 (6) - C/C++/GPU 병렬 컴퓨팅 - 서치 & 소트

39g-merge-global-large.cu에 대해서 질문드립니다.

해결된 질문

작성

·

305

·

수정됨

0

안녕하세요.

예저코드 39g-merge-global-large.cu를 보던 중에 궁금증이 생겨 질문 드립니다.

제가 궁금한 부분은 deviceMergeSort함수 마지막 부분에 아래의 2줄입니다.

cudaMemcpy( vecC, dev_vecC, TOTAL_NUM * sizeof(unsigned), cudaMemcpyDeviceToHost );
cudaMemcpy( dev_vecB, dev_vecC, TOTAL_NUM * sizeof(unsigned), cudaMemcpyDeviceToDevice );

dev_vecC에 들어 있는 정렬된 데이터를 왜 for문 내부에서 dev_vecB와 vecC로 계속 memcpy하는 걸까요?
제 생각에는 dev_vecB는 주소값을 스왑하여 사용하면 될거 같았고, vecC도 계산 모두 마무리되어 for문밖에서 복사해줘도 될거 같다고 생각이 들어서요.

 

답변 1

1

안녕하세요.

CUDA 프로그래밍 강의를 수강해 주셔서 감사합니다.

질문하셨던 부분을 확인해 보니, 말씀 하신 내용이 맞습니다.

for 루프 안 쪽에 있을 필요가 없는 부분인데, 이전 코드를 확장하는 과정에서, 그대로 copy 했던 것 같습니다.

말씀하신 부분을 수정해서, 다시 올리도록 하겠습니다.

감사합니다.

박 신석님의 프로필 이미지
박 신석

작성한 질문수

질문하기