2025/01 6

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 스레드 레이아웃 설정 및 커널 호출<<<>>> - 공부하는 도비

CUDA 프로그래밍에서 스레드 레이아웃 설정과 커널 호출은 GPU 병렬 처리를 효과적으로 활용하기 위한 핵심 개념입니다. 1. 스레드 레이아웃 설정 GPU 병렬 처리를 위해 CUDA는 스레드(Thread)를 그리드(Grid)와 블록(Block)으로 구성합니다. 각각의 스레드는 고유한 ID를 가져 작업을 병렬로 수행합니다.  (1) 스레드 구성 요소- 그리드(Grid) : 여러 블록으로 구성된 구조- 블록(Block) : 여러 스레드로 구성된 구조- 스레드(Thread) : 실제로 작업을 수행하는 단위 스레드들이 자신이 처리할 데이터가 무엇인지 알기 위해서는 자신이 어떤 블록에 속해 있는지, 또 블록 내 자신의 스레드 번호를 알아야 합니다. 이를 위해서 CUDA는 현재 그리드 및 블록의 형태와 각 스레드가..

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

생성형 AI의 등장, 블로그와 T-Story의 퇴장 - 공부하는 도비

과거 몇 년 전, 여기서 말하는 과거는 10년, 20년 전도 아닌불과 1~2년 전을 말한다.  과거에는 모르는 문제가 있거나 컴퓨터 오류가 나면, 구글에 검색한 후 각종 블로그를 뒤지면서 해답을 찾았었다.영어로도 검색하고, 모든 페이지를 뒤졌다.  하지만, 최근엔 T-Story를 운영하고 있는 나 조차, 검색 창을 잘 이용하지 않고 있다.오히려 GPT 한테 달려간 후, 질문하기 바쁘다.  이게 참.. 스스로도 생각을 깊게 하는 순간이 점점 줄어들고 있다는 생각이 든다. 어떤 특정 문제를 해결하기 위해서 또는 이 문제가 왜 발생했을 까에 대한 고민을 깊게 하지 않고 있다.  학교에서 학생들을 가르칠 때도, 오류가 나고 내가 모르는 문제라면학생들에게 "GPT 한테 한번 물어볼까?"라는 말을 종종 하곤 하는데..

카테고리 없음 2025.01.08