mirror of
https://github.com/NVIDIA/TensorRT-LLM.git
synced 2026-01-14 06:27:45 +08:00
543 lines
30 KiB
HTML
543 lines
30 KiB
HTML
<!DOCTYPE html>
|
|
<html class="writer-html5" lang="en" data-content_root="./">
|
|
<head>
|
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Numerical Precision — tensorrt_llm documentation</title>
|
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" />
|
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
|
|
|
|
|
<!--[if lt IE 9]>
|
|
<script src="_static/js/html5shiv.min.js"></script>
|
|
<![endif]-->
|
|
|
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
|
<script src="_static/doctools.js?v=888ff710"></script>
|
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
<script src="_static/js/theme.js"></script>
|
|
<link rel="index" title="Index" href="genindex.html" />
|
|
<link rel="search" title="Search" href="search.html" />
|
|
<link rel="next" title="TensorRT-LLM Installation" href="installation.html" />
|
|
<link rel="prev" title="Multi-head, Multi-query and Group-query Attention" href="gpt_attention.html" />
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav">
|
|
<div class="wy-grid-for-nav">
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
<div class="wy-side-scroll">
|
|
<div class="wy-side-nav-search" >
|
|
|
|
|
|
|
|
<a href="index.html" class="icon icon-home">
|
|
tensorrt_llm
|
|
</a>
|
|
<div role="search">
|
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
</div>
|
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
|
<ul class="current">
|
|
<li class="toctree-l1"><a class="reference internal" href="architecture.html">TensorRT-LLM Architecture</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="gpt_runtime.html">C++ GPT Runtime</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="batch_manager.html">The Batch Manager in TensorRT-LLM</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="gpt_attention.html">Multi-head, Multi-query and Group-query Attention</a></li>
|
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Numerical Precision</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="#fp32-fp16-and-bf16">FP32, FP16 and BF16</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#quantization-and-dequantization-q-dq">Quantization and Dequantization (Q/DQ)</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#int8-smoothquant-w8a8">INT8 SmoothQuant (W8A8)</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#int4-and-int8-weight-only-w4a16-and-w8a16">INT4 and INT8 Weight-Only (W4A16 and W8A16)</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#gptq-and-awq-w4a16">GPTQ and AWQ (W4A16)</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#fp8-hopper">FP8 (Hopper)</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#support-matrix">Support matrix</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#technical-detail-the-quantmode-flags">Technical Detail: The <code class="docutils literal notranslate"><span class="pre">QuantMode</span></code> Flags</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="installation.html">TensorRT-LLM Installation</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="performance.html">Performance of TensorRT-LLM</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="2023-05-19-how-to-debug.html">How to debug</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="2023-05-17-how-to-add-a-new-model.html">How to add a new model</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="graph-rewriting.html">Graph Rewriting Module</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="memory.html">Memory Usage of TensorRT-LLM</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="new_workflow.html">New Workflow</a></li>
|
|
</ul>
|
|
<p class="caption" role="heading"><span class="caption-text">Python API</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="python-api/tensorrt_llm.layers.html">Layers</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="python-api/tensorrt_llm.functional.html">Functionals</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="python-api/tensorrt_llm.models.html">Models</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="python-api/tensorrt_llm.plugin.html">Plugin</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="python-api/tensorrt_llm.quantization.html">Quantization</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="python-api/tensorrt_llm.runtime.html">Runtime</a></li>
|
|
</ul>
|
|
<p class="caption" role="heading"><span class="caption-text">C++ API</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="_cpp_gen/runtime.html">Runtime</a></li>
|
|
</ul>
|
|
<p class="caption" role="heading"><span class="caption-text">Blogs</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="blogs/H100vsA100.html">H100 has 4.6x A100 Performance in TensorRT-LLM, achieving 10,000 tok/s at 100ms to first token</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="blogs/H200launch.html">H200 achieves nearly 12,000 tokens/sec on Llama2-13B with TensorRT-LLM</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="blogs/Falcon180B-H200.html">Falcon-180B on a single H200 GPU with INT4 AWQ, and 6.7x faster Llama-70B over A100</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="index.html">tensorrt_llm</a>
|
|
</nav>
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="Page navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
<li class="breadcrumb-item active">Numerical Precision</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
<a href="_sources/precision.md.txt" rel="nofollow"> View page source</a>
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
<div itemprop="articleBody">
|
|
|
|
<section id="numerical-precision">
|
|
<h1>Numerical Precision<a class="headerlink" href="#numerical-precision" title="Link to this heading"></a></h1>
|
|
<p>This document describes the different methods implemented in TensorRT-LLM and
|
|
contains a support matrix for the different models.</p>
|
|
<section id="fp32-fp16-and-bf16">
|
|
<h2>FP32, FP16 and BF16<a class="headerlink" href="#fp32-fp16-and-bf16" title="Link to this heading"></a></h2>
|
|
<p>The different models implemented in TensorRT-LLM work with 32-bit IEEE
|
|
floating-point (FP32) numbers. When checkpoints are available, the models also
|
|
support 16-bit IEEE floating-point numbers (FP16) and 16-bit Bfloat16 (BF16) as
|
|
described <a class="reference external" href="https://en.wikipedia.org/wiki/Bfloat16_floating-point_format">here</a>.</p>
|
|
</section>
|
|
<section id="quantization-and-dequantization-q-dq">
|
|
<h2>Quantization and Dequantization (Q/DQ)<a class="headerlink" href="#quantization-and-dequantization-q-dq" title="Link to this heading"></a></h2>
|
|
<p>Given a floating-point number <code class="docutils literal notranslate"><span class="pre">x</span></code> and a floating-point scaling factor <code class="docutils literal notranslate"><span class="pre">s</span></code>,
|
|
TensorRT-LLM implements INT8 quantization as:</p>
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">q</span> <span class="o">=</span> <span class="n">int8</span><span class="o">.</span><span class="n">satfinite</span><span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Given an INT8 number <code class="docutils literal notranslate"><span class="pre">q</span></code> and a floating-point scaling factor <code class="docutils literal notranslate"><span class="pre">s</span></code>, TensorRT-LLM
|
|
implements INT8 dequantization to the floating-point (FP) type as:</p>
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="n">static_cast</span><span class="o"><</span><span class="n">FP</span><span class="o">></span><span class="p">(</span><span class="n">q</span><span class="p">)</span> <span class="o">*</span> <span class="n">s</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Given a matrix (2D tensor) of shape <code class="docutils literal notranslate"><span class="pre">M</span> <span class="pre">x</span> <span class="pre">N</span></code> (<code class="docutils literal notranslate"><span class="pre">M</span></code> rows and <code class="docutils literal notranslate"><span class="pre">N</span></code> columns) where
|
|
<code class="docutils literal notranslate"><span class="pre">M</span></code> is the number of tokens and <code class="docutils literal notranslate"><span class="pre">N</span></code> is the number of channels. TensorRT-LLM has
|
|
the three following modes to quantize and dequantize the elements of the
|
|
tensor:</p>
|
|
<ul class="simple">
|
|
<li><p>Per-tensor: It uses a single scaling factor for all the elements,</p></li>
|
|
<li><p>Per-token: It uses a different scaling factor for each token. There are <code class="docutils literal notranslate"><span class="pre">M</span></code>
|
|
scaling factors in that case,</p></li>
|
|
<li><p>Per-channel: It uses a different scaling factor for each channel. There are
|
|
<code class="docutils literal notranslate"><span class="pre">N</span></code> scaling factors in that case.</p></li>
|
|
</ul>
|
|
<p>Note that per-token and per-channel scaling modes can be used together (i.e.
|
|
they are <em>not</em> mutually exclusive).</p>
|
|
<p>In pseudo-code, the quantization can be implemented as follows for the three
|
|
different modes:</p>
|
|
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Per-tensor scaling.</span>
|
|
<span class="k">for</span> <span class="n">mi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">M</span><span class="p">):</span>
|
|
<span class="k">for</span> <span class="n">ni</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
|
|
<span class="n">q</span><span class="p">[</span><span class="n">mi</span><span class="p">][</span><span class="n">ni</span><span class="p">]</span> <span class="o">=</span> <span class="n">int8</span><span class="o">.</span><span class="n">satfinite</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">mi</span><span class="p">][</span><span class="n">ni</span><span class="p">]</span> <span class="o">*</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Per-token scaling.</span>
|
|
<span class="k">for</span> <span class="n">mi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">M</span><span class="p">):</span>
|
|
<span class="k">for</span> <span class="n">ni</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
|
|
<span class="n">q</span><span class="p">[</span><span class="n">mi</span><span class="p">][</span><span class="n">ni</span><span class="p">]</span> <span class="o">=</span> <span class="n">int8</span><span class="o">.</span><span class="n">satfinite</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">mi</span><span class="p">][</span><span class="n">ni</span><span class="p">]</span> <span class="o">*</span> <span class="n">s</span><span class="p">[</span><span class="n">mi</span><span class="p">])</span>
|
|
|
|
<span class="c1"># Per-channel scaling.</span>
|
|
<span class="k">for</span> <span class="n">mi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">M</span><span class="p">):</span>
|
|
<span class="k">for</span> <span class="n">ni</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
|
|
<span class="n">q</span><span class="p">[</span><span class="n">mi</span><span class="p">][</span><span class="n">ni</span><span class="p">]</span> <span class="o">=</span> <span class="n">int8</span><span class="o">.</span><span class="n">satfinite</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">mi</span><span class="p">][</span><span class="n">ni</span><span class="p">]</span> <span class="o">*</span> <span class="n">s</span><span class="p">[</span><span class="n">ni</span><span class="p">])</span>
|
|
</pre></div>
|
|
</div>
|
|
</section>
|
|
<section id="int8-smoothquant-w8a8">
|
|
<h2>INT8 SmoothQuant (W8A8)<a class="headerlink" href="#int8-smoothquant-w8a8" title="Link to this heading"></a></h2>
|
|
<p>The SmoothQuant technique was introduced in
|
|
<a class="reference external" href="https://arxiv.org/abs/2211.10438">https://arxiv.org/abs/2211.10438</a>. It is a
|
|
method to run inference using INT8 for both activations and weights while
|
|
maintaining the accuracy of the network (on downstream tasks).</p>
|
|
<p>As explained in the research paper, preprocessing must be applied to the
|
|
weights of the model. TensorRT-LLM includes scripts to prepare the model to
|
|
run using the SmoothQuant method.</p>
|
|
<p>Examples of how to enable SmoothQuant for GPT, GPT-J and LLaMA can be found in
|
|
the <a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/quantization">examples/quantization</a> folder of that release.</p>
|
|
</section>
|
|
<section id="int4-and-int8-weight-only-w4a16-and-w8a16">
|
|
<h2>INT4 and INT8 Weight-Only (W4A16 and W8A16)<a class="headerlink" href="#int4-and-int8-weight-only-w4a16-and-w8a16" title="Link to this heading"></a></h2>
|
|
<p>The INT4 and INT8 Weight-Only techniques consist in quantizing the weights of
|
|
a model and dequantizing those weights on-the-fly in linear layers (Matmuls).
|
|
The activations are encoded using floating-point values (FP16 or BF16).</p>
|
|
<p>To use INT4/INT8 Weight-Only methods, the user must determine the scaling
|
|
factors to use to quantize and dequantize the weights of the model.</p>
|
|
<p>This release includes examples for <a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/gpt">GPT</a> and
|
|
<a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/llama">LLaMA</a>.</p>
|
|
</section>
|
|
<section id="gptq-and-awq-w4a16">
|
|
<h2>GPTQ and AWQ (W4A16)<a class="headerlink" href="#gptq-and-awq-w4a16" title="Link to this heading"></a></h2>
|
|
<p>The GPTQ and AWQ techniques are presented in
|
|
<a class="reference external" href="https://arxiv.org/abs/2210.17323">https://arxiv.org/abs/2210.17323</a>
|
|
and
|
|
<a class="reference external" href="https://arxiv.org/abs/2306.00978">https://arxiv.org/abs/2306.00978</a>,
|
|
respectively. TensorRT-LLM supports per-group scaling factors and
|
|
zero-offsetting in linear layers to implement GPTQ and AWQ methods. See the
|
|
<a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/cpp/tensorrt_llm/plugins/weightOnlyGroupwiseQuantMatmulPlugin">WeightOnlyGroupwiseQuantMatmulPlugin</a>
|
|
plugin and the corresponding
|
|
<a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/tensorrt_llm/quantization/functional.py"><code class="docutils literal notranslate"><span class="pre">weight_only_groupwise_quant_matmul</span></code></a>
|
|
Python function, for details.</p>
|
|
<p>This release includes examples of applying GPTQ to <a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/gpt">GPT-NeoX</a>
|
|
and <a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/llama">LLaMA-v2</a>, as well as an example of using AWQ with
|
|
<a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/gptj">GPT-J</a>. Those examples are experimental implementations and
|
|
are likely to evolve in a future release.</p>
|
|
</section>
|
|
<section id="fp8-hopper">
|
|
<h2>FP8 (Hopper)<a class="headerlink" href="#fp8-hopper" title="Link to this heading"></a></h2>
|
|
<p>This release of TensorRT-LLM contains implementations of FP8 for GPT-NeMo,
|
|
GPT-J and LLaMA. Those examples can be found in
|
|
<a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/examples/quantization">examples/quantization</a>.</p>
|
|
</section>
|
|
<section id="support-matrix">
|
|
<h2>Support matrix<a class="headerlink" href="#support-matrix" title="Link to this heading"></a></h2>
|
|
<p>This release of TensorRT-LLM contains the following examples:</p>
|
|
<table class="docutils align-default">
|
|
<thead>
|
|
<tr class="row-odd"><th class="head text-left"><p>Model</p></th>
|
|
<th class="head text-center"><p>FP32</p></th>
|
|
<th class="head text-center"><p>FP16</p></th>
|
|
<th class="head text-center"><p>BF16</p></th>
|
|
<th class="head text-center"><p>FP8</p></th>
|
|
<th class="head text-center"><p>W8A8 SQ</p></th>
|
|
<th class="head text-center"><p>W8A16</p></th>
|
|
<th class="head text-center"><p>W4A16</p></th>
|
|
<th class="head text-center"><p>W4A16 AWQ</p></th>
|
|
<th class="head text-center"><p>W4A16 GPTQ</p></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="row-even"><td class="text-left"><p>Baichuan</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>BERT</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>BLIP-2</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>BLOOM</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>ChatGLM</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>ChatGLM-v2</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>ChatGLM-v3</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>Falcon</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>Flan-T5</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>GPT</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>GPT-J</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>GPT-NeMo</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>GPT-NeoX</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>InternLM</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>LLaMA</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>LLaMA-v2</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>Mistral</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>MPT</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>OPT</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>Replit Code</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>SantaCoder</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-odd"><td class="text-left"><p>StarCoder</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
<tr class="row-even"><td class="text-left"><p>T5</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>Y</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
<td class="text-center"><p>.</p></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<section id="technical-detail-the-quantmode-flags">
|
|
<h2>Technical Detail: The <code class="docutils literal notranslate"><span class="pre">QuantMode</span></code> Flags<a class="headerlink" href="#technical-detail-the-quantmode-flags" title="Link to this heading"></a></h2>
|
|
<p>The quantization method is controlled by the
|
|
<a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/rel/tensorrt_llm/quantization/mode.py"><code class="docutils literal notranslate"><span class="pre">QuantMode</span></code></a> flags. The different fields
|
|
are:</p>
|
|
<ul class="simple">
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">INT4_WEIGHTS</span></code>, the weights are quantized to 4 bits (W4A*),</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">INT8_WEIGHTS</span></code>, the weights are quantized to 8 bits (W8A*),</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">ACTIVATIONS</span></code>, the activations are quantized to 8 bits (W*A8),</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">PER_CHANNEL</span></code>, the scaling factors are defined per channel,</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">PER_TOKEN</span></code>, the scaling factors are defined per token,</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">PER_GROUP</span></code>, the scaling factors are defined per group.</p></li>
|
|
</ul>
|
|
<p>There are three additional flags to control TensorRT-LLM:</p>
|
|
<ul class="simple">
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">INT8_KV_CACHE</span></code>, the K/V cache stores K and V using 8-bit integers,</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">FP8_KV_CACHE</span></code>, the K/V cache stores K and V using 8-bit floating-point numbers,</p></li>
|
|
<li><p><code class="docutils literal notranslate"><span class="pre">FP8_QDQ</span></code>, TensorRT-LLM relies on automatic fusion of Q/DQ nodes in TensorRT.</p></li>
|
|
</ul>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
<a href="gpt_attention.html" class="btn btn-neutral float-left" title="Multi-head, Multi-query and Group-query Attention" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|
<a href="installation.html" class="btn btn-neutral float-right" title="TensorRT-LLM Installation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>© Copyright 2023, NVidia.</p>
|
|
</div>
|
|
|
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
|
|
</footer>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<script>
|
|
jQuery(function () {
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html> |