模型推理加速与部署梳理

推理加速与部署

文章目录

    • 推理加速与部署
      • 服务级别的推理加速
      • 模型级别的推理加速
        • 量化
        • 图优化
      • kernel级别的推理加速
        • GPU常见优化方式
        • 特殊Kernel的优化方式
      • 推理框架
        • 可供学习的框架

  • 最近学的有点杂,梳理一下我的个人体系,接下来我会花一定时间梳理下面这些东西:

  • 我理解的推理加速分为三个层次:

    • 服务级别的推理加速
    • 模型级别的推理加速
    • kernel级别的推理加速
  • 目前推理部署框架/AI-Compiler解决的问题:

    • 对于多种上游模型格式,需要做统一的加速,并且部署到下游多种目标设备上

服务级别的推理加速

  • 目前我理解的服务级别的推理加速就是将加速好的模型(单模型推理加速)封装成一个服务,在整体的服务流程中,作为一个子节点存在,而此处的加速更多被看作一个服务调度的加速问题
    • 有点类似于Java后端中的请求处理,多个模型之间如何调度能充分利用带宽和算力这么一个问题
    • 或者分布式推理归于这一类?待学习
    • TODO

模型级别的推理加速

  • 目前我的理解是对单模型进行加速,当然这个层次包括了下面kernel级别的推理加速,也包括其他的推理加速手段,比如量化,图优化等
量化
  • TODO
图优化
  • TODO

kernel级别的推理加速

  • 简单理解就是对kernel进行加速,在算力与访存一定的情况下,对某个kernel的计算存在一个理论峰值,kernel加速就是通过某种方法逼近这个极限,可以是搜出来的(比如TVM schedule),也可以是手搓kernel
  • 对于性能要求没那么极限的kernel,可以用搜索,但是搜索的局限性就在于搜索空间/模式是人为定义的,一旦搜索空间不包括某种有效且特殊的优化方式,就必定搜不出来(就比如self-attention的gemm softmax gemm计算模式,schedule是一定搜不出flash attention的计算模式的),这时候就需要用到手动优化kernel了,目前业界可能更多是对kernel的手动针对性优化。
GPU常见优化方式
  • TODO
特殊Kernel的优化方式
  • Flash-Attention(2)
  • TODO

推理框架

  • TVM
  • XLA
  • Poros
可供学习的框架
  • kuiperinfer
  • nndeploy

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

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

相关文章

【大数据】-- flink kubernetes operator 入门与实践

课程链接:https://edu.csdn.net/course/detail/38831 目录 课程链接:https://edu.csdn.net/course/detail/38831https://edu.csdn.net/course/detail/38831 一、你将收获

[论文笔记]RetroMAE

引言 RetroMAE,中文题目为 通过掩码自编码器预训练面向检索的语言模型。 尽管现在已经在许多重要的自然语言处理任务上进行了预训练,但对于密集检索来说,仍然需要探索有效的预训练策略。 本篇工作,作者提出RetroMAE,一个新的基于掩码自编码器(Masked Auto-Encoder,MAE)…

渲染流程之光栅化阶段及像素处理阶段

