QNN:基于QNN+example重构之后的yolov8det部署

QNN是高通发布的神经网络推理引擎,是SNPE的升级版,其主要功能是:

完成从Pytorch/TensorFlow/Keras/Onnx等神经网络框架到高通计算平台的模型转换;
完成模型的低比特量化(int8),使其能够运行在高通神经网络芯片上;
提供测试工具(qnn-net-run),可以运行网络并保存输出;
提供测试工具(qnn-profile-viewer),可以进行FLOPS、参数量、每一层运行时间等分析;

Qualcomm® AI Engine Direct 架构采用模块化设计,可实现软件中的清晰分离 对于不同的硬件核心/加速器,例如 CPU、GPU 和 DSP,指定为 后端。了解有关 Qualcomm® 的更多信息AI Engine Direct后端此处。

针对不同硬件核心/加速器的 Qualcomm® AI Engine Direct 后端被编译为 与 SDK 一起打包的各个特定于核心的库。

跨 IP 核的统一 API

Qualcomm® 的主要亮点之一AI Engine Direct 是它提供了统一的 API 来委托操作 例如跨所有硬件加速器后端的图形创建和执行。这允许用户 将 Qualcomm® AI Engine Direct 视为硬件抽象 API,并将应用程序轻松移植到不同的内核。

正确的抽象级别

Qualcomm® AI Engine Direct API 旨在支持高效的执行模型 具有内部处理的图形优化等功能。 但与此同时,它遗漏了更广泛的功能,例如模型解析和 网络分区到更高级别的框架。

组合的灵活性

借助 Qualcomm® AI Engine Direct,用户可以在后端提供的功能之间进行适当的权衡 以及库大小和内存利用率方面的占用空间。这提供了以下能力: 构建 Qualcomm® AI Engine Direct 操作包,仅包含服务一组模型所需的操作 以用例为目标1。有了这个,用户可以创建灵活的应用程序 内存占用低,适合各种硬件产品。

可扩展的运营支持

Qualcomm® AI Engine Direct 还为客户集成自定义操作以无缝协作提供支持 内置操作。

提高执行性能

凭借优化的网络加载和异步执行支持 Qualcomm®AI Engine Direct 可提供高度 机器学习框架和应用程序加载和执行网络图的高效接口 他们想要的硬件加速器。。

我们主要将QNN重新封装一下完成合适与自己的代码结构与逻辑。因为本身的QNN demo看着太复杂了。

重构之后如下图所示:

输出结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超长二进制利用Integer转换

