Tech 14

SGLang: 구조화된 LLM 프로그램의 효율적 실행 기술 분석

https://arxiv.org/pdf/2312.07104 전체 아키텍처 구성 및 구성 요소 역할SGLang 시스템은 구조화된 생성 언어(Structured Generation Language)인 프론트엔드와 SGLang 런타임(SRT)인 백엔드 런타임으로 구성됩니다. 프론트엔드는 Python에 내장된 DSL로서, 개발자가 다수의 LLM 호출과 제어 흐름을 포함하는 구조화된 프롬프트 프로그램을 용이하게 작성할 수 있도록 지원합니다. 백엔드 런타임은 이러한 프로그램을 효율적으로 실행하는 엔진으로서, RadixAttention 및 압축 FSM 등의 최적화를 통해 성능을 향상시킵니다. 백엔드 SRT는 서버 프로세스로 작동하며 여러 구성 요소로 이루어져 있습니다. 주요 구성 요소와 그 역할은 다음과 같습니다.F..

Tech 2025.04.09

Sarathi-Serve 상세 기술 분석

전체 아키텍처 개요 및 모듈 구조Sarathi-Serve는 대규모 언어 모델(LLM)의 온라인 추론을 위한 고성능 서빙 엔진으로서, 낮은 지연 시간과 높은 처리량을 동시에 확보하기 위해 특화된 구조로 설계되었습니다. 전체 시스템은 엔진 프로세스와 워커 프로세스로 구분되어 운영되며, 주요 구성 요소로는 스케줄러, 시퀀스 관리자, 블록 메모리 관리자, 모델 실행기, 요청 처리기(API 서버) 등이 있습니다. 각 구성 요소의 역할은 다음과 같습니다.• 엔진: 중앙 제어 모듈로서, 새로운 요청을 접수하고 스케줄러를 통해 요청들의 배치 및 실행 방법을 결정합니다. 엔진은 워커들과의 통신을 담당하며, 결과를 취합하여 응답을 반환합니다.• 스케줄러: 실행 대기 중인 모든 시퀀스들을 관리하며, 각 반복 단계에서 특정 ..

Tech 2025.04.05

vLLM의 PagedAttention 방식이 L1/L2 캐시 히트율 저하시키는 이유

PagedAttention은 수요 페이징(Demand Paging) 방식의 KV 캐시로, KV 캐시를 여러 개의 작은 메모리 블록(페이지)으로 나누어 불연속적인 주소 공간에 배치하고, 필요할 때 요청 단위나 토큰 단위로 동적으로 할당 및 관리하는 방식입니다. 이 구조는 특히 vLLM과 같은 최신 LLM 추론 엔진에서 메모리 사용 효율을 크게 높일 수 있습니다. 그러나 이러한 이점과는 반대로 L1·L2 캐시의 활용률(hit ratio)을 떨어뜨려 성능 저하를 유발하기도 합니다. 여기서는 NVIDIA H100 GPU를 기준으로, PagedAttention 방식이 L1/L2 캐시 히트율을 저하시키는 원인을 자세히 살펴보겠습니다. 먼저 NVIDIA H100 GPU의 캐시 아키텍처를 간략히 살펴보면, H100 G..

Tech 2025.03.16

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

[AI 상식] LLM은 어떻게 동작할까 - MLP

MLP는 "Multi-Layer Perceptron(다층 퍼셉트론)"의 약자입니다. 쉽게 말해 여러 개의 층(Layer)으로 구성된 신경망의 일종입니다. 하나의 층이 입력을 받아 계산한 결과를 다음 층으로 넘겨주는 형태로 작동하며, 마치 여러 명이 릴레이 경주를 하듯 서로 연결되어 최종 결과를 만들어 냅니다. 위 그림에서 보면 MLP가.. 없죠? 😄 이전 글에서 attention까지 했으니까... 그다음 블록에 MLP가 있어야 할 것 같은데 Feed Forward가 있네요. 흔히 MLP를 "Feed-forward Network(전방향 신경망)"라고 부르기도 합니다. 그 이유는 데이터가 항상 한 방향으로만 흐르기 때문입니다. 즉, 입력층에서 시작하여 은닉층을 거쳐 출력층까지 앞으로만 흐르고 다시 이전 층..

