• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

23.04.02 00:47 작성 23.04.02 00:47 수정 조회수 228

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 했던 것 같습니다.

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

감사합니다.