[CUDA & Modern C++로 GPU 프로그래밍 시작하기] #4: 스레드, 블록, 그리드 개념 정복하기
지난 글에서는 Host-Device 메모리 전송, cudaMalloc, cudaMemcpy 등을 활용하여 벡터 덧셈 예제를 성공적으로 구동해봤습니다. 이제 GPU 병렬 프로그래밍의 핵심인 스레드, 블록, 그리고 그리드 개념을 파고들 차례입니다. 이 개념들은 GPU 상에서 대규모 병렬 연산을 구성하는 뼈대와 같습니다. 오늘은 스레드와 블록, 그리고 이들을 묶어 전체 문제를 분할하는 방식인 그리드(Grid)에 대해 차근차근 살펴보며, "내가 원하는 만큼 병렬화"하는 방법을 이해해보겠습니다.스레드(Thread)란?스레드는 GPU 병렬 연산의 최소 실행 단위입니다. CPU에서도 멀티스레딩을 통해 병렬 처리를 하지만, GPU에서는 수백만 개의 스레드를 가볍게 실행할 수 있습니다. 각각의 스레드는 독립적으로 실행되..