0Pricing
CUDA Academy · 강의

cudaMalloc과 cudaFree

전역 메모리를 예약하고 해제합니다.

cudaMalloc과 cudaFree은(는) CoddyKit의 무료 CUDA Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 CUDA Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. CUDA Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

GPU에는 자체 RAM이 있습니다

GPU는 컴퓨터의 주 메모리를 빌려 쓰지 않습니다. GPU에는 커널이 읽고 쓰는 전역 메모리라는 별도의 공간이 있습니다. 🧠

직접 요청해야 합니다

커널이 장치 메모리를 사용하기 전에 직접 공간을 예약해야 합니다. 이 예약을 수행하는 함수가 cudaMalloc입니다.

cudaMalloc의 함수 형식

cudaMalloc은 포인터의 주소와 바이트 수를 받습니다. 그런 다음 해당 포인터에 새로운 장치 주소를 넣습니다.

float* d_data;
cudaMalloc(&d_data, n * sizeof(float));

포인터의 포인터가 필요한 이유

&d_data를 전달하면 cudaMalloc이 새 주소를 변수에 다시 기록할 수 있습니다. 반환값은 오류 코드용으로 예약되어 있습니다.

항상 바이트 단위로 세기

cudaMalloc은 요소가 아니라 원시 바이트 단위로 동작합니다. 요소 수에 sizeof(type)을 곱하여 버퍼가 올바른 크기가 되도록 하십시오.

cudaMalloc(&d_arr, count * sizeof(int));

cudaFree로 돌려주기

버퍼 사용을 마치면 cudaFree를 사용하여 GPU에 돌려주십시오. 그러면 전역 메모리를 다른 작업에서 사용할 수 있습니다.

cudaFree(d_data);

자물쇠와 열쇠처럼 짝으로 사용하기

cudaMalloc과 cudaFree를 한 쌍으로 생각하십시오. 할당할 때마다 정확히 하나의 대응하는 해제가 있어야 합니다.

메모리는 초기화되지 않습니다

cudaMalloc으로 얻은 새 메모리에는 쓰레기 값이 들어 있습니다. 값을 쓰거나 데이터를 복사하기 전에 읽으면 예측할 수 없는 결과가 나옵니다.

할당은 실패할 수 있습니다

GPU의 메모리가 부족하면 cudaMalloc은 충돌하는 대신 오류를 반환합니다. 실제 코드에서는 항상 반환 코드를 확인하십시오.

전역 메모리는 풍부하지만 느립니다

cudaMalloc으로 얻은 버퍼는 전역 메모리에 있습니다. 수 기가바이트의 공간이지만 칩에서 가장 느린 계층입니다. 넉넉하게 사용하되 접근 패턴에 유의하십시오.

모든 프로그램의 기본 흐름

거의 모든 CUDA 프로그램은 같은 흐름을 따릅니다. cudaMalloc을 호출하고, 데이터를 복사해 넣고, 커널을 실행하고, 결과를 복사해 나온 다음 cudaFree를 호출합니다.

빠른 확인

cudaMalloc이 대상 포인터를 어떻게 받는지 확인해 보겠습니다.

복습

cudaMalloc으로 바이트 단위의 GPU 메모리를 예약하고, cudaFree로 해제하며, 두 함수를 짝으로 사용하는 방법을 배웠습니다. 🎉

자주 묻는 질문

“cudaMalloc과 cudaFree” 강의는 무료인가요?

네 — “cudaMalloc과 cudaFree” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CUDA Academy 강의 전체를 잠금 해제할 수 있습니다. CUDA Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“cudaMalloc과 cudaFree”에서 뭘 배우나요?

전역 메모리를 예약하고 해제합니다. 브라우저에서 직접 실행하는 실습 코드로 CUDA Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

CUDA Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 CUDA Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“cudaMalloc과 cudaFree” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 CUDA Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 CUDA Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. cudaMalloc과 cudaFree
  2. GPU 메모리를 가리키는 포인터
  3. 초기화에 cudaMemset 사용하기
  4. 메모리 누수와 이중 해제 방지하기
← CUDA Academy(으)로 돌아가기