<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Quantization - 태그 - lee's blog</title><link>https://ken-0913.github.io/myblog/tags/quantization/</link><description>Quantization - 태그 - lee's blog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><managingEditor>hyeonjae0913@gmail.com (ken-0913)</managingEditor><webMaster>hyeonjae0913@gmail.com (ken-0913)</webMaster><lastBuildDate>Fri, 28 Aug 2026 20:00:00 +0900</lastBuildDate><atom:link href="https://ken-0913.github.io/myblog/tags/quantization/" rel="self" type="application/rss+xml"/><item><title>LLM 스터디 5주차 - LLM 서빙 최적화 실전 — Qwen3-14B 벤치마크로 처리량 2.7배 끌어올리기</title><link>https://ken-0913.github.io/myblog/posts/llm/llm-optimization-in-practice/</link><pubDate>Fri, 28 Aug 2026 20:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>https://ken-0913.github.io/myblog/posts/llm/llm-optimization-in-practice/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/llm-optimization-in-practice-05d84900.png" referrerpolicy="no-referrer">
            </div><h1 id="qwen3-14b-vllm-서빙-최적화-정리" class="headerLink">
    <a href="#qwen3-14b-vllm-%ec%84%9c%eb%b9%99-%ec%b5%9c%ec%a0%81%ed%99%94-%ec%a0%95%eb%a6%ac" class="header-mark"></a>Qwen3-14B vLLM 서빙 최적화 정리</h1><h2 id="목표" class="headerLink">
    <a href="#%eb%aa%a9%ed%91%9c" class="header-mark"></a><strong>목표</strong></h2><ul>
<li>단일 GPU에서 Qwen3-14B를 vLLM으로 서빙할 때 처리량(throughput)과 지연시간(latency)을 체계적으로 측정하고 개선하는 7단계를 알아본다.</li>
</ul>
<h2 id="1단계--gpu-하드웨어-점검" class="headerLink">
    <a href="#1%eb%8b%a8%ea%b3%84--gpu-%ed%95%98%eb%93%9c%ec%9b%a8%ec%96%b4-%ec%a0%90%ea%b2%80" class="header-mark"></a>1단계 : GPU 하드웨어 점검</h2><p>먼저 <code>nvidia-smi</code>로 사전 점검을 진행한다.</p>
<ul>
<li>CUDA/드라이버 호환성</li>
<li>성능 상태(P8=유휴, P0/P1=고성능)</li>
<li>메모리 여유분(46GB 중 사용량)</li>
</ul>
<p>사용률이 낮은데 부하가 걸려 있으면 배칭 문제를, 전력은 높은데 처리량이 낮으면 메모리 병목을 의심한다. 이 기준으로 이후 벤치마크 결과의 원인을 구분한다.</p>
<br>
<p>아래와 같이 플래그를 사용하여 관심있는 항목만 출력해본다.</p>
<div class="term-code">
    <div class="term-code__bar">
        <span class="term-code__dot term-code__dot--red"></span>
        <span class="term-code__dot term-code__dot--yellow"></span>
        <span class="term-code__dot term-code__dot--green"></span>
        <span class="term-code__title">bash</span>
    </div>
    <div class="term-code__body"><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>root@da1d46d42395:/# nvidia-smi --query-gpu<span style="color:#f92672">=</span>name,compute_cap,memory.free,memory.used,memory.total --format<span style="color:#f92672">=</span>csv
</span></span><span style="display:flex;"><span>name, compute_cap, memory.free <span style="color:#f92672">[</span>MiB<span style="color:#f92672">]</span>, memory.used <span style="color:#f92672">[</span>MiB<span style="color:#f92672">]</span>, memory.total <span style="color:#f92672">[</span>MiB<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>NVIDIA A40, 8.6, <span style="color:#ae81ff">45489</span> MiB, <span style="color:#ae81ff">0</span> MiB, <span style="color:#ae81ff">46068</span> MiB</span></span></code></pre></div></div>
</div>
<p><img class="tw:inline" loading="lazy" src='/myblog/posts/llm/llm-optimization-in-practice/orca-paste-1788532182924-f782b1ec-1f23-48d2-beda-a8bb2ff8ce13.png'    height="120" width="2190"></p>]]></description></item><item><title>LLM 스터디 3주차 - LLM 서빙 최적화 기법 — 배칭·어텐션·양자화·prefix 캐싱</title><link>https://ken-0913.github.io/myblog/posts/llm/llm-essential-llm-optimization-techniques/</link><pubDate>Fri, 21 Aug 2026 21:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>https://ken-0913.github.io/myblog/posts/llm/llm-essential-llm-optimization-techniques/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/llm-essential-llm-optimization-techniques-d756afc2.png" referrerpolicy="no-referrer">
            </div><p><a href="../llm-challenges-when-serving-llm/" rel="">앞 글</a>에서 병목이 어디에 있는지를 봤다. 이번에는  <strong>병목을 실제로 풀어보자.</strong> </p>
<h2 id="1-요청-배칭과-스케줄링" class="headerLink">
    <a href="#1-%ec%9a%94%ec%b2%ad-%eb%b0%b0%ec%b9%ad%ea%b3%bc-%ec%8a%a4%ec%bc%80%ec%a4%84%eb%a7%81" class="header-mark"></a>1. 요청 배칭과 스케줄링</h2><h3 id="왜-배칭이-필요한가" class="headerLink">
    <a href="#%ec%99%9c-%eb%b0%b0%ec%b9%ad%ec%9d%b4-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80" class="header-mark"></a>왜 배칭이 필요한가</h3><p>prefill은 프롬프트 토큰을 한꺼번에 처리해 연산 강도가 높다. (앞서 말했듯이 연산강도가 높다는 것은 같은 가중치를 한 번 읽고 그것으로 훨씬 많은 토큰을 처리한다)</p>
<p><strong>문제는 decode다.</strong> 토큰 하나를 만들려고 수십억 개 파라미터를 전부 읽어야 하니 대역폭만 축내고 연산 유닛은 유휴상태이다. </p>
<p>여기서 배칭이 들어간다. 요청 세 개를 묶으면 <strong>가중치는 여전히 한 번만 읽으면서 토큰은 세 개를 만든다.</strong> 연산 강도를 인위적으로 끌어올린다.</p>]]></description></item></channel></rss>