TensorRT-LLMs/quick-start-guide.html
nv-guomingz 10588d0bfe
Update gh-pages for pic hyperlinks. (#1973)
Co-authored-by: Guoming Zhang <37257613+nv-guomingz@users.noreply.github.com>
2024-07-17 22:57:46 +08:00

336 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>Quick Start Guide &mdash; 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=9a2dae69"></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="Release Notes" href="release-notes.html" />
<link rel="prev" title="Overview" href="overview.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">Getting Started</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="overview.html">Overview</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Quick Start Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="#launch-the-docker">Launch the Docker</a></li>
<li class="toctree-l2"><a class="reference internal" href="#retrieve-the-model-weights">Retrieve the Model Weights</a></li>
<li class="toctree-l2"><a class="reference internal" href="#compile-the-model-into-a-tensorrt-engine">Compile the Model into a TensorRT Engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="#run-the-model">Run the Model</a></li>
<li class="toctree-l2"><a class="reference internal" href="#deploy-with-triton-inference-server">Deploy with Triton Inference Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="#send-requests">Send Requests</a></li>
<li class="toctree-l2"><a class="reference internal" href="#next-steps">Next Steps</a></li>
<li class="toctree-l2"><a class="reference internal" href="#links">Links</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Installation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation/linux.html">Installing on Linux</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation/build-from-source-linux.html">Building from Source Code on Linux</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation/windows.html">Installing on Windows</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation/build-from-source-windows.html">Building from Source Code on Windows</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Architecture</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="architecture/overview.html">TensorRT-LLM Architecture</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/core-concepts.html">Model Definition</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/core-concepts.html#compilation">Compilation</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/core-concepts.html#runtime">Runtime</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/core-concepts.html#multi-gpu-and-multi-node-support">Multi-GPU and Multi-Node Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/checkpoint.html">TensorRT-LLM Checkpoint</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/workflow.html">TensorRT-LLM Build Workflow</a></li>
<li class="toctree-l1"><a class="reference internal" href="architecture/add-model.html">Adding a Model</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Advanced</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="advanced/gpt-attention.html">Multi-Head, Multi-Query, and Group-Query Attention</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/gpt-runtime.html">C++ GPT Runtime</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/graph-rewriting.html">Graph Rewriting Module</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/batch-manager.html">The Batch Manager in TensorRT-LLM</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/inference-request.html">Inference Request</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/inference-request.html#responses">Responses</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/lora.html">Run gpt-2b + LoRA using GptManager / cpp runtime</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced/expert-parallelism.html">Expert Parallelism in TensorRT-LLM</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Performance</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="performance/perf-overview.html">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="performance/perf-best-practices.html">Best Practices for Tuning the Performance of TensorRT-LLM</a></li>
<li class="toctree-l1"><a class="reference internal" href="performance/perf-analysis.html">Performance Analysis</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Reference</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="reference/troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/support-matrix.html">Support Matrix</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/precision.html">Numerical Precision</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/memory.html">Memory Usage of TensorRT-LLM</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/executor.html">Executor</a></li>
<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>
<li class="toctree-l1"><a class="reference internal" href="blogs/quantization-in-TRT-LLM.html">Speed up inference with SOTA quantization techniques in TRT-LLM</a></li>
<li class="toctree-l1"><a class="reference internal" href="blogs/XQA-kernel.html">New XQA-kernel provides 2.4x more Llama-70B throughput within the same latency budget</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">Quick Start Guide</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/quick-start-guide.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="quick-start-guide">
<span id="id1"></span><h1>Quick Start Guide<a class="headerlink" href="#quick-start-guide" title="Link to this heading"></a></h1>
<p>This is the starting point to try out TensorRT-LLM. Specifically, this Quick Start Guide enables you to quickly get setup and send HTTP requests using TensorRT-LLM.</p>
<section id="prerequisites">
<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading"></a></h2>
<p>The steps below use the Llama 2 model, which is subject to a particular <a class="reference external" href="https://llama.meta.com/llama-downloads/">license</a>. To download the necessary model files, agree to the terms and <a class="reference external" href="https://huggingface.co/meta-llama/Llama-2-7b-chat-hf?clone=true">authenticate with Hugging Face</a>.</p>
</section>
<section id="launch-the-docker">
<h2>Launch the Docker<a class="headerlink" href="#launch-the-docker" title="Link to this heading"></a></h2>
<p>Please be sure to complete the <a class="reference internal" href="installation/linux.html"><span class="std std-doc">installation</span></a> steps before proceeding with the following steps.</p>
</section>
<section id="retrieve-the-model-weights">
<h2>Retrieve the Model Weights<a class="headerlink" href="#retrieve-the-model-weights" title="Link to this heading"></a></h2>
<p>Pull the weights and tokenizer files for the chat-tuned variant of the 7B parameter Llama 2 model from the <a class="reference external" href="https://huggingface.co/meta-llama/Llama-2-7b-chat-hf">Hugging Face Hub</a>.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>https://huggingface.co/meta-llama/Llama-2-7b-chat-hf
</pre></div>
</div>
</section>
<section id="compile-the-model-into-a-tensorrt-engine">
<span id="quick-start-guide-compile"></span><h2>Compile the Model into a TensorRT Engine<a class="headerlink" href="#compile-the-model-into-a-tensorrt-engine" title="Link to this heading"></a></h2>
<p>Use the included <a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/main/examples/llama">Llama model definition</a>. This is a minimal example that includes some of the optimizations available in TensorRT-LLM.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Launch the Tensorrt-LLM container</span>
make<span class="w"> </span>-C<span class="w"> </span>docker<span class="w"> </span>release_run<span class="w"> </span><span class="nv">LOCAL_USER</span><span class="o">=</span><span class="m">1</span>
<span class="c1"># Log in to huggingface-cli</span>
<span class="c1"># You can get your token from huggingface.co/settings/token</span>
huggingface-cli<span class="w"> </span>login<span class="w"> </span>--token<span class="w"> </span>*****
<span class="c1"># Convert the model into TensorrtLLM checkpoint format</span>
<span class="nb">cd</span><span class="w"> </span>exammples/llama
python3<span class="w"> </span>convert_checkpoint.py<span class="w"> </span>--model_dir<span class="w"> </span>meta-llama/Llama-2-7b-chat-hf<span class="w"> </span>--output_dir<span class="w"> </span>llama-2-7b-ckpt
<span class="c1"># Compile model</span>
trtllm-build<span class="w"> </span>--checkpoint_dir<span class="w"> </span>llama-2-7b-ckpt<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--gemm_plugin<span class="w"> </span>float16<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--output_dir<span class="w"> </span>./llama-2-7b-engine
</pre></div>
</div>
<p>When you created the model definition with the TensorRT-LLM API, you built a graph of operations from <a class="reference external" href="https://developer.nvidia.com/tensorrt">NVIDIA TensorRT</a> primitives that formed the layers of your neural network. These operations map to specific kernels; prewritten programs for the GPU.</p>
<p>In this example, we included the <code class="docutils literal notranslate"><span class="pre">gpt_attention</span></code> plugin, which implements a FlashAttention-like fused attention kernel, and the <code class="docutils literal notranslate"><span class="pre">gemm</span></code> plugin, that performs matrix multiplication with FP32 accumulation. We also called out the desired precision for the full model as FP16, matching the default precision of the weights that you downloaded from Hugging Face. For more information about plugins and quantizations, refer to the <a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/main/examples/llama">Llama example</a> and <a class="reference internal" href="reference/precision.html#precision"><span class="std std-ref">Numerical Precision</span></a> section.</p>
</section>
<section id="run-the-model">
<h2>Run the Model<a class="headerlink" href="#run-the-model" title="Link to this heading"></a></h2>
<p>Now that youve got your model engine, its time to run it.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python3<span class="w"> </span>../run.py<span class="w"> </span>--engine_dir<span class="w"> </span>./llama-2-7b-engine<span class="w"> </span>--max_output_len<span class="w"> </span><span class="m">100</span><span class="w"> </span>--tokenizer_dir<span class="w"> </span>meta-llama/Llama-2-7b-chat-hf<span class="w"> </span>--input_text<span class="w"> </span><span class="s2">&quot;How do I count to nine in French?&quot;</span>
</pre></div>
</div>
</section>
<section id="deploy-with-triton-inference-server">
<h2>Deploy with Triton Inference Server<a class="headerlink" href="#deploy-with-triton-inference-server" title="Link to this heading"></a></h2>
<p>To create a production-ready deployment of your LLM, use the <a class="reference external" href="https://github.com/triton-inference-server/tensorrtllm_backend">Triton Inference Server backend for TensorRT-LLM</a> to leverage the TensorRT-LLM C++ runtime for rapid inference execution and include optimizations like in-flight batching and paged KV caching. Triton Inference Server with the TensorRT-LLM backend is available as a <a class="reference external" href="https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver/tags">pre-built container through NVIDIA NGC</a>.</p>
<ol class="arabic">
<li><p>Pull down the example model repository so that Triton Inference Server can read the model and any associated metadata.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># After exiting the TensorRT-LLM Docker container</span>
<span class="nb">cd</span><span class="w"> </span>..
git<span class="w"> </span>clone<span class="w"> </span>https://github.com/triton-inference-server/tensorrtllm_backend.git
<span class="nb">cd</span><span class="w"> </span>tensorrtllm_backend
cp<span class="w"> </span>../TensorRT-LLM/examples/llama/out/*<span class="w"> </span>all_models/inflight_batcher_llm/tensorrt_llm/1/
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">tensorrtllm_backend</span></code> repository includes the skeleton of a model repository under <code class="docutils literal notranslate"><span class="pre">all_models/inflight_batcher_llm/</span></code> that you can use.</p>
</li>
<li><p>Copy the model you compiled (<a class="reference internal" href="#quick-start-guide-compile"><span class="std std-ref">Compile the Model into a TensorRT Engine</span></a>) to the example model repository.</p></li>
<li><p>Modify the configuration files from the model repository. Specify, where the compiled model engine is, what tokenizer to use, and how to handle memory allocation for the KV cache when performing inference in batches.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python3<span class="w"> </span>tools/fill_template.py<span class="w"> </span>--in_place<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>all_models/inflight_batcher_llm/tensorrt_llm/config.pbtxt<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>decoupled_mode:true,engine_dir:/all_models/inflight_batcher_llm/tensorrt_llm/1,<span class="se">\</span>
max_tokens_in_paged_kv_cache:,batch_scheduler_policy:guaranteed_completion,kv_cache_free_gpu_mem_fraction:0.2,<span class="se">\</span>
max_num_sequences:4
python<span class="w"> </span>tools/fill_template.py<span class="w"> </span>--in_place<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>all_models/inflight_batcher_llm/preprocessing/config.pbtxt<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>tokenizer_type:llama,tokenizer_dir:meta-llama/Llama-2-7b-chat-hf
python<span class="w"> </span>tools/fill_template.py<span class="w"> </span>--in_place<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>all_models/inflight_batcher_llm/postprocessing/config.pbtxt<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>tokenizer_type:llama,tokenizer_dir:meta-llama/Llama-2-7b-chat-hf
</pre></div>
</div>
</li>
<li><p>Start the Docker container and launch the Triton Inference server. Specify <code class="docutils literal notranslate"><span class="pre">world</span> <span class="pre">size</span></code>, which is the number of GPUs the model was built for, and point to the <code class="docutils literal notranslate"><span class="pre">model_repo</span></code> that was just set up.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>--rm<span class="w"> </span>--gpus<span class="w"> </span>all<span class="w"> </span>--network<span class="w"> </span>host<span class="w"> </span>--shm-size<span class="o">=</span>1g<span class="w"> </span><span class="se">\</span>
-v<span class="w"> </span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/all_models:/all_models<span class="w"> </span><span class="se">\</span>
-v<span class="w"> </span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/scripts:/opt/scripts<span class="w"> </span><span class="se">\</span>
nvcr.io/nvidia/tritonserver:23.10-trtllm-python-py3
<span class="c1"># Log in to huggingface-cli to get tokenizer</span>
huggingface-cli<span class="w"> </span>login<span class="w"> </span>--token<span class="w"> </span>*****
<span class="c1"># Install python dependencies</span>
pip<span class="w"> </span>install<span class="w"> </span>sentencepiece<span class="w"> </span>protobuf
<span class="c1"># Launch Server</span>
python<span class="w"> </span>/opt/scripts/launch_triton_server.py<span class="w"> </span>--model_repo<span class="w"> </span>/all_models/inflight_batcher_llm<span class="w"> </span>--world_size<span class="w"> </span><span class="m">1</span>
</pre></div>
</div>
</li>
</ol>
</section>
<section id="send-requests">
<h2>Send Requests<a class="headerlink" href="#send-requests" title="Link to this heading"></a></h2>
<p>Use one of the Triton Inference Server client libraries or send HTTP requests to the generated endpoint. To get started, you can use the more fully featured client script or the following command:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span>localhost:8000/v2/models/ensemble/generate<span class="w"> </span>-d<span class="w"> </span><span class="se">\</span>
<span class="s1">&#39;{</span>
<span class="s1">&quot;text_input&quot;: &quot;How do I count to nine in French?&quot;,</span>
<span class="s1">&quot;parameters&quot;: {</span>
<span class="s1">&quot;max_tokens&quot;: 100,</span>
<span class="s1">&quot;bad_words&quot;:[&quot;&quot;],</span>
<span class="s1">&quot;stop_words&quot;:[&quot;&quot;]</span>
<span class="s1">}</span>
<span class="s1">}&#39;</span>
</pre></div>
</div>
</section>
<section id="next-steps">
<h2>Next Steps<a class="headerlink" href="#next-steps" title="Link to this heading"></a></h2>
<p>In this Quick Start Guide, you:</p>
<ul class="simple">
<li><p>Installed and built TensorRT-LLM</p></li>
<li><p>Retrieved the model weights</p></li>
<li><p>Compiled and ran the model</p></li>
<li><p>Deployed the model with Triton Inference Server</p></li>
<li><p>Sent HTTP requests</p></li>
</ul>
<p>For more examples, refer to:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/tree/main/examples">examples/</a> for showcases of how to run a quick benchmark on latest LLMs.</p></li>
</ul>
</section>
<section id="links">
<h2>Links<a class="headerlink" href="#links" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/NVIDIA/TensorRT-LLM/blob/main/docs/source/performance/perf-best-practices.md">Best Practices Guide</a></p></li>
<li><p><a class="reference external" href="https://nvidia.github.io/TensorRT-LLM/reference/support-matrix.html">Support Matrix</a></p></li>
</ul>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="overview.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="release-notes.html" class="btn btn-neutral float-right" title="Release Notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<jinja2.runtime.BlockReference object at 0x7f8a08bcfbb0>
<div class="footer">
<p>
Copyright © 2024 NVIDIA Corporation
</p>
<p>
<a class="Link" href="https://www.nvidia.com/en-us/about-nvidia/privacy-policy/" target="_blank" rel="noopener"
data-cms-ai="0">Privacy Policy</a> |
<a class="Link" href="https://www.nvidia.com/en-us/about-nvidia/privacy-center/" target="_blank" rel="noopener"
data-cms-ai="0">Manage My Privacy</a> |
<a class="Link" href="https://www.nvidia.com/en-us/preferences/start/" target="_blank" rel="noopener"
data-cms-ai="0">Do Not Sell or Share My Data</a> |
<a class="Link" href="https://www.nvidia.com/en-us/about-nvidia/terms-of-service/" target="_blank"
rel="noopener" data-cms-ai="0">Terms of Service</a> |
<a class="Link" href="https://www.nvidia.com/en-us/about-nvidia/accessibility/" target="_blank" rel="noopener"
data-cms-ai="0">Accessibility</a> |
<a class="Link" href="https://www.nvidia.com/en-us/about-nvidia/company-policies/" target="_blank"
rel="noopener" data-cms-ai="0">Corporate Policies</a> |
<a class="Link" href="https://www.nvidia.com/en-us/product-security/" target="_blank" rel="noopener"
data-cms-ai="0">Product Security</a> |
<a class="Link" href="https://www.nvidia.com/en-us/contact/" target="_blank" rel="noopener"
data-cms-ai="0">Contact</a>
</p>
</div>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>