728x90

nVidia 3

PyTorch CUDA 메모리 관리

PyTorch CUDA 메모리 관리 이해하기딥러닝 모델을 GPU로 학습하다 보면 “CUDA out of memory” 오류를 접하는 일이 많습니다. 한정된 GPU 메모리를 효율적으로 사용하지 못하면 학습 중간에 메모리가 부족해지기 때문입니다. 이번 글에서는 PyTorch의 CUDA 메모리 관리 개념을 살펴보겠습니다. CUDA 메모리의 기본 개념부터 PyTorch의 메모리 관리 전략, 멀티 GPU 환경에서의 메모리 관리, 그리고 메모리 최적화 기법과 디버깅 방법 등을 알아봅니다. 1. CUDA 메모리 개요CUDA (에서 사용하는) 메모리란 NVIDIA GPU에서 사용하는 전용 메모리(VRAM)를 말합니다. CPU 메모리와 분리되어 있으므로, GPU에서 연산하려면 데이터를 명시적으로 GPU 메모리로 복사해..

Tech 2025.03.08

Jensen Huang의 비전과 철학으로 본 NVIDIA의 현재와 미래 전략

NVIDIA의 여정과 GPU 산업에서의 역할 NVDIA는 1993년 창업한 이후 GPU 분야를 계속해서 개척하면서 성장해 왔습니다. 원래 GPU는 게임 그래픽을 위한 병렬처리 칩이었으나, GPU의 병렬 연산 능력을 게임 외 다양한 분야에서 쓰려고 시도 했던 사람들을 통해 젠슨 황은 GPU의 병렬 연산이 게임 외 다양한 분야에도 쓰일 수 있다고 깨닫게 됩니다. 이후 2006년 NVIDIA는 CUDA라는 플랫폼을 내놓아, 과학자와 개발자들이 CUDA를 범용 연산에 활용할 수 있게 했는데 아이러니 하게도 당시에는 시장의 큰 관심을 끌지 못했습니다.  이 때 CUDA에 대한 투자가 없었다면 지금 NVIDIA가 지금처럼 큰 결실을 맺을 수 있었을까요? 2012년 딥러닝 혁명이 일어나고, 대량의 연산을 빠르게 처리..

Think 2025.03.01

GEMM (General Matrix to Matrix Multiplication)과 GPU 아키텍처의 이해

1. GEMM이란?GEMM(General Matrix to Matrix Multiplication)은 일반적인 행렬 곱셈을 의미합니다.특히 딥 러닝 연산에서 핵심적인 연산으로, 아래처럼 표현됩니다.  여기에서 A, B는 곱셈의 대상이 되는 행렬이며, C는 결과 행렬, ɑ, β는 스칼라 값입니다.  즉 A X B  행렬 곱 결과에 스칼라를 곱하고, 기존 C 행렬에 스칼라를 곱한 값을 더하는 연산입니다. 신경망의 대부분 레이어는 사실상 큰 규모의 행렬 곱 연산을 수행합니다. GEMM 최적화는 곧 딥러닝 성능 향상과 직결되는 것이죠. 그래서 딥러닝 프레임워크 (PyTorch, Tensor Flow)와 GPU (CUDA, cuBLAS)는 GEMM 연산을 최대한 빠르게 실행하려고 최적화를 계속해 나가는 것이고요...

Tech 2025.03.01
728x90