# 概述

Qualcomm^®^ Linux AI 栈允许开发者在 Qualcomm 硬件加速器（例如神经网络处理单元 (NPU)、图形处理器 (GPU) 和中央处理器 (CPU)）上最佳地部署预训练的
深度学习模型。Qualcomm AI 软件产品包含软件开发工具包 (SDK)、API、示例程序、开发工具以及 GStreamer 和 TFLite 等第三方框架支持，以简化应用程序开发。

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export top_level_ai_hw.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.41042in" height="5.43084in" viewbox="0 0 605.55 391.02" xml:space="preserve" color-interpolation-filters="sRGB" class="st17"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-1 .st1 { fill: #ffffff; stroke: #d8d8d8; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #000000; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st3 { font-size: 1em }
.svg-1 .st4 { fill: #4a5a75; stroke: #4a5a75; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st5 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st6 { fill: #3253dc; stroke: #d8d8d8; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st7 { baseline-shift: 32.4941%; font-size: 0.649882em }
.svg-1 .st8 { fill: #3253dc; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st9 { fill: #dee3ec; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st10 { font-size: 0.83333em }
.svg-1 .st11 { marker-end: url("#mrkr13-51"); stroke: #7030a0; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st12 { fill: #7030a0; fill-opacity: 1; stroke: #7030a0; stroke-opacity: 1; stroke-width: 0.22935779816514 }
.svg-1 .st13 { fill: #7ba0ff; stroke: #7ba0ff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st14 { fill: #ffffff; font-family: Roboto; font-size: 0.833336em }
.svg-1 .st15 { fill: #000000; font-family: Roboto; font-size: 0.833336em }
.svg-1 .st16 { fill: #4a5a75; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st17 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-51" class="st12" v:arrowtype="13" v:arrowsize="2" v:setback="13.08" refx="-13.08" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-4.36,-4.36) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="full" v:index="0"></v:layer>	<g id="shape1218-1" v:mid="1218" v:groupcontext="shape" transform="translate(0.375,-27.3751)">		<title>Sheet.1218</title>		<desc>Hardware</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="302.4" cy="346.02" width="604.81" height="90"></v:textrect>		<rect x="0" y="301.02" width="604.8" height="90" rx="4.5" ry="4.5" class="st1"></rect>		<text x="4" y="315.82" class="st2" v:langid="1041"><v:paragraph></v:paragraph><v:tablist></v:tablist>硬件</text>		</g>	<g id="shape1219-4" v:mid="1219" v:groupcontext="shape" transform="translate(0.375,-134.875)">		<title>Sheet.1219</title>		<desc>AI SDKs</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="302.4" cy="346.02" width="604.81" height="90"></v:textrect>		<rect x="0" y="301.02" width="604.8" height="90" rx="4.5" ry="4.5" class="st1"></rect>		<text x="4" y="315.82" class="st2" v:langid="1041"><v:paragraph></v:paragraph><v:tablist></v:tablist>AI SDK</text>		</g>	<g id="shape1220-7" v:mid="1220" v:groupcontext="shape" transform="translate(0.375,-241.624)">		<title>Sheet.1220</title>		<desc>Qualcomm IMSDK Gstreamer plugins</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="302.4" cy="346.02" width="604.81" height="90"></v:textrect>		<rect x="0" y="301.02" width="604.8" height="90" rx="4.5" ry="4.5" class="st1"></rect>		<text x="4" y="315.82" class="st2" v:langid="1041"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm <tspan class="st3" v:langid="1033">IMSDK </tspan>Gstreamer <tspan class="st3" v:langid="1033">插件</tspan></text>		</g>	<g id="shape1221-12" v:mid="1221" v:groupcontext="shape" transform="translate(0.375,-352.989)">		<title>Sheet.1221</title>		<desc>AI applications</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="302.4" cy="372.192" width="604.81" height="37.656"></v:textrect>		<rect x="0" y="353.364" width="604.8" height="37.656" rx="4.5" ry="4.5" class="st4"></rect>		<text x="262.81" y="375.79" class="st5" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AI 应用</text>		</g>	<g id="shape1222-15" v:mid="1222" v:groupcontext="shape" transform="translate(26.8126,-258.375)">		<title>Sheet.1222</title>		<desc>Qualcomm® Neural Processing Engine plugin (qtimlsnpe)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="122.4" cy="366.252" width="244.8" height="49.536"></v:textrect>		<rect x="0" y="341.484" width="244.8" height="49.536" rx="4.5" ry="4.5" class="st6"></rect>		<text x="20.22" y="362.65" class="st5" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm<tspan dy="-0.235em" class="st7" v:basefontsize="12">®</tspan><tspan dy="0.153em" class="st3"> </tspan>Neural Processing Engine <tspan x="74.02" dy="1.2em" class="st3">插件 (qtimlsnpe)</tspan></text>		</g>	<g id="shape1223-21" v:mid="1223" v:groupcontext="shape" transform="translate(26.8126,-151.624)">		<title>Sheet.1223</title>		<desc>Qualcomm Neural Processing Engine</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="122.4" cy="366.27" width="244.8" height="49.5"></v:textrect>		<rect x="0" y="341.52" width="244.8" height="49.5" rx="4.5" ry="4.5" class="st8"></rect>		<text x="23.29" y="369.87" class="st5" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm Neural Processing Engine</text>		</g>	<g id="shape1224-24" v:mid="1224" v:groupcontext="shape" transform="translate(318.064,-258.375)">		<title>Sheet.1224</title>		<desc>Qualcomm® AI Engine Direct plugin (qtimlqnn)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="61.2" cy="366.252" width="122.4" height="49.536"></v:textrect>		<rect x="0" y="341.484" width="122.4" height="49.536" rx="4.5" ry="4.5" class="st6"></rect>		<text x="21.87" y="355.45" class="st5" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm<tspan dy="-0.235em" class="st7" v:basefontsize="12">®</tspan><tspan dy="0.153em" class="st3"> </tspan>AI <tspan x="8.23" dy="1.2em" class="st3">Engine Direct 插件 </tspan><tspan x="33.49" dy="1.2em" class="st3">(qtimlqnn)</tspan></text>		</g>	<g id="shape1225-31" v:mid="1225" v:groupcontext="shape" transform="translate(449.464,-258.375)">		<title>Sheet.1225</title>		<desc>TensorFlow Lite plugin (qtimltflite)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="61.2" cy="366.252" width="122.4" height="49.536"></v:textrect>		<rect x="0" y="341.484" width="122.4" height="49.536" rx="4.5" ry="4.5" class="st6"></rect>		<text x="18.57" y="355.45" class="st5" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TensorFlow Lite <tspan x="44.94" dy="1.2em" class="st3">插件<v:lf></v:lf></tspan><tspan x="29.94" dy="1.2em" class="st3"> </tspan>(qtimltflite)</text>		</g>	<g id="shape1226-36" v:mid="1226" v:groupcontext="shape" transform="translate(26.8126,-43.4677)">		<title>Sheet.1226</title>		<desc>NPU (DSP/HMX/HTP)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="366.54" width="144" height="48.96"></v:textrect>		<rect x="0" y="342.06" width="144" height="48.96" rx="4.5" ry="4.5" class="st9"></rect>		<text x="60.05" y="362.94" class="st2" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>NPU <v:newlinechar></v:newlinechar><v:paragraph v:horizalign="1"></v:paragraph><tspan x="34.27" dy="1.44em" class="st10">(DSP/HMX/HTP)</tspan></text>		</g>	<g id="shape1227-40" v:mid="1227" v:groupcontext="shape" transform="translate(227.339,-43.4677)">		<title>Sheet.1227</title>		<desc>GPU</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="366.54" width="144" height="48.96"></v:textrect>		<rect x="0" y="342.06" width="144" height="48.96" rx="4.5" ry="4.5" class="st9"></rect>		<text x="60.24" y="370.14" class="st2" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GPU</text>		</g>	<g id="shape1228-43" v:mid="1228" v:groupcontext="shape" transform="translate(427.864,-43.4677)">		<title>Sheet.1228</title>		<desc>CPU</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="366.54" width="144" height="48.96"></v:textrect>		<rect x="0" y="342.06" width="144" height="48.96" rx="4.5" ry="4.5" class="st9"></rect>		<text x="60.42" y="370.14" class="st2" v:langid="1041"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CPU</text>		</g>	<g id="shape1229-46" v:mid="1229" v:groupcontext="shape" v:layermember="0" transform="translate(693.795,38.031) rotate(90)">		<title>Sheet.1229</title>		<path d="M0 391.02 L11.56 391.02" class="st11"></path>	</g>	<g id="shape1230-52" v:mid="1230" v:groupcontext="shape" transform="translate(540.233,132.837) rotate(90)">		<title>Sheet.1230</title>		<path d="M0 391.02 L47.25 391.02" class="st11"></path>	</g>	<g id="shape1231-57" v:mid="1231" v:groupcontext="shape" v:layermember="0" transform="translate(693.795,256.146) rotate(90)">		<title>Sheet.1231</title>		<path d="M0 391.02 L8.04 391.02" class="st11"></path>	</g>	<g id="shape1233-62" v:mid="1233" v:groupcontext="shape" transform="translate(318.064,-153.375)">		<title>Sheet.1233</title>		<desc>Qualcomm AI Engine Direct</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="126.9" cy="366.27" width="253.81" height="49.5"></v:textrect>		<rect x="0" y="341.52" width="253.8" height="49.5" rx="4.5" ry="4.5" class="st8"></rect>		<text x="9.94" y="369.87" class="st5" v:langid="1041"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm AI Engine Direct</text>		</g>	<g id="shape1234-65" v:mid="1234" v:groupcontext="shape" transform="translate(919.685,132.072) rotate(90)">		<title>Sheet.1234</title>		<path d="M0 391.02 L47.21 391.02" class="st11"></path>	</g>	<g id="shape1235-70" v:mid="1235" v:groupcontext="shape" transform="translate(770.285,132.142) rotate(90)">		<title>Sheet.1235</title>		<path d="M0 391.02 L47.21 391.02" class="st11"></path>	</g>	<g id="shape1240-75" v:mid="1240" v:groupcontext="shape" transform="translate(498.064,-162.375)">		<title>Sheet.1240</title>		<desc>TFLite Delegate</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="30.6" cy="375.27" width="61.2" height="31.5"></v:textrect>		<rect x="0" y="359.52" width="61.2" height="31.5" rx="4.5" ry="4.5" class="st13"></rect>		<text x="13.88" y="371.67" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TFLite <tspan x="7.08" dy="1.2em" class="st3">Delegate</tspan></text>		</g>	<g id="shape1244-79" v:mid="1244" v:groupcontext="shape" transform="translate(271.613,-171.375)">		<title>Sheet.1244</title>		<path d="M0 391.02 L33.64 391.02" class="st11"></path>	</g>	<g id="shape1310-84" v:mid="1310" v:groupcontext="shape" transform="translate(1.02538,-0.375)">		<title>Sheet.1310</title>		<desc>QTI</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36" cy="382.02" width="72" height="18"></v:textrect>		<rect x="0" y="373.02" width="72" height="18" rx="4.5" ry="4.5" class="st8"></rect>		<text x="28.22" y="385.02" class="st14" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QTI</text>		</g>	<g id="shape1311-87" v:mid="1311" v:groupcontext="shape" transform="translate(84.2754,-0.375)">		<title>Sheet.1311</title>		<desc>Hardware</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="36.1758" cy="382.02" width="72.36" height="18"></v:textrect>		<rect x="0" y="373.02" width="72.3516" height="18" rx="4.5" ry="4.5" class="st9"></rect>		<text x="14.56" y="385.02" class="st15" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>硬件</text>		</g>	<g id="shape1312-90" v:mid="1312" v:groupcontext="shape" transform="translate(167.525,-0.633842)">		<title>Sheet.1312</title>		<desc>Third-party</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="31.2891" cy="382.15" width="62.58" height="17.7412"></v:textrect>		<rect x="0" y="373.279" width="62.5781" height="17.7412" rx="4.5" ry="4.5" class="st16"></rect>		<text x="7.23" y="385.15" class="st14" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>第三方</text>		</g></g>
</svg>
**Qualcomm Linux AI 栈的顶层 AI 硬件和软件模块**

Qualcomm Linux AI 栈的关键组件包括：

- **AI 应用** - 基于 Gstreamer 的示例程序，可以根据需要使用或定制。
- **Gstreamer 插件** - Qualcomm Linux 软件提供基于 Gstreamer 的机器学习插件，用于通过 TFLite、Qualcomm^®^ Neural Processing Engine SDK 等加速 AI 推理，以及用于预处理和后处理的 Gstreamer 插件。
- **Qualcomm AI 栈** 包含两个用于加速 AI 工作负载的 SDK。
**Qualcomm Neural Processing Engine SDK** 和 **AI Engine Direct** 提供工具、库等，以在多个硬件加速器上最优地加速 AI 模型。
- Qualcomm SoC 提供三种用于 AI 负载的 **硬件核心**。

    - **神经处理单元 (NPU)** - 也称为 Qualcomm® Hexagon™ Tensor Processor (HTP) 或 DSP/HMX，适合以低功耗、高性能执行 AI 工作负载。
为优化性能，需要把预训练模型量化到任意一种支持的精度。
    - **图形处理器 (GPU)** - Qualcomm® Adreno™ GPU 适合以中等功耗、中等性能执行 AI 工作负载。AI 工作负载可以通过 OpenCL 内核进行加速。GPU 还可用于加速模型预处理/后处理。
    - **中央处理器 (CPU)** - 在 CPU 上进行 AI 推理可以用来与其他硬件加速器进行模型准确性/性能的基准测试。CPU 还可以用于运行模型的预处理/后处理。

Last Published: Dec 10, 2024

[Next Topic
架构](https://docs.qualcomm.com/bundle/publicresource/80-70015-15SC/topics/architecture.md)