gpu
-
GB짜리 TTS 모델을 가정용 서버에서 굴리는 법 — on-demand 데몬과 idle watchdogIT 2026. 5. 12. 21:00
아들 음성 챗봇은 답을 음성으로 들려줘야 합니다. 그래서 한국어 TTS(Text-to-Speech) 엔진이 필요한데, 처음 골라본 후보 중 가장 자연스러웠던 것이 Coqui의 XTTSv2였습니다. 다국어를 한 모델로 다루고 한국어도 꽤 자연스럽고 무엇보다 무료입니다.그런데 모델 크기가 1.8GB쯤 됩니다. GPU에 올리면 메모리 2GB 정도를 점유합니다. 가정용 서버 하나에서 STT(Whisper)·LLM(Qwen3.6)·VLM·임베딩 같은 다른 작업까지 돌리는 환경에선 이 메모리가 만만치 않습니다. 한 번 로드해두고 24시간 띄워두기엔 비용이 크고, 매번 처음부터 로드하기엔 첫 응답이 너무 늦습니다(콜드 스타트 5~7초).그래서 on-demand 데몬 패턴을 골랐습니다. 첫 요청에 깨어나고, 한 시간 ..
-
Fused 커널은 왜 3~4배 빠른가 — GPU 메모리 계층과 Marlin의 비밀IT 2026. 5. 5. 23:40
들어가며 — "단계를 합쳤더니 왜 빨라지는가"직전 글에서 Q4 양자화는 곱셈 직전에 dequantize를 거쳐야 한다고 했다. 그리고 그 변환 비용을 거의 0으로 만드는 도구가 Marlin 같은 fused 커널이라고 짧게 언급하고 넘어갔다.그런데 잘 생각해 보면 이상한 구석이 있다. 똑같이 dequantize 하고, 똑같이 행렬곱을 하는데, 두 단계를 그냥 한 함수에 합쳤다고 어떻게 3~4배가 빨라지는가? 합쳐도 일의 양은 똑같지 않은가?답은 GPU 메모리 계층에 있다. 단순 분리 구현은 중간 결과를 한 번 메모리에 썼다가 다시 읽는다. 그 왕복이 실제 연산보다 훨씬 비싸다. Fused 커널은 그 왕복을 없앤다 — 중간 결과를 GPU 레지스터 안에서 곧장 다음 단계로 흘려보낸다.이 글은 그 메커니즘을 G..
-
Q4 양자화는 GPU 안에서 어떻게 동작하나 — Blackwell FP8 텐서코어와의 만남IT 2026. 5. 5. 23:30
들어가며 — "Q4는 그럼 어떻게 곱셈을 하지?"직전 글에서 Blackwell이 FP8을 텐서코어로 네이티브 처리한다고 했다. 메모리에서 곧장 곱셈으로, 변환 단계 없이.그렇다면 자연스럽게 떠오르는 의문이 있다. Q4 양자화로 4비트까지 줄이면 어떻게 되는가? 메모리는 분명히 4분의 1로 줄어든다. 그런데 텐서코어가 받아주는 형식은 FP16, BF16, FP8, FP4까지인데, Q4는 거기 안 끼어 있다. 그럼 곱셈은 어떻게 되는가?답을 먼저 말하면, Q4는 메모리에는 4비트로 압축돼 있지만 GPU 안에서 곱셈 직전에 FP16(또는 FP8)으로 풀어준 뒤 텐서코어에 태운다. 압축 zip 파일을 디스크에 두고, 처리할 때만 풀어 읽는 것과 똑같다. 이 글은 그 흐름을 비유와 다이어그램으로 풀어쓴다.1. Q..
-
FP8이 왜 FP16보다 45% 빠를까 — Blackwell GPU의 '텐서코어 네이티브 처리' 이해하기IT 2026. 5. 5. 23:00
들어가며 — "FP8이 빠르다"는 말의 진짜 의미로컬 LLM을 직접 돌려본 사람이라면 한 번쯤 이런 문장을 봤을 것이다."같은 모델을 FP8 체크포인트로 돌리면 디코드 속도가 +45% 빨라진다. Blackwell GPU는 FP8을 텐서코어가 네이티브로 처리하기 때문이다."여기에 모르는 단어가 세 개나 들어 있다. FP8이 뭔지, 텐서코어가 뭔지, "네이티브로 처리한다"가 무슨 뜻인지. 그리고 이 셋이 어떻게 합쳐져서 정확히 45%라는 숫자를 만들어내는지.이 글은 그 세 개념을 차근차근 풀어, 마지막에 "그래서 왜 빨라지는가"를 한눈에 보이게 만드는 게 목표다. 비유 위주로 가되, 마지막엔 실제 수치까지 맞춘다.1. FP16, FP8이 도대체 뭔가 — '숫자를 표현하는 정밀도'컴퓨터가 실수(소수점이 있는 ..
-
TFLOPS가 뭔데? — FLOPS의 정의부터 요즘 GPU의 실제 수치까지IT 2026. 5. 5. 22:00
왜 이 글을 쓰게 됐나이전에 텐서코어를 다룬 글에서 NVIDIA H100의 처리량을 표로 보여주면서 "989 TFLOPS", "1,979 TFLOPS", "3,958 TFLOPS" 같은 숫자를 자연스럽게 적었다. 그런데 막상 "TFLOPS가 정확히 뭐냐"고 물어보면 의외로 답하기 까다롭다. T는 테라(10¹²)니까 1조 단위라는 건 알겠는데, FLOPS는? 이걸 어떻게 측정하지? 왜 이 단위로 GPU를 비교할까?이 글에서는 — TFLOPS의 정의, 역사, 등장 목적, 효과, 그리고 2026년 기준 우리가 사는 GPU들이 실제로 몇 TFLOPS인지를 정리한다.1. FLOPS의 정의 — "1초에 부동소수점 연산을 몇 번 하는가"FLOPS는 FLoating-point OPerations per Second의 ..
-
텐서코어, 한 명령에 행렬 곱을 끝낸다는 게 무슨 뜻인가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는 코어가 수십 개라서 복잡한..
-
로컬 VLM으로 가족사진 3만 장 분석하기 — 열흘간의 대장정IT 2026. 4. 3. 21:00
왜 3만 장의 사진에 AI를 붙이려 했나가족사진은 쌓이기만 한다. 폰에서 NAS로, NAS에서 사진 관리 서버로 옮겨도 결국 "찾을 수 없는 사진"이 되어간다. "작년 여름 바다에서 찍은 사진" 같은 자연어 검색을 하려면 사진마다 설명과 태그가 있어야 하는데, 3만 장을 사람이 수동으로 분류하는 것은 불가능에 가깝다.해결책은 VLM(Vision Language Model)이었다. 이미지를 보고 자연어로 설명을 생성하는 AI 모델을 로컬 GPU에서 돌려, 사진마다 한국어 설명·인물 수·장소 유형·장면 분류·키워드 태그를 자동으로 붙이기로 했다.시스템 구성구성요소역할Immich사진 관리 서버 (API로 에셋 목록 조회, 썸네일 다운로드, 태그 부착)Ollama로컬 LLM 서빙 엔진 (VLM 모델 호스팅)Qw..