1.Integer缺点 目前测试Integer只能一次性转4*7位二进制数,也就是7位16进制,故进行改进 2.改进 操作:每四位二进制一转换,以免到上限报错 注解格式:序号(代码顺序)解释 public class Main {…

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(2)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(1) 7.1 数据链路层的组成结构 数据链路层使用ACK/NAK协议发送和接收TLP,由发送部件和接收部件组成。其中,发送部件由…

Java算法之堆排序(Heap Sort)

堆排序简介 堆排序是一种基于比较的排序算法,它使用二叉堆数据结构来实现。二叉堆是一种特殊的完全二叉树,其中每个父节点的键值都大于(或等于)其子节点的键值(大顶堆),或者小于(或…

docker在宿主机上最多可以创建多少个容器?

docker在宿主机上最多可以创建多少个容器? A. 1000 B. 和宿主机的cpu/memory 资源有关系 C. 不一定 选择C Docker 容器的数量受到宿主机的资源限制,包括CPU、内存和存储空间等。具体的容器数量取决于宿主机的硬件配置和资源使用情况。没有固定的数量限…

Springboot里集成Mybatis-plus、ClickHouse

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 Springboot里集成Mybati…

基于Java+SpringBoot+Vue的汽车销售网站

基于JavaSpringBootVue的汽车销售网站 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅 某信 gzh 搜索【智能编程小助手】获取项…

【大模型】llama系列模型基础

前言:llama基于transformer架构,与GPT相似,只用了transformer的解码器部分。本文主要是关于llama,llama2和llama3的结构解读。 目录 1. llama1.1 整体结构1.2 RoPE1.3 SwiGLU 激活函数 2. llama22.2 GQA架构2.3 RLHF 3. llama3参考…

javascript用while语句计算1-100的和

while语句计算1-100的和的思路是 定义一个变量a1,变量b0 while(a<100) { bba或者ba a } 最后是输出b <html><head><meta charset"UTF-8"><title></title></head><body><script>let i1let a0while(i<1…

Springboot中使用Elasticsearch(部署+使用+讲解 最完整)

目录 引言 一、docker中安装Elasticsearch 1、创建es专有的网络 2、开放端口 3、在es-net网络上安装es和kibana 4、可能出现的问题 5、测试 6、安装IK分词器 7、测试IK分词器 二、结合业务实战 1、准备依赖 2、配置yml 3、读取yml配置 4、准备es配置类 5、编写测…

Leetcode面试经典150题-136.只出现一次的数字

解法都在代码里&#xff0c;不懂就留言或者私信 这个题不知道为啥会考&#xff0c;过于简单了&#xff0c;我解题写注释用了两分钟不到&#xff0c;5行代码。。。 class Solution {public int singleNumber(int[] nums) {/**这个题目确实时间的题&#xff0c;根据位运算法则我…

依赖倒置原则详细介绍

一.概念 依赖倒置原则(Dependency Inversion Principle, DIP)是SOLID五大设计原则之一,它是面向对象设计中非常重要的一个原则。它主要包含以下两个方面: 高层模块不应该依赖于低层模块,两者都应该依赖于抽象。 这意味着高层模块(上层)不应该直接依赖于低层模块(下层)的实现…

创建表与删除表

创建表 使用DDL语句创建表 CREATE TABLE 表名(列名 类型,列名 类型......); 示例&#xff1a; 创建一个employees表包含雇员ID&#xff0c;雇员名字&#xff0c;雇员薪水。 create table employees(employee_id int,employee_name varchar(10),salary float(8,2)); 查看已…

斗破C++编程入门系列之十九:C++程序设计必知:多文件结构和编译预处理命令(九星斗者)

斗破C目录&#xff1a; 斗破C编程入门系列之前言&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之二&#xff1a;Qt的使用介绍&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之三&#xff1a;数据结构&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之…

ctfshow之web55~web57(无字母的rce)

目录 web55 思路一&#xff1a; 思路二&#xff1a; web56 web57 本系列主要针对无字母rce或无字母无数字rce 声明&#xff1a;本章内容是引荐几位师傅的博客&#xff0c;然后根据自己的理解编写而成。 web55 if(isset($_GET[c])){$c$_GET[c];if(!preg_match("/\…

gin 通过 OpenTelemetry 实现链路追踪

OpenTelemetry 可用于跟踪 Gin 应用程序的性能问题和错误。 OpenTelemetry 是 Cloud Native Computing Foundation (CNCF) 下的一个开源项目,旨在标准化遥测数据的生成和收集。遥测数据包括日志、指标和跟踪。 Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。它具有类似 Mar…

乐凡三防:工业界的硬核产品——重新定义三防平板的极限

在工业4.0的浪潮中&#xff0c;科技与制造业的深度融合催生了一系列高性能、高耐用的智能产品。乐凡三防平板&#xff0c;作为工业界的新宠&#xff0c;正以其卓越的防护性能和强大的功能&#xff0c;重新定义了三防平板的极限&#xff0c;成为硬核科技的代表。 硬核防护&#…

GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解

GD32F4xx—RTC初始化设置及闹钟方式实现秒中断讲解 1、下载链接:源码工程 一、概述 GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置。RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BC…

大连网站建设手机网页页面设计

在现代社会&#xff0c;随着智能手机的普及&#xff0c;越来越多的用户选择通过手机访问网站&#xff0c;这使得移动端网页设计的重要性日益凸显。大连作为一个经济和文化中心&#xff0c;网站建设行业也在不断发展。针对大连的网站建设&#xff0c;手机网页页面设计需要特别注…

【Java设计模式】事件溯源模式

文章目录 【Java设计模式】事件溯源模式一、概述二、别名三、事件溯源设计模式的意图四、通过实际示例详细解释事件溯源模式五、Java中事件溯源模式的编程示例六、何时在Java中使用事件溯源模式七、事件溯源模式在Java中的实际应用八、事件溯源模式的好处和权衡九、源码下载 【…

如何清理Linux旧内核并设置默认内核版本

文章目录 1. 引言2. 检查和清理旧内核2.1 检查 /boot 目录中的残留文件2.2 手动删除与旧内核相关的文件2.3 更新 GRUB 配置2.4 清理旧内核包&#xff08;可选&#xff09; 3. 安装并保留特定内核版本3.1 安装内核版本 5.15.0-1193.2 删除其他不需要的内核版本 4. 设置默认内核版…