CUDA 4

CUDA 2D 블록 내 스레드 인덱싱(Thread Indexing) - 공부하는 도비

CUDA의 내장 변수를 사용해 스레드가 특정 데이터에 정확히 접근하도록 하는 인덱스 계산 방법을 스레드 인덱싱(thread indexing)이라고 한다. 오늘은 2D 블록 내 스레드 인덱싱에 대해 정리를 하고자 합니다.  * Global Thread ID(전역 번호) : CUDA에서 각 스레드를 전역적으로 고유하게 식별할 수 있도록 정의된 ID를 의미함 Global Thread ID는 스레드 ID(threadIdx), 블록 ID(blockIdx), 블록의 크기(blockDim)를 사용해 계산합니다. 2차원 블록(2D block)은 다음 그림으로 간단하게 정의할 수 있습니다.  thread(x, y)의 전역 번호는 아래 두 항목의 합입니다. - 자신이 속한 1차원 하위 블록 앞까지의 스레드 갯수 = blo..

CUDA 2025.01.21

CUDA 큰 벡터의 합 - 공부하는 도비

2025.01.21 - [CUDA] - CUDA 스레드 레이아웃 설정 및 커널 호출>> - 공부하는 도비>> - 공부하는 도비" data-og-description="CUDA 프로그래밍에서 스레드 레이아웃 설정과 커널 호출은 GPU 병렬 처리를 효과적으로 활용하기 위한 핵심 개념입니다. 1. 스레드 레이아웃 설정 GPU 병렬 처리를 위해 CUDA는 스레드(Thread)를 그리" data-og-host="yang-wistory1009.tistory.com" data-og-source-url="https://yang-wistory1009.tistory.com/221" data-og-url="https://yang-wistory1009.tistory.com/221" data-og-image="https://s..

CUDA 2025.01.21

CUDA Pitch, cudaMallocPitch() - 공부하는 도비

2025.01.09 - [CUDA] - CUDA 디바이스 메모리 할당, 초기화 및 해제 - 공부하는 도비 Device 또는 Host  아래는 Host 상에 있는 데" data-og-host="yang-wistory1009.tistory.com" data-og-source-url="https://yang-wistory1009.tistory.com/219" data-og-url="https://yang-wistory1009.tistory.com/219" data-og-image="https://scrap.kakaocdn.net/dn/fmLmv/hyXWxGb3c3/13OnjC2BOpzqFobh22Ucg1/img.png?width=328&height=179&face=0_0_328_179,https://scrap..

CUDA 2025.01.09

CUDA 디바이스 메모리 할당, 초기화 및 해제 - 공부하는 도비

GPU를 사용하여 연산을 하기 위해서는 CPU 메모리에 있는 데이터를 GPU 메모리 상으로 가져와야 한다. CUDA에서 CPU를 Host, GPU를 Device라고 부른다. 즉, Host -> Device 또는 Host  아래는 Host 상에 있는 데이터를 어떻게 Device 상으로 가져오는 지, 그리고 어떻게 초기화 하며 해제 하는 지를 보여주는 예제다. #include "cuda_runtime.h"#include "device_launch_parameters.h"#include // cudaMemcpy : 호스트와 디바이스 간 데이터 전송을 위한 함수// cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, cudaMemcpyKind ki..

CUDA 2025.01.09