# AI 软件概述和架构

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

多媒体 AI 应用程序使用 Qualcomm IM SDK GStreamer 插件 API，充分利用 Qualcomm AI Engine Direct 和 Qualcomm Neural Processing Engine API，为 AI 用例提供底层硬件加速，如下图所示：

<?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 top_level_ai_hw -->
<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="11.1215in" height="7.37153in" viewbox="0 0 800.748 530.75" xml:space="preserve" color-interpolation-filters="sRGB" class="st26" aria-label="../_images/top_level_ai_hw.svg"><v:documentproperties v:langid="1033"></v:documentproperties>
<style>.svg-1 .st1 { fill: #ffffff; stroke: #ffffff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st2 { fill: #ffffff; stroke: #d8d8d8; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st3 { fill: #000000; font-family: SimHei; font-size: 1.33333em }
.svg-1 .st4 { fill: #000000; font-family: Arial; font-size: 1.33333em }
.svg-1 .st5 { font-family: SimHei; font-size: 1em }
.svg-1 .st6 { fill: #040a40; stroke: #4a5a75; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st7 { fill: #ffffff; font-family: Arial; font-size: 1.33333em }
.svg-1 .st8 { fill: #3253dc; stroke: #d8d8d8; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st9 { baseline-shift: 32.4948%; font-size: 0.649895em }
.svg-1 .st10 { font-size: 1em }
.svg-1 .st11 { fill: #3253dc; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st12 { fill: #ffffff; font-family: Arial; font-size: 1.24999em }
.svg-1 .st13 { baseline-shift: 32.495%; font-size: 0.6499em }
.svg-1 .st14 { fill: #dee3ec; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st15 { marker-end: url("#mrkr13-54"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st16 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-1 .st17 { marker-end: url("#mrkr13-65"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75 }
.svg-1 .st18 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.40983606557377 }
.svg-1 .st19 { fill: #7ba0ff; stroke: #7ba0ff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-1 .st20 { fill: #ffffff; font-family: Arial; font-size: 1.16666em }
.svg-1 .st21 { fill: #3253dc; stroke: #f5f6f7; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-1 .st22 { fill: #dee3ec; stroke: #f5f6f7; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-1 .st23 { fill: #000000; font-family: SimHei; font-size: 1.16666em }
.svg-1 .st24 { fill: #040a40; stroke: #f5f6f7; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-1 .st25 { fill: #ffffff; font-family: SimHei; font-size: 1.16666em }
.svg-1 .st26 { 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-54" class="st16" v:arrowtype="13" v:arrowsize="2" v:setback="6.6" refx="-6.6" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-2.26,-2.26) "></use>	</marker>	<marker id="mrkr13-65" class="st18" v:arrowtype="13" v:arrowsize="2" v:setback="7.11429" refx="-7.1142857142857" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-2.44,-2.44) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>top_level_ai_hw</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="8.99998" v:shadowoffsety="-8.99998"></v:pageproperties>	<v:layer v:name="full" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(0.374999,-0.375803)">		<title>Sheet.1</title>		<path d="M0 526.75 A4.00008 4.00008 -180 0 0 4 530.75 L796 530.75 A4.00008 4.00008 -180 0 0 800 526.75 L800 4.75 A4.00008					 4.00008 -180 0 0 796 0.75 L4 0.75 A4.00008 4.00008 -180 0 0 0 4.75 L0 526.75 Z" class="st1"></path>	</g>	<g id="shape2-3" v:mid="2" v:groupcontext="shape" transform="translate(18.584,-54.6088)">		<title>Sheet.2</title>		<desc>Hardware</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:verticalalign="0"></v:textblock>		<v:textrect cx="383.582" cy="473.669" width="767.18" height="114.162"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L762.66 530.75 A4.50009 4.50009 -180 0 0 767.16 526.25 L767.16					 421.09 A4.50009 4.50009 -180 0 0 762.66 416.59 L4.5 416.59 A4.50009 4.50009 -180 0 0 0 421.09 L0 526.25					 Z" class="st2"></path>		<text x="4" y="434.99" class="st3" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>硬件</text>		</g>	<g id="shape3-6" v:mid="3" v:groupcontext="shape" transform="translate(18.584,-190.967)">		<title>Sheet.3</title>		<desc>AI SDKs</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:verticalalign="0"></v:textblock>		<v:textrect cx="383.582" cy="473.669" width="767.18" height="114.162"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L762.66 530.75 A4.50009 4.50009 -180 0 0 767.16 526.25 L767.16					 421.09 A4.50009 4.50009 -180 0 0 762.66 416.59 L4.5 416.59 A4.50009 4.50009 -180 0 0 0 421.09 L0 526.25					 Z" class="st2"></path>		<text x="4" y="434.99" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>AI SDK</text>		</g>	<g id="shape4-9" v:mid="4" v:groupcontext="shape" transform="translate(18.584,-326.375)">		<title>Sheet.4</title>		<desc>Qualcomm IMSDK Gstreamer plugins</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)" v:verticalalign="0"></v:textblock>		<v:textrect cx="383.582" cy="473.669" width="767.18" height="114.162"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L762.66 530.75 A4.50009 4.50009 -180 0 0 767.16 526.25 L767.16					 421.09 A4.50009 4.50009 -180 0 0 762.66 416.59 L4.5 416.59 A4.50009 4.50009 -180 0 0 0 421.09 L0 526.25					 Z" class="st2"></path>		<text x="4" y="436.19" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm IMSDK Gstreamer <tspan class="st5">插件</tspan></text>		</g>	<g id="shape5-13" v:mid="5" v:groupcontext="shape" transform="translate(18.584,-467.636)">		<title>Sheet.5</title>		<desc>AI applications</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="383.582" cy="506.866" width="767.18" height="47.7651"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L762.66 530.75 A4.50009 4.50009 -180 0 0 767.16 526.25 L767.16					 487.49 A4.50009 4.50009 -180 0 0 762.66 482.99 L4.5 482.99 A4.50009 4.50009 -180 0 0 0 487.49 L0 526.25					 Z" class="st6"></path>		<text x="341.8" y="512.13" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AI <tspan class="st5">应用程序</tspan></text>		</g>	<g id="shape6-17" v:mid="6" v:groupcontext="shape" transform="translate(52.119,-347.623)">		<title>Sheet.6</title>		<desc>Qualcomm® Neural Processing Engine plugin (qtimlsnpe)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="155.26" cy="499.333" width="310.52" height="62.8343"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L306.02 530.75 A4.50009 4.50009 -180 0 0 310.52 526.25 L310.52					 472.42 A4.50009 4.50009 -180 0 0 306.02 467.92 L4.5 467.92 A4.50009 4.50009 -180 0 0 0 472.42 L0 526.25					 Z" class="st8"></path>		<text x="18.04" y="493.73" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm<tspan dy="-0.235em" class="st9" v:basefontsize="16">®</tspan><tspan dy="0.153em" class="st10"> </tspan>Neural Processing Engine <tspan x="97.47" dy="1.275em" class="st5">插件</tspan> (qtimlsnpe)</text>		</g>	<g id="shape7-23" v:mid="7" v:groupcontext="shape" transform="translate(52.119,-212.213)">		<title>Sheet.7</title>		<desc>Qualcomm Neural Processing Engine</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="155.26" cy="499.356" width="310.52" height="62.7887"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L306.02 530.75 A4.50009 4.50009 -180 0 0 310.52 526.25 L310.52					 472.46 A4.50009 4.50009 -180 0 0 306.02 467.96 L4.5 467.96 A4.50009 4.50009 -180 0 0 0 472.46 L0 526.25					 Z" class="st11"></path>		<text x="21.87" y="504.16" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm Neural Processing Engine</text>		</g>	<g id="shape8-26" v:mid="8" v:groupcontext="shape" transform="translate(421.56,-347.623)">		<title>Sheet.8</title>		<desc>Qualcomm® AI Engine Direct plugin (qtimlqnn)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="77.6297" cy="499.333" width="155.26" height="62.8343"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L150.76 530.75 A4.50009 4.50009 -180 0 0 155.26 526.25 L155.26					 472.42 A4.50009 4.50009 -180 0 0 150.76 467.92 L4.5 467.92 A4.50009 4.50009 -180 0 0 0 472.42 L0 526.25					 Z" class="st8"></path>		<text x="28.61" y="485.08" class="st12" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm<tspan dy="-0.235em" class="st13" v:basefontsize="15">®</tspan><tspan dy="0.153em" class="st10"> </tspan>AI <tspan x="15.52" dy="1.275em" class="st10">Engine Direct </tspan><tspan class="st5">插件</tspan> <tspan x="44.29" dy="1.225em" class="st10">(qtimlqnn)</tspan></text>		</g>	<g id="shape9-34" v:mid="9" v:groupcontext="shape" transform="translate(588.236,-347.623)">		<title>Sheet.9</title>		<desc>TensorFlow Lite plugin (qtimltflite)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="77.6297" cy="499.333" width="155.26" height="62.8343"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L150.76 530.75 A4.50009 4.50009 -180 0 0 155.26 526.25 L155.26					 472.42 A4.50009 4.50009 -180 0 0 150.76 467.92 L4.5 467.92 A4.50009 4.50009 -180 0 0 0 472.42 L0 526.25					 Z" class="st8"></path>		<text x="7.19" y="495.21" class="st12" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TensorFlow Lite <tspan class="st5">插件</tspan> <tspan x="43.05" dy="1.225em" class="st10">(qtimltflite)</tspan></text>		</g>	<g id="shape10-39" v:mid="10" v:groupcontext="shape" transform="translate(52.119,-75.0217)">		<title>Sheet.10</title>		<desc>NPU (DSP/HMX/HTP)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.3291" cy="499.698" width="182.66" height="62.1037"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L178.16 530.75 A4.50009 4.50009 -180 0 0 182.66 526.25 L182.66					 473.15 A4.50009 4.50009 -180 0 0 178.16 468.65 L4.5 468.65 A4.50009 4.50009 -180 0 0 0 473.15 L0 526.25					 Z" class="st14"></path>		<text x="74.44" y="494.9" class="st4" v:langid="1033"><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="31.33" dy="1.2em" class="st10">(DSP/HMX/HTP)</tspan></text>		</g>	<g id="shape11-43" v:mid="11" v:groupcontext="shape" transform="translate(306.478,-75.0217)">		<title>Sheet.11</title>		<desc>GPU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.3291" cy="499.698" width="182.66" height="62.1037"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L178.16 530.75 A4.50009 4.50009 -180 0 0 182.66 526.25 L182.66					 473.15 A4.50009 4.50009 -180 0 0 178.16 468.65 L4.5 468.65 A4.50009 4.50009 -180 0 0 0 473.15 L0 526.25					 Z" class="st14"></path>		<text x="73.99" y="504.5" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GPU</text>		</g>	<g id="shape12-46" v:mid="12" v:groupcontext="shape" transform="translate(560.837,-75.0217)">		<title>Sheet.12</title>		<desc>CPU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.3291" cy="499.698" width="182.66" height="62.1037"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L178.16 530.75 A4.50009 4.50009 -180 0 0 182.66 526.25 L182.66					 473.15 A4.50009 4.50009 -180 0 0 178.16 468.65 L4.5 468.65 A4.50009 4.50009 -180 0 0 0 473.15 L0 526.25					 Z" class="st14"></path>		<text x="74.44" y="504.5" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CPU</text>		</g>	<g id="shape13-49" v:mid="13" v:groupcontext="shape" v:layermember="0" transform="translate(932.916,63.1135) rotate(90)">		<title>Sheet.13</title>		<path d="M0 530.75 L13.54 530.75 L13.54 530.75 L13.9 530.75" class="st15"></path>	</g>	<g id="shape14-55" v:mid="14" v:groupcontext="shape" transform="translate(738.129,183.37) rotate(90)">		<title>Sheet.14</title>		<path d="M0 530.75 L58.82 530.75 L58.82 530.75 L59.18 530.75" class="st15"></path>	</g>	<g id="shape15-60" v:mid="15" v:groupcontext="shape" v:layermember="0" transform="translate(932.916,339.783) rotate(90)">		<title>Sheet.15</title>		<path d="M0 530.75 L9.84 530.75 L9.84 530.75 L10.2 530.75" class="st17"></path>	</g>	<g id="shape16-66" v:mid="16" v:groupcontext="shape" transform="translate(421.56,-214.434)">		<title>Sheet.16</title>		<desc>Qualcomm AI Engine Direct</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="160.968" cy="499.356" width="321.94" height="62.7887"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L317.44 530.75 A4.50009 4.50009 -180 0 0 321.94 526.25 L321.94					 472.46 A4.50009 4.50009 -180 0 0 317.44 467.96 L4.5 467.96 A4.50009 4.50009 -180 0 0 0 472.46 L0 526.25					 Z" class="st11"></path>		<text x="38" y="493.36" class="st7" v:langid="1033"><v:paragraph v:indentleft="34" v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>Qualcomm AI  <v:lf></v:lf><tspan x="38" dy="1.5em" class="st10">Engine Direct</tspan></text>		</g>	<g id="shape17-70" v:mid="17" v:groupcontext="shape" transform="translate(1219.45,182.401) rotate(90)">		<title>Sheet.17</title>		<path d="M0 530.75 L58.77 530.75 L58.77 530.75 L59.13 530.75" class="st15"></path>	</g>	<g id="shape18-75" v:mid="18" v:groupcontext="shape" transform="translate(1029.94,182.49) rotate(90)">		<title>Sheet.18</title>		<path d="M0 530.75 L58.77 530.75 L58.77 530.75 L59.13 530.75" class="st15"></path>	</g>	<g id="shape19-80" v:mid="19" v:groupcontext="shape" transform="translate(630.373,-225.852)">		<title>Sheet.19</title>		<desc>TFLite Delegate</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="48.5694" cy="510.772" width="97.15" height="39.9565"></v:textrect>		<path d="M0 526.25 A4.50009 4.50009 -180 0 0 4.5 530.75 L92.64 530.75 A4.50009 4.50009 -180 0 0 97.14 526.25 L97.14 495.29					 A4.50009 4.50009 -180 0 0 92.64 490.79 L4.5 490.79 A4.50009 4.50009 -180 0 0 -0 495.29 L0 526.25 Z" class="st19"></path>		<text x="28.73" y="506.57" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TFLite <tspan x="20.55" dy="1.2em" class="st10">Delegate</tspan></text>		</g>	<g id="shape20-84" v:mid="20" v:groupcontext="shape" transform="translate(361.661,-237.266) rotate(-0.105469)">		<title>Sheet.20</title>		<path d="M0 530.75 L45.36 530.75 L45.36 530.75 L45.72 530.75" class="st15"></path>	</g>	<g id="shape21-89" v:mid="21" v:groupcontext="shape" transform="translate(19.409,-10.3762)">		<title>Sheet.21</title>		<desc>QTI</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="45.6645" cy="514.342" width="91.33" height="32.8166"></v:textrect>		<path d="M0 526.75 A4.00008 4.00008 -180 0 0 4 530.75 L87.33 530.75 A4.00008 4.00008 -180 0 0 91.33 526.75 L91.33 501.93					 A4.00008 4.00008 -180 0 0 87.33 497.93 L4 497.93 A4.00008 4.00008 -180 0 0 0 501.93 L0 526.75 Z" class="st21"></path>		<text x="34" y="518.54" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QTI</text>		</g>	<g id="shape22-92" v:mid="22" v:groupcontext="shape" transform="translate(125.008,-10.3762)">		<title>Sheet.22</title>		<desc>Hardware</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="45.8875" cy="514.342" width="91.79" height="32.8166"></v:textrect>		<path d="M0 526.75 A4.00008 4.00008 -180 0 0 4 530.75 L87.77 530.75 A4.00008 4.00008 -180 0 0 91.77 526.75 L91.77 501.93					 A4.00008 4.00008 -180 0 0 87.77 497.93 L4 497.93 A4.00008 4.00008 -180 0 0 0 501.93 L0 526.75 Z" class="st22"></path>		<text x="31.89" y="518.54" class="st23" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>硬件</text>		</g>	<g id="shape23-95" v:mid="23" v:groupcontext="shape" transform="translate(230.607,-10.3762)">		<title>Sheet.23</title>		<desc>Third-party</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.3833" cy="514.342" width="124.77" height="32.8166"></v:textrect>		<path d="M0 526.75 A4.00008 4.00008 -180 0 0 4 530.75 L120.77 530.75 A4.00008 4.00008 -180 0 0 124.77 526.75 L124.77					 501.93 A4.00008 4.00008 -180 0 0 120.77 497.93 L4 497.93 A4.00008 4.00008 -180 0 0 0 501.93 L0 526.75 Z" class="st24"></path>		<text x="41.38" y="518.54" class="st25" 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 应用程序](https://docs.qualcomm.com/doc/80-70022-15SC/topic/sample-apps.html)：基于 Gstreamer 的示例应用程序，您可以对其进行[自定义](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-15B/customize-reference-app.html)。
- [GStreamer 插件](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/gst-plugin-architecture.html)：Qualcomm Linux 软件提供基于 GStreamer 的机器学习插件，以通过 TFLite、Qualcomm^®^ Neural Processing Engine SDK 等工具加速 AI 推理，以及用于预处理和后处理的 GStreamer 插件。
- Qualcomm AI 软件包含两个用于加速 AI 工作负载的 SDK。[Qualcomm Neural Processing Engine SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/) 和 [Qualcomm AI Engine Direct](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-50/) 提供工具、库等，旨在多个硬件加速器上充分加速 AI 模型。
- Qualcomm <abbr title="System-on-Chip">system-on-Chip (SoC - 片上系统)</abbr> 提供三种用于 AI 负载的硬件核心。

    - [神经网络处理单元 (NPU)](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-15B/run-models.html)：也称为 Qualcomm® Hexagon™ Tensor Processor (HTP) 或 DSP/HMX，适合以低功耗、高性能执行 AI 工作负载。为优化性能，需要将预训练模型量化到任意一种支持的精度。
    - [图形处理单元 (GPU)](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-15B/run-models.html)： Qualcomm® Adreno™ GPU 适合运行中等功率、中等性能的 AI 工作负载。AI 工作负载可以通过 OpenCL 内核进行加速。您还可以使用 GPU 加速模型预处理和后处理。
    - [中央处理器 (CPU)](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-15B/run-models.html)：在 CPU 上使用 AI 推理，以其他硬件加速器为基准测试模型的准确性或性能。您还可以使用 CPU 运行模型预处理和后处理。

## 架构

下图展示了可用的 AI runtime（如 ONNX runtime 和 LiteRT）、可用的硬件加速器（如 <abbr title="Neural Processing Unit">neural Processing Unit (NPU)</abbr>、<abbr title="Graphics Processing Unit">graphics Processing Unit (GPU)</abbr> 和 <abbr title="Central Processing Unit">central Processing Unit (CPU)</abbr>）以及每个加速器的后端库。

<?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 ai_arch.svg ai_arch -->
<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="10.5139in" height="10.8472in" viewbox="0 0 757.001 780.998" xml:space="preserve" color-interpolation-filters="sRGB" class="st29" aria-label="框图展示了可用的 runtime、后端库和硬件加速器。"><v:documentproperties v:langid="1033"></v:documentproperties>
<style>.svg-2 .st1 { fill: #ffffff; stroke: #ffffff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st2 { marker-end: url("#mrkr4-8"); stroke: #000000; stroke-linecap: butt; stroke-width: 2 }
.svg-2 .st3 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247781093026 }
.svg-2 .st4 { fill: none; stroke: #7f7f7f; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st5 { fill: #000000; font-family: SimHei; font-size: 1.5em; font-weight: bold }
.svg-2 .st6 { fill: #f5f6f7; stroke: #7f7f7f; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st7 { fill: #3253dc; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st8 { fill: #ffffff; font-family: Arial; font-size: 1.33333em }
.svg-2 .st9 { font-size: 1em }
.svg-2 .st10 { fill: #ffffff; font-family: SimHei; font-size: 1.5em }
.svg-2 .st11 { fill: #ffffff; font-family: Arial; font-size: 1.5em }
.svg-2 .st12 { font-family: SimHei; font-size: 1em }
.svg-2 .st13 { font-family: Arial; font-size: 1em }
.svg-2 .st14 { fill: #dee3ec; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-2 .st15 { fill: #000000; font-family: Arial; font-size: 1.33333em }
.svg-2 .st16 { fill: #000000; font-family: Arial; font-size: 1.5em }
.svg-2 .st17 { fill: #007884; stroke: #007884; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st18 { fill: #007884; stroke: #007884; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-2 .st19 { fill: #3253dc; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-2 .st20 { fill: #ffffff; font-family: Arial; font-size: 1.16666em }
.svg-2 .st21 { fill: #dee3ec; stroke: #dee3ec; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-2 .st22 { fill: #000000; font-family: SimHei; font-size: 1.16666em }
.svg-2 .st23 { fill: #040a40; stroke: #040a40; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749998 }
.svg-2 .st24 { fill: #ffffff; font-family: SimHei; font-size: 1.16666em }
.svg-2 .st25 { fill: #000000; font-family: Arial; font-size: 1.5em; font-weight: bold }
.svg-2 .st26 { fill: #2a2aea; stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st27 { fill: #007884; stroke: #007884; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st28 { fill: #040a40; stroke: #040a40; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.999998 }
.svg-2 .st29 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-8" class="st3" v:arrowtype="4" v:arrowsize="2" v:setback="0" refx="-0" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-2.2600003328926,-2.2600003328926) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>ai_arch</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="8.99998" v:shadowoffsety="-8.99998"></v:pageproperties>	<v:layer v:name="interfaces" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(18.5011,-18.4983)">		<title>Sheet.1</title>		<path d="M-0 773 A8.00017 8.00017 -180 0 0 8 781 L712 781 A8.00017 8.00017 -180 0 0 720 773 L720 45 A8.00017 8.00017					 -180 0 0 712 37 L8 37 A8.00017 8.00017 -180 0 0 0 45 L0 773 Z" class="st1"></path>	</g>	<g id="shape2-3" v:mid="2" v:groupcontext="shape" transform="translate(1415.2,72.9775) rotate(89.3823)">		<title>Sheet.2</title>		<path d="M0 781 L30.81 781 L39.85 781" class="st2"></path>	</g>	<g id="shape3-9" v:mid="3" v:groupcontext="shape" transform="translate(36.2428,-210.848)">		<title>Sheet.3</title>		<desc>Backend libraries</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(7.99998,7.99998,7.99998,7.99998)" v:verticalalign="0"></v:textblock>		<v:textrect cx="339.998" cy="667.082" width="680" height="227.83"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L675.5 781 A4.50009 4.50009 -180 0 0 680 776.5 L680 557.67 A4.50009					 4.50009 -180 0 0 675.5 553.17 L4.5 553.17 A4.50009 4.50009 -180 0 0 -0 557.67 L0 776.5 Z" class="st4"></path>		<text x="8" y="577.37" class="st5" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>后端库</text>		</g>	<g id="shape4-12" v:mid="4" v:groupcontext="shape" transform="translate(276.243,-232.629)">		<title>Sheet.4</title>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L195.5 781 A4.50009 4.50009 -180 0 0 200 776.5 L200 611.63 A4.50009					 4.50009 -180 0 0 195.5 607.13 L4.5 607.13 A4.50009 4.50009 -180 0 0 -0 611.63 L0 776.5 Z" class="st6"></path>	</g>	<g id="shape5-14" v:mid="5" v:groupcontext="shape" transform="translate(282.183,-352.981)">		<title>Sheet.5</title>		<desc>Qualcomm AI Engine Direct API</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="15.64" y="753.72" class="st8" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm AI Engine <tspan x="55.23" dy="1.2em" class="st9">Direct API</tspan></text>		</g>	<g id="shape6-18" v:mid="6" v:groupcontext="shape" transform="translate(284.782,-298.648)">		<title>Sheet.6</title>		<desc>Kernels</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="73.23" y="763.92" class="st10" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>内核</text>		</g>	<g id="shape7-21" v:mid="7" v:groupcontext="shape" transform="translate(284.782,-242.832)">		<title>Sheet.7</title>		<desc>OpenCL</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 0 740.55 L0 776.5 Z" class="st7"></path>		<text x="57.71" y="763.92" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>OpenCL</text>		</g>	<g id="shape8-24" v:mid="8" v:groupcontext="shape" transform="translate(502.242,-232.629)">		<title>Sheet.8</title>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L195.5 781 A4.50009 4.50009 -180 0 0 200 776.5 L200 611.63 A4.50009					 4.50009 -180 0 0 195.5 607.13 L4.5 607.13 A4.50009 4.50009 -180 0 0 -0 611.63 L0 776.5 Z" class="st6"></path>	</g>	<g id="shape9-26" v:mid="9" v:groupcontext="shape" transform="translate(508.62,-352.981)">		<title>Sheet.9</title>		<desc>Qualcomm AI Engine Direct API</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="15.64" y="753.72" class="st8" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm AI Engine <tspan x="55.23" dy="1.2em" class="st9">Direct API</tspan></text>		</g>	<g id="shape10-30" v:mid="10" v:groupcontext="shape" transform="translate(511.22,-298.648)">		<title>Sheet.10</title>		<desc>QML</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="71.73" y="763.92" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QML</text>		</g>	<g id="shape11-33" v:mid="11" v:groupcontext="shape" transform="translate(511.22,-242.832)">		<title>Sheet.11</title>		<desc>Neon</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="69.72" y="763.92" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Neon</text>		</g>	<g id="shape12-36" v:mid="12" v:groupcontext="shape" transform="translate(50.2428,-232.629)">		<title>Sheet.12</title>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L195.5 781 A4.50009 4.50009 -180 0 0 200 776.5 L200 611.63 A4.50009					 4.50009 -180 0 0 195.5 607.13 L4.5 607.13 A4.50009 4.50009 -180 0 0 -0 611.63 L0 776.5 Z" class="st6"></path>	</g>	<g id="shape13-38" v:mid="13" v:groupcontext="shape" transform="translate(57.3068,-352.981)">		<title>Sheet.13</title>		<desc>Qualcomm AI Engine Direct API</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="15.64" y="753.72" class="st8" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm AI Engine <tspan x="55.23" dy="1.2em" class="st9">Direct API</tspan></text>		</g>	<g id="shape14-42" v:mid="14" v:groupcontext="shape" transform="translate(59.9063,-298.648)">		<title>Sheet.14</title>		<desc>HTP core</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="52.73" y="764.45" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>HTP <tspan class="st12">核心</tspan></text>		</g>	<g id="shape15-46" v:mid="15" v:groupcontext="shape" transform="translate(59.9063,-242.832)">		<title>Sheet.15</title>		<desc>HMX/HVX</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="91.2326" cy="758.523" width="182.47" height="44.9486"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L177.97 781 A4.50009 4.50009 -180 0 0 182.47 776.5 L182.47 740.55					 A4.50009 4.50009 -180 0 0 177.97 736.05 L4.5 736.05 A4.50009 4.50009 -180 0 0 -0 740.55 L0 776.5 Z" class="st7"></path>		<text x="50.23" y="763.92" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>HMX/HVX</text>		</g>	<g id="shape16-49" v:mid="16" v:groupcontext="shape" transform="translate(36.2428,-74.848)">		<title>Sheet.16</title>		<desc>Hardware IP cores</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(7.99998,7.99998,7.99998,7.99998)" v:verticalalign="2"></v:textblock>		<v:textrect cx="339.998" cy="722.036" width="680" height="117.922"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L675.5 781 A4.50009 4.50009 -180 0 0 680 776.5 L680 667.58 A4.50009					 4.50009 -180 0 0 675.5 663.08 L4.5 663.08 A4.50009 4.50009 -180 0 0 -0 667.58 L0 776.5 Z" class="st4"></path>		<text x="8" y="767.15" class="st5" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>硬件<tspan class="st13"> </tspan><tspan class="st13">IP</tspan><tspan class="st13"> </tspan>核心</text>		</g>	<g id="shape17-55" v:mid="17" v:groupcontext="shape" transform="translate(50.2428,-114.865)">		<title>Sheet.17</title>		<desc>NPU (DSP/HMX/HTP)</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="99.9986" cy="758.263" width="200.01" height="45.4663"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L195.5 781 A4.50009 4.50009 -180 0 0 200 776.5 L200 740.03 A4.50009					 4.50009 -180 0 0 195.5 735.53 L4.5 735.53 A4.50009 4.50009 -180 0 0 -0 740.03 L0 776.5 Z" class="st14"></path>		<text x="83.11" y="753.46" class="st15" v:langid="1033"><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="40" dy="1.2em" class="st9">(DSP/HMX/HTP)</tspan></text>		</g>	<g id="shape18-59" v:mid="18" v:groupcontext="shape" transform="translate(276.243,-114.865)">		<title>Sheet.18</title>		<desc>GPU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="99.9986" cy="758.263" width="200.01" height="45.4663"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L195.5 781 A4.50009 4.50009 -180 0 0 200 776.5 L200 740.03 A4.50009					 4.50009 -180 0 0 195.5 735.53 L4.5 735.53 A4.50009 4.50009 -180 0 0 -0 740.03 L0 776.5 Z" class="st14"></path>		<text x="80.5" y="763.66" class="st16" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GPU</text>		</g>	<g id="shape19-62" v:mid="19" v:groupcontext="shape" transform="translate(502.242,-114.865)">		<title>Sheet.19</title>		<desc>CPU</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="99.9986" cy="758.263" width="200.01" height="45.4663"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L195.5 781 A4.50009 4.50009 -180 0 0 200 776.5 L200 740.03 A4.50009					 4.50009 -180 0 0 195.5 735.53 L4.5 735.53 A4.50009 4.50009 -180 0 0 -0 740.03 L0 776.5 Z" class="st14"></path>		<text x="81" y="763.66" class="st16" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CPU</text>		</g>	<g id="shape20-65" v:mid="20" v:groupcontext="shape" transform="translate(897.239,81.3965) rotate(90)">		<title>Sheet.20</title>		<path d="M0 781 L30.8 781 L39.84 781" class="st2"></path>	</g>	<g id="shape21-70" v:mid="21" v:groupcontext="shape" transform="translate(53.7428,-699.601)">		<title>Sheet.21</title>		<desc>TensorFlow</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="756.849" width="125" height="48.2965"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 737.2 A4.50009					 4.50009 -180 0 0 120.5 732.7 L4.5 732.7 A4.50009 4.50009 -180 0 0 -0 737.2 L0 776.5 Z" class="st17"></path>		<text x="15.49" y="762.25" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TensorFlow</text>		</g>	<g id="shape22-73" v:mid="22" v:groupcontext="shape" transform="translate(221.743,-699.601)">		<title>Sheet.22</title>		<desc>LiteRT</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="756.849" width="125" height="48.2965"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 737.2 A4.50009					 4.50009 -180 0 0 120.5 732.7 L4.5 732.7 A4.50009 4.50009 -180 0 0 -0 737.2 L0 776.5 Z" class="st18"></path>		<text x="35.99" y="762.25" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LiteRT</text>		</g>	<g id="shape23-76" v:mid="23" v:groupcontext="shape" transform="translate(397.742,-699.601)">		<title>Sheet.23</title>		<desc>ONNX</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="756.849" width="125" height="48.2965"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 737.2 A4.50009					 4.50009 -180 0 0 120.5 732.7 L4.5 732.7 A4.50009 4.50009 -180 0 0 -0 737.2 L0 776.5 Z" class="st18"></path>		<text x="36.5" y="762.25" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>ONNX</text>		</g>	<g id="shape24-79" v:mid="24" v:groupcontext="shape" transform="translate(573.742,-699.601)">		<title>Sheet.24</title>		<desc>PyTorch</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="756.849" width="125" height="48.2965"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 737.2 A4.50009					 4.50009 -180 0 0 120.5 732.7 L4.5 732.7 A4.50009 4.50009 -180 0 0 -0 737.2 L0 776.5 Z" class="st18"></path>		<text x="28.99" y="762.25" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PyTorch</text>		</g>	<g id="shape25-82" v:mid="25" v:groupcontext="shape" transform="translate(53.7428,-635.607)">		<title>Sheet.25</title>		<desc>.pb</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="768.922" width="125" height="24.1483"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 761.35 A4.50009					 4.50009 -180 0 0 120.5 756.85 L4.5 756.85 A4.50009 4.50009 -180 0 0 0 761.35 L0 776.5 Z" class="st18"></path>		<text x="49.99" y="774.32" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>.pb</text>		</g>	<g id="shape26-85" v:mid="26" v:groupcontext="shape" transform="translate(221.743,-635.607)">		<title>Sheet.26</title>		<desc>.tflite</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="768.922" width="125" height="24.1483"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 761.35 A4.50009					 4.50009 -180 0 0 120.5 756.85 L4.5 756.85 A4.50009 4.50009 -180 0 0 -0 761.35 L0 776.5 Z" class="st18"></path>		<text x="43.49" y="774.32" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>.tflite</text>		</g>	<g id="shape27-88" v:mid="27" v:groupcontext="shape" transform="translate(397.742,-633.797)">		<title>Sheet.27</title>		<desc>.onnx</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="767.414" width="125" height="27.1667"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 758.33 A4.50009					 4.50009 -180 0 0 120.5 753.83 L4.5 753.83 A4.50009 4.50009 -180 0 0 0 758.33 L0 776.5 Z" class="st18"></path>		<text x="40.48" y="772.81" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>.onnx</text>		</g>	<g id="shape28-91" v:mid="28" v:groupcontext="shape" transform="translate(573.742,-635.607)">		<title>Sheet.28</title>		<desc>.ts</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.4987" cy="768.922" width="125" height="24.1483"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L120.5 781 A4.50009 4.50009 -180 0 0 125 776.5 L125 761.35 A4.50009					 4.50009 -180 0 0 120.5 756.85 L4.5 756.85 A4.50009 4.50009 -180 0 0 -0 761.35 L0 776.5 Z" class="st18"></path>		<text x="53" y="774.32" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>.ts</text>		</g>	<g id="shape29-94" v:mid="29" v:groupcontext="shape" transform="translate(1066.82,81.3965) rotate(90)">		<title>Sheet.29</title>		<path d="M0 781 L29.6 781 L38.64 781" class="st2"></path>	</g>	<g id="shape30-99" v:mid="30" v:groupcontext="shape" transform="translate(1241.24,81.3965) rotate(90)">		<title>Sheet.30</title>		<path d="M0 781 L29.6 781 L38.64 781" class="st2"></path>	</g>	<g id="shape31-104" v:mid="31" v:groupcontext="shape" v:layermember="0" transform="translate(1157.24,548.036) rotate(90)">		<title>Sheet.31</title>		<path d="M0 781 L63.59 781 L72.63 781" class="st2"></path>	</g>	<g id="shape32-109" v:mid="32" v:groupcontext="shape" v:layermember="0" transform="translate(1382.92,548.602) rotate(90)">		<title>Sheet.32</title>		<path d="M0 781 L63.02 781 L72.06 781" class="st2"></path>	</g>	<g id="shape33-114" v:mid="33" v:groupcontext="shape" transform="translate(36.2428,-36.8733)">		<title>Sheet.33</title>		<desc>QTI</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="51.9987" cy="770.01" width="104" height="21.9749"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L99.5 781 A4.50009 4.50009 -180 0 0 104 776.5 L104 763.52 A4.50009					 4.50009 -180 0 0 99.5 759.02 L4.5 759.02 A4.50009 4.50009 -180 0 0 -0 763.52 L0 776.5 Z" class="st19"></path>		<text x="40.33" y="774.21" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QTI</text>		</g>	<g id="shape34-117" v:mid="34" v:groupcontext="shape" transform="translate(156.243,-36.8733)">		<title>Sheet.34</title>		<desc>Hardware</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="51.9987" cy="770.01" width="104" height="21.9749"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L99.5 781 A4.50009 4.50009 -180 0 0 104 776.5 L104 763.52 A4.50009					 4.50009 -180 0 0 99.5 759.02 L4.5 759.02 A4.50009 4.50009 -180 0 0 -0 763.52 L0 776.5 Z" class="st21"></path>		<text x="38" y="774.21" class="st22" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>硬件</text>		</g>	<g id="shape35-120" v:mid="35" v:groupcontext="shape" transform="translate(276.243,-36.8733)">		<title>Sheet.35</title>		<desc>OSS</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="51.9987" cy="770.01" width="104" height="21.9749"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L99.5 781 A4.50009 4.50009 -180 0 0 104 776.5 L104 763.52 A4.50009					 4.50009 -180 0 0 99.5 759.02 L4.5 759.02 A4.50009 4.50009 -180 0 0 -0 763.52 L0 776.5 Z" class="st18"></path>		<text x="37.22" y="774.21" class="st20" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>OSS</text>		</g>	<g id="shape36-123" v:mid="36" v:groupcontext="shape" transform="translate(396.242,-36.8733)">		<title>Sheet.36</title>		<desc>Third-party</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="51.9987" cy="770.01" width="104" height="21.9749"></v:textrect>		<path d="M0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L99.5 781 A4.50009 4.50009 -180 0 0 104 776.5 L104 763.52 A4.50009					 4.50009 -180 0 0 99.5 759.02 L4.5 759.02 A4.50009 4.50009 -180 0 0 -0 763.52 L0 776.5 Z" class="st23"></path>		<text x="31" y="774.21" class="st24" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>第三方</text>		</g>	<g id="shape37-126" v:mid="37" v:groupcontext="shape" transform="translate(36.2428,-458.847)">		<title>Sheet.37</title>		<desc>ML runtime frameworks, applications</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(7.99998,7.99998,7.99998,7.99998)" v:verticalalign="0"></v:textblock>		<v:textrect cx="339.998" cy="701.837" width="680" height="158.321"></v:textrect>		<path d="M-0 776.5 A4.50009 4.50009 -180 0 0 4.5 781 L675.5 781 A4.50009 4.50009 -180 0 0 680 776.5 L680 627.18 A4.50009					 4.50009 -180 0 0 675.5 622.68 L4.5 622.68 A4.50009 4.50009 -180 0 0 0 627.18 L0 776.5 Z" class="st4"></path>		<text x="8" y="648.23" class="st25" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>ML runtime <tspan class="st12">框架</tspan><tspan class="st12">、</tspan><tspan class="st12">应用程序</tspan></text>		</g>	<g id="shape38-132" v:mid="38" v:groupcontext="shape" transform="translate(53.3019,-473.847)">		<title>Sheet.38</title>		<desc>Qualcomm Neural Processing SDK</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.9396" cy="728.497" width="125.89" height="105"></v:textrect>		<path d="M-0 773 A8.00017 8.00017 -180 0 0 8 781 L117.88 781 A8.00017 8.00017 -180 0 0 125.88 773 L125.88 684 A8.00017					 8.00017 -180 0 0 117.88 676 L8 676 A8.00017 8.00017 -180 0 0 -0 684 L0 773 Z" class="st26"></path>		<text x="19.43" y="701.5" class="st11" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm <tspan x="36.43" dy="1.2em" class="st9">Neural </tspan><tspan x="18.42" dy="1.2em" class="st9">Processing </tspan><tspan x="44.43" dy="1.2em" class="st9">SDK</tspan></text>		</g>	<g id="shape39-138" v:mid="39" v:groupcontext="shape" transform="translate(221.361,-473.847)">		<title>Sheet.39</title>		<desc>LiteRT</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.9396" cy="728.497" width="125.89" height="105"></v:textrect>		<path d="M0 773 A8.00017 8.00017 -180 0 0 8 781 L117.88 781 A8.00017 8.00017 -180 0 0 125.88 773 L125.88 684 A8.00017					 8.00017 -180 0 0 117.88 676 L8 676 A8.00017 8.00017 -180 0 0 -0 684 L0 773 Z" class="st27"></path>		<text x="36.43" y="735.25" class="st11" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>LiteRT</text>		</g>	<g id="shape40-141" v:mid="40" v:groupcontext="shape" transform="translate(397.301,-473.847)">		<title>Sheet.40</title>		<desc>ONNX RT</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.9396" cy="728.497" width="125.89" height="105"></v:textrect>		<path d="M0 773 A8.00017 8.00017 -180 0 0 8 781 L117.88 781 A8.00017 8.00017 -180 0 0 125.88 773 L125.88 684 A8.00017					 8.00017 -180 0 0 117.88 676 L8 676 A8.00017 8.00017 -180 0 0 -0 684 L0 773 Z" class="st27"></path>		<text x="19.94" y="735.25" class="st11" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>ONNX  RT</text>		</g>	<g id="shape41-144" v:mid="41" v:groupcontext="shape" transform="translate(573.301,-473.847)">		<title>Sheet.41</title>		<desc>Other ML frameworks</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(3.99999,3.99999,3.99999,3.99999)"></v:textblock>		<v:textrect cx="62.9396" cy="728.497" width="125.89" height="105"></v:textrect>		<path d="M0 773 A8.00017 8.00017 -180 0 0 8 781 L117.88 781 A8.00017 8.00017 -180 0 0 125.88 773 L125.88 684 A8.00017					 8.00017 -180 0 0 117.88 676 L8 676 A8.00017 8.00017 -180 0 0 -0 684 L0 773 Z" class="st28"></path>		<text x="9.44" y="735.81" class="st10" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>其他<tspan class="st13"> </tspan><tspan class="st13">ML </tspan>框架</text>		</g>	<g id="shape42-149" v:mid="42" v:groupcontext="shape" v:layermember="0" transform="translate(930.913,548.435) rotate(90)">		<title>Sheet.42</title>		<path d="M0 781 L63.19 781 L72.23 781" class="st2"></path>	</g></g>
</svg>

### AI 硬件加速器

您可以使用以下硬件核心加速 AI 工作流：

- Qualcomm^®^ Hexagon™ Tensor Processor (HTP)：HTP（又称 NPU、DSP 或 HMX）适用于以低功耗、高性能运行 AI 工作负载。为优化性能，需要将预训练模型量化到任意一种支持的精度。
- Qualcomm^®^ Adreno™ GPU：适合以中等功率、中等性能运行 AI 工作负载。AI 工作负载可以通过 OpenCL 内核进行加速。您还可以使用 GPU 加速模型预处理和后处理。
- Qualcomm^®^ Kryo™ CPU：在 CPU 上使用 AI 推理，以其他硬件加速器为基准测试模型的准确性和性能。您还可以使用 CPU 运行模型预处理和后处理。

### AI 软件

从以下软件中选择以部署 AI 工作负载。除了 TFLite 模型外，您必须先使用 SDK 将预训练模型转换为可执行格式，然后才能运行它们。预训练模型（LiteRT 模型除外）在运行之前需要使用所选的 AI Stack SDK 转换为可执行格式。TFLite Delegate 允许您直接运行 LiteRT 模型。

- [Qualcomm Neural Processing Engine (SNPE)](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2)：一体化 SDK 提供 C、C++ 和 Java API，以支持异构计算、系统级配置并将 AI 工作负载引导至所有加速器核心。为您提供灵活性，例如核心间协作支持。
- [Qualcomm AI Engine Direct (QNN)](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-50)：底层、高度可定制的统一 API，使用单独的库来加速所有 AI 加速器核心上的 AI 模型。可用于直接定位特定的加速器核心或从流行的 runtime 委派工作负载，包括 Qualcomm Neural Processing Engine SDK、LiteRT（前身为 TensorFlow Lite）和 ONNX runtime。低级 SDK 提供更多功能和调试能力。
- [AI Model Efficiency Toolkit (AIMET)](https://quic.github.io/aimet-pages/releases/latest/index.html)：用于优化（压缩和量化）训练的神经网络模型的开源库。这是一个复杂的 SDK，旨在生成优化的量化模型。

## 后续步骤

- [AI Hub](https://aihub.qualcomm.com/get-started)
- [Qualcomm AI Model Efficiency Toolkit](https://quic.github.io/aimet-pages/releases/latest/index.html)
- [Qualcomm Neural Processing Engine](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/)
- [Qualcomm AI Engine Direct](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-50/)
- [AI Engine Direct: TFLite Delegate](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-50/tflite_delegate.html)
- [Qualcomm Intelligent Multimedia SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/example-applications.html)

Last Published: Oct 27, 2025

[Previous Topic
AI/ML 文档](https://docs.qualcomm.com/bundle/publicresource/80-70022-15SC/topics/home.md) [Next Topic
GStreamer ML 插件和 AI SDK API](https://docs.qualcomm.com/bundle/publicresource/80-70022-15SC/topics/interfaces.md)