cuda
-
Fused 커널은 왜 3~4배 빠른가 — GPU 메모리 계층과 Marlin의 비밀IT 2026. 5. 5. 23:40
들어가며 — "단계를 합쳤더니 왜 빨라지는가"직전 글에서 Q4 양자화는 곱셈 직전에 dequantize를 거쳐야 한다고 했다. 그리고 그 변환 비용을 거의 0으로 만드는 도구가 Marlin 같은 fused 커널이라고 짧게 언급하고 넘어갔다.그런데 잘 생각해 보면 이상한 구석이 있다. 똑같이 dequantize 하고, 똑같이 행렬곱을 하는데, 두 단계를 그냥 한 함수에 합쳤다고 어떻게 3~4배가 빨라지는가? 합쳐도 일의 양은 똑같지 않은가?답은 GPU 메모리 계층에 있다. 단순 분리 구현은 중간 결과를 한 번 메모리에 썼다가 다시 읽는다. 그 왕복이 실제 연산보다 훨씬 비싸다. Fused 커널은 그 왕복을 없앤다 — 중간 결과를 GPU 레지스터 안에서 곧장 다음 단계로 흘려보낸다.이 글은 그 메커니즘을 G..
-
텐서코어, 한 명령에 행렬 곱을 끝낸다는 게 무슨 뜻인가IT 2026. 5. 5. 21:00
왜 이 글을 쓰게 됐나이전에 GPU에서 LLM까지 추론 스택을 해부하는 글을 쓰면서, 가장 아래 레이어인 GPU 하드웨어를 "텐서코어가 들어 있는 칩"이라고만 짧게 언급하고 지나갔다. 그런데 이 텐서코어라는 게 사실 그 위의 모든 레이어 — CUDA, PyTorch, FlashAttention, vLLM, Quantization — 가 결국 효율적으로 활용하려고 매달리는 단 하나의 물리 장치다."한 명령에 행렬 곱을 묶어서 처리하는 전용 회로"라는 한 줄 설명을 들었을 때, 멋있긴 한데 정확히 무슨 의미인지 머릿속에 그려지지 않았다. 명령 하나로 행렬 곱을 어떻게 한 번에? 그게 왜 그렇게 대단한 거지? 이 글은 그 질문들을 풀어가는 글이다.1. 먼저, 텐서가 뭔가"텐서"라는 단어가 어렵게 느껴지는 이유..
-
GPU에서 LLM까지, 추론 스택 완전 해부IT 2026. 4. 13. 21:00
왜 이 글을 쓰게 됐나로컬 환경에서 LLM을 직접 돌려보면서 vLLM, FlashAttention, NGC 같은 이름을 처음 접했다. PyTorch로 모델 돌리면 되는 거 아니야? 했는데, 알고 보니 GPU 하드웨어와 LLM 사이에는 각자 다른 병목을 해결하는 소프트웨어 레이어가 겹겹이 쌓여 있었다.이 글에서는 전체 스택을 관통하는 하나의 질문 — "이 레이어는 무슨 문제를 풀기 위해 등장했는가?" — 을 축으로 정리한다. 각 레이어에서 가장 핵심적인 기술 딱 하나만 골라서 집중적으로 설명한다.전체 레이어 다이어그램L1. GPU 하드웨어 — 왜 CPU가 아니라 GPU인가LLM 추론의 핵심 연산은 거대한 행렬 곱셈이다. "A 행렬 × B 행렬"을 수십억 번 반복하는 것. CPU는 코어가 수십 개라서 복잡한..
-
pyannote 화자 분리가 GPU에서 안 돌아갈 때 — Blackwell nvrtc 패치 1줄의 힘IT 2026. 3. 19. 23:00
33분짜리 학부모 총회 녹음을 AI로 전사했다. 텍스트는 나왔는데, 누가 말한 건지 구분이 안 된다. 교장, 교감, 교무부장, 담임 — 최소 4명이 번갈아 말했는데 전부 "Speaker 1"로 찍힌다. pyannote-audio라는 화자 분리(speaker diarization) 모델을 돌리면 해결된다. 문제는 GPU에서 돌리면 에러가 나고, CPU로 돌리면 40분이 걸린다는 것이었다. 이 글에서는 원인을 추적해서 코드 2줄을 고쳐 GPU 화자 분리를 되살린 과정을 정리한다. ---증상: GPU에서만 터지는 에러NVIDIA DGX Spark는 GB10이라는 Blackwell 아키텍처 GPU를 탑재하고 있다. CUDA compute capability(GPU 세대를 나타내는 숫자)가 12.1인데, 이게 너..
-
DGX Spark에서 ONNX Runtime GPU 빌드 성공기 — 8번의 실패와 1번의 성공IT 2026. 3. 16. 21:00
들어가며22,500장의 가족 사진을 AI로 분석하고 싶었다. CLIP으로 자연어 검색을, InsightFace로 얼굴 인식을 돌리면 된다. 문제는 GPU 없이 CPU로 돌리면 며칠이 걸린다는 것이었다.NVIDIA DGX Spark라면 128GB 통합 메모리에 Blackwell 아키텍처 GB10 GPU까지 있으니 충분히 빠르게 돌릴 수 있을 것 같았다. 하지만 GPU를 쓰기까지 8번의 실패를 거쳐야 했다. 이것은 그 기록이다.환경항목값서버NVIDIA DGX SparkCPUNVIDIA Grace (ARM64 / aarch64)GPUNVIDIA GB10 (Blackwell, SM 121, compute 12.1)메모리128GB LPDDR5x (CPU/GPU 통합)CUDA13.0.88Driver580.126.0..