'cudaMemcpy'에 해당되는 글 1건

  1. 2012.06.07 cudemMemcpy()
memcpy()와 비슷하게 dst, src 순서로 주소를 넣어주면 된다.
하지만, 그래픽 카드 메모리(device memory)와 메모리(host memory)를 구분지어 줘야하기 때문에
복사할 메모리의 방향과 종류를 정해주어야 한다.

일반적인 cuda 프로그래밍의 순서인
host -> device
cuda 계산
device -> host를 하기 위해서는

아래와 같이 한번씩 번갈아 해주면 될 듯?
cudaMemcpy(dev_memhost_mem, cudaMemcpyHostToDevice);
kernel_name<<< ... >>>(...);
cudaMemcpy(host_memdev_mem, cudaMemcpyDeviceToHost); 

5.8.2.18 cudaError_t cudaMemcpy (void *dst, const void *src, size_t count, enum cudaMemcpyKind kind)
Copies count bytes from the memory area pointed to by src to the memory area pointed to by dst, where kind is one of cudaMemcpyHostToHost, cudaMemcpyHostToDevice, cudaMemcpyDeviceToHost, or cudaMemcpyDevice-ToDevice, and specifies the direction of the copy. The memory areas may not overlap. Calling cudaMemcpy() with dst and src pointers that do not match the direction of the copy results in an undefined behavior.

Parameters:
dst - Destination memory address
src - Source memory address
count - Size in bytes to copy
kind - Type of transfer

Returns:
cudaSuccess, cudaErrorInvalidValue, cudaErrorInvalidDevicePointer, cudaErrorInvalidMemcpyDirection

5.28.3.9 enum cudaMemcpyKind
CUDA memory copy types

Enumerator:
cudaMemcpyHostToHost Host -> Host
cudaMemcpyHostToDevice Host -> Device
cudaMemcpyDeviceToHost Device -> Host
cudaMemcpyDeviceToDevice Device -> Device
cudaMemcpyDefault Default based unified virtual address space 

---
2012.07.11 추가
다시보니 cudaMemcpy(dst, src, direction); 의 양식이다.
다르게 보면 cudaMemcpy(To, From, dir_FromTo);
신고
Posted by 구차니

댓글을 달아 주세요