memcpy()와 비슷하게 dst, src 순서로 주소를 넣어주면 된다.
하지만, 그래픽 카드 메모리(device memory)와 메모리(host memory)를 구분지어 줘야하기 때문에
복사할 메모리의 방향과 종류를 정해주어야 한다.
일반적인 cuda 프로그래밍의 순서인
host -> device
cuda 계산
device -> host를 하기 위해서는
아래와 같이 한번씩 번갈아 해주면 될 듯?
---
2012.07.11 추가
다시보니 cudaMemcpy(dst, src, direction); 의 양식이다.
다르게 보면 cudaMemcpy(To, From, dir_FromTo);
하지만, 그래픽 카드 메모리(device memory)와 메모리(host memory)를 구분지어 줘야하기 때문에
복사할 메모리의 방향과 종류를 정해주어야 한다.
일반적인 cuda 프로그래밍의 순서인
host -> device
cuda 계산
device -> host를 하기 위해서는
아래와 같이 한번씩 번갈아 해주면 될 듯?
cudaMemcpy(dev_mem, host_mem, cudaMemcpyHostToDevice); kernel_name<<< ... >>>(...); cudaMemcpy(host_mem, dev_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);
'Programming > openCL & CUDA' 카테고리의 다른 글
cuda shared memory의 결합법칙? (0) | 2012.09.20 |
---|---|
cudaMalloc 시작 위치? (0) | 2012.07.11 |
cuda 에서 device memory의 용량을 초과하는 malloc은 위험해! (0) | 2012.06.06 |
nvcc 는 int main()을 좋아해 (0) | 2012.06.05 |
cuda 메모리별 접근 소요 클럭 사이클 (0) | 2012.06.05 |