Tech 2025.03.03

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

[AI 상식] LLM은 어떻게 동작할까 - Attention

이전 글에서 Input embedding과 Positional Encoding에 대해서 개념을 간략하게 알아봤습니다. 이 그림은 transformer architecture (Attention is all you need)인데, 아직은 자세히 살펴보지 않습니다. 다만 LLM model 들의 base가 되는 모델로써, 각 부분들이 개념적으로 어떻게 동작하는지를 보기 위해서 예시로 보여드리는 것입니다.  이제 positional encoding을 거친 input은 multi-head attention이라고 쓰여져 있는 sub-layer로 들어가게 됩니다. 이번 글에서는 이 attention이라는 것이 무엇인지 알아보겠습니다.  Google에서 2017년 발표한 "Attention is all you need..

Tech 2025.02.08

[AI상식] LLM은 어떻게 동작할까 - Positional Encoding

LLM 동작에 대해서 지난 글에서는 간략한 개요와, Embedding에 대해서 알아봤습니다. 실제 Embedding의 동작에 대해서 깊게 알아보려면 많은 이해가 필요합니다만, 개념적인 이해를 위해서 최대한 간단하고 쉽게 작성하려고 해 봤습니다. 아. 우리가 말하는 AI라는 것이 LLM이라는 것을 쓰는데, 이렇게 동작하는구나? 정도의 이해를 할 수 있을 정도로요. 😀 지난 글은 아래를 참고해주세요. https://unnamed-underdogs.tistory.com/28 LLM은 어떻게 동작할까 - Embedding우리가 흔히 말하는 GPT나 Deepseek과 같은 "AI"들은 쉽게 말해서 LLM (Large Language Model)이라는 "모델"을 GPU에서 구동하는 것입니다.  이 LLM이라는 것..

Tech 2025.02.02

[AI상식] LLM은 어떻게 동작할까 - Embedding

앞으로 살펴볼 글들에서는, 많은 수학적 지식 필요 없이도 우리 주변에 성큼 다가온 AI(LLM)이라는 것이 무엇인지, 개념적인 이해를 할 수 있도록 천천히 다뤄볼 예정입니다. 비전공자나, 이제 막 LLM 관련 업무를 시작하는 전공자 모두에게 약간이나마 이해를 도울 수 있으면 좋겠네요. 😀 우리가 흔히 말하는 GPT나 Deepseek과 같은 "AI"들은 쉽게 말해서 LLM (Large Language Model)이라는 "모델"을 GPU에서 구동하는 것입니다.  이 LLM이라는 것은 "생성형 AI"의 한 종류로, 인간의 언어(자연어)를 배워서 다양한 입력으로부터 "응답"을 생성해 내는 것이죠. "안녕하세요, 오늘 어때요?"라는 문장을 입력받으면, 이 문장을 "기억"하고, 이다음에 올 단어가 어떤 것이 될지..

Tech 2025.02.01

Deepseek v3 code review - model

자체 개발 중인 inference engine에 MoE 기능을 넣기 위해, Deepseek v3와 Llama MoE를 분석해보고자 합니다.여기에서는 먼저 요즘 핫한 Deepseek을 먼저 살펴 봅니다.  github repo: https://github.com/deepseek-ai/DeepSeek-V3/tree/main/inference 글이 길어져서 결론을 먼저 위에 씁니다.  결론Llama model과 비교를 해봤을 때, Deepseek의 구조는 동일한 transformer architecture 기반으로 전체적인 골격은 유사합니다. 가장 큰 차이는 당연하게 MoE 부분인 FFN의 설계입니다. Llama는 dense MLP 구조를 사용하므로, 모든 토큰이 동일한 MLP path를 거치게 되고요. De..

Tech 2025.01.30