Rasterization 光栅化阶段:图元转换为像素,生成片段。 定义 把物体的数学描述以及与物体相关的信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色这个过程成为光栅化 主要工作: 将得到的新图元(添加额外的Virtex和计算图…

【leetcode】17.04 消失的数字

目录 1. 思路2. 代码 题目链接:leetcode 17.04.消失的数字 题目描述: 1. 思路 要求算法复杂度为O(n),有两种方式: (1)利用异或交换律 与nums所有元素异或一遍;与0-n的值异或,n…

开源 | 30余套STM32单片机、嵌入式Linux、物联网、人工智能项目(开发板+教程+视频)

文末免费领取! 30余套综合项目案例 STM32单片机、嵌入式、物联网、人工智能 项目文档源码视频 高校教学、学生毕设、个人项目练手 嵌入式实战项目推荐 15个嵌入式LinuxQt综合应用项目,涉及家居、医疗、农业等多种应用领域,案例中使用了嵌…

leetcode 2916. 子数组不同元素数目的平方和 II(区间更新 + 区间查询 线段树第二个板子 双闭区间 避开0)

描述 偷了一个线段树板子 不知道为啥要避开0 然后这里的更新和查找都是用双闭区间的 ac code class SegmentTree:def __init__(self, n):self.n n self.B1 [0]*n self.B2 [0]*n def add(self, b, idx, x):N self.n while idx < N:b[idx] xidx idx & -idxdef ra…

C++分治算法-------木材加工

木材厂有n根原木&#xff0c;现在想把这些木头切割成 k 段长度均为 l 的小段木头&#xff08;木头有可能有剩余&#xff09;。 当然&#xff0c;我们希望得到的小段木头越长越好&#xff0c;请求出的最大值。 木头长度的单位是cm&#xff0c;原木的长度都是正整数&#xff0c…

uniapp阻止冒泡的方法,点击事件嵌套点击事件,怎么阻止同时触发

uniapp阻止冒泡的方法 当我们遇到点击事件嵌套点击事件的时候&#xff0c;点击里边的事件&#xff0c;外边的也会跟着触发该怎么办&#xff1f; 起初我尝试用了css里的修改z-index属性的方法&#xff0c;把里边的<view>标签放在上边&#xff0c;结果两个事件还是同时触发…

Linux高级命令(扩展)二

一、Linux下用户管理 1、用户概念以及基本作用 用户&#xff1a;指的是Linux操作系统中用于管理系统或者服务的人 一问&#xff1a;管理系统到底在管理什么&#xff1f; 答&#xff1a;Linux下一切皆文件&#xff0c;所以用户管理的是相应的文件 二问&#xff1a;如何管理…

【自用】vmware workstation建立主机window与虚拟机ubuntu之间的共享文件夹

1.在windows中建立1个文件夹 在vmware中设置为共享文件夹 参考博文&#xff1a; https://zhuanlan.zhihu.com/p/650638983 2.解决&#xff1a; &#xff08;1&#xff09;fuse: mountpoint is not empty &#xff08;2&#xff09;普通用户也能使用共享目录 参考博文&#x…

大模型 其他方案的进度

Llama2 1、中文提问&#xff0c;英文的回答&#xff0c;对于中文不友好 2、网上还没有看到很详细的微调教程 3、虽然Llama2的预训练数据相对于第一代LLaMA扩大了一倍&#xff0c;但是中文预训练数据的比例依然非常少&#xff0c;仅占0.13%&#xff0c;这也导致了原始Llama2的中…

多模态大模型最全综述

由微软7位华人研究员撰写--多模态基础模型已经从专用走向通用 它从目前已经完善的和还处于最前沿的两类多模态大模型研究方向出发&#xff0c;全面总结了五个具体研究主题&#xff1a; 视觉理解视觉生成统一视觉模型LLM加持的多模态大模型多模态agent 1、谁适合阅读这份综述&…

Vue3问题:如何实现组件拖拽实时预览功能?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约3000字&#xff0c;整篇阅读大约需要5分钟。 本文主要内容分三部分&#xff0c;第一部分是需求分析&#xff0c;第二部分是实现步骤&#xff0c;第三部分是问题详解。 …

FreeSWITCH mrcp-v2小记

最近得知有人受mrcp的困扰&#xff0c;于是写了这篇小文&#xff0c;希望能有所帮助 FreeSWITCH版本选择 目前当然选择1.10.10&#xff0c;不建议老版本&#xff0c;差别在于老版本用到的libmrcp比较旧&#xff0c;是1.2版本&#xff0c;bug比较多&#xff0c;有时会crash&am…

运维基础-Docker容器命令部署

Docker基础知识 安装问题-有podmanCentos8使用yum install docker -y时&#xff0c;默认安装的是podman-docker软件安装docker yum list installed | grep dockeryum -y remove xxxxDocker安装配置下载安装docker启动docker&#xff0c;并设置开机启动下载所需镜像 centos镜像进…

【报错】错误 C1004 :发现意外的文件尾

文章目录 情景在现出错原因解决方案问题解决 情景在现 出错原因 这个错误通常是由于您在源文件中漏写了某些括号或者分号&#xff0c;导致编译器在处理到文件末尾时发现没有遇到预期的符号。 解决方案 解决这个错误的方法是&#xff0c;打开您的源文件&#xff0c;仔细检查是否…

EMC Unity存储系统如何查看SSD的使用寿命

为什么要写这个博客&#xff1f; 客户对老的EMC unity的存储系统要扩容&#xff0c;如何确定SSD磁盘是全新的还是拆机二手的&#xff1f;很多时候客户还有一个奇葩的要求&#xff0c;就是要和5年前的磁盘PN一致&#xff0c;甚至要求固件版本一致&#xff0c;最关键的还要求是全…

docker 部署和supervisord管理守护进程的区别

docker 部署和supervisord管理守护进程的区别 Docker 部署和 supervisord 管理守护进程是两个不同的概念&#xff0c;但它们可以结合使用以确保在 Docker 容器内部运行的应用程序的可靠性和稳定性。下面是它们之间的主要区别&#xff1a; Docker 部署&#xff1a; 容器化部署&…

大数据(十):数据可视化(二)

专栏介绍 结合自身经验和内部资料总结的Python教程&#xff0c;每天3-5章&#xff0c;最短1个月就能全方位的完成Python的学习并进行实战开发&#xff0c;学完了定能成为大佬&#xff01;加油吧&#xff01;卷起来&#xff01; 全部文章请访问专栏&#xff1a;《Python全栈教…

Redis Sentinel 哨兵模式

Sentinel 哨兵模式 Redis Sentinel 官网 Redis 的 Sentinel 文档 -- Redis中国用户组&#xff08;CRUG&#xff09; Sentinel Redis 命令参考&#xff08;红色&#xff09; Sentinel 通过监控的方式获取主机的工作状态是否正常&#xff0c;当主机发生故障时&#xff0c; Senti…