cuda 내 메모리 할당

Mechboy·2025년 5월 21일

cuda

목록 보기
1/6

1. cudaMalloc()

GPU 메모리 동적 할당

cudaMalloc(void **devPtr, size_t size);
  • devPtr: GPU 메모리 주소를 저장할 포인터
  • size: 바이트 단위 크기
  • 📌 예: cudaMalloc(&d_ptr, 100 * sizeof(int));

2. cudaFree()

GPU 메모리 해제

cudaFree(void *devPtr);
  • devPtr: cudaMalloc()으로 할당한 GPU 포인터
  • 📌 예: cudaFree(d_ptr);

3. cudaMemset()

GPU 메모리 초기화

cudaMemset(void *devPtr, int value, size_t count);
  • devPtr: GPU 메모리 주소
  • value: 채울 값 (0~255, 바이트 단위)
  • count: 초기화할 바이트 수
  • 📌 예: cudaMemset(d_ptr, 0, 100 * sizeof(int));

4. 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주요 목적메모리 영역
cudaMallocGPU 메모리 할당Device (GPU)
cudaFreeGPU 메모리 해제Device (GPU)
cudaMemsetGPU 메모리 초기화Device (GPU)
cudaMemcpyCPU↔GPU 메모리 복사Host ↔ Device
profile
imageprocessing and Data science

0개의 댓글