cudaMalloc()GPU 메모리 동적 할당
cudaMalloc(void **devPtr, size_t size);
devPtr: GPU 메모리 주소를 저장할 포인터size: 바이트 단위 크기cudaMalloc(&d_ptr, 100 * sizeof(int));cudaFree()GPU 메모리 해제
cudaFree(void *devPtr);
devPtr: cudaMalloc()으로 할당한 GPU 포인터cudaFree(d_ptr);cudaMemset()GPU 메모리 초기화
cudaMemset(void *devPtr, int value, size_t count);
devPtr: GPU 메모리 주소value: 채울 값 (0~255, 바이트 단위)count: 초기화할 바이트 수cudaMemset(d_ptr, 0, 100 * sizeof(int));cudaMemcpy()CPU ↔ GPU 메모리 복사
cudaMemcpy(void *dst, const void *src, size_t count, cudaMemcpyKind kind);
dst: 복사 대상 주소
src: 복사 원본 주소
count: 복사할 바이트 수
kind: 복사 방향 지정
cudaMemcpyHostToDevice (CPU → GPU)cudaMemcpyDeviceToHost (GPU → CPU)cudaMemcpyDeviceToDevice (GPU → GPU)📌 예:
cudaMemcpy(d_ptr, h_ptr, size, cudaMemcpyHostToDevice);
| API | 주요 목적 | 메모리 영역 |
|---|---|---|
cudaMalloc | GPU 메모리 할당 | Device (GPU) |
cudaFree | GPU 메모리 해제 | Device (GPU) |
cudaMemset | GPU 메모리 초기화 | Device (GPU) |
cudaMemcpy | CPU↔GPU 메모리 복사 | Host ↔ Device |