해결된 질문
작성
·
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 했던 것 같습니다.
말씀하신 부분을 수정해서, 다시 올리도록 하겠습니다.
감사합니다.