当前位置: 首页 > news >正文

中企动力唐山网站建设网站建设基础心得

中企动力唐山网站建设,网站建设基础心得,企业所得税会计分录,网站开发师贴吧一、引言 多模型推理场景中,可能会存在谁先谁后,甚至 A 模型任务正在运行,但需要被 B 模型任务抢占的情况。针对这种情况,地平线提供了模型优先级控制策略。 二、优先级与抢占介绍 此功能仅支持在开发板端实现,x86 模拟…

一、引言

多模型推理场景中,可能会存在谁先谁后,甚至 A 模型任务正在运行,但需要被 B 模型任务抢占的情况。针对这种情况,地平线提供了模型优先级控制策略。

二、优先级与抢占介绍

此功能仅支持在开发板端实现,x86 模拟器不支持此功能。

2.1 理论简介

征程 6 计算平台 BPU 硬件本身没有任务抢占功能,对于每一个推理任务,一旦它进到 BPU 计算后,在该任务执行完之前,会一直占用 BPU,其他任务只能排队等待。

此时容易出现 BPU 计算资源被一个大模型任务独占,进而影响其他高优先级模型任务的执行。针对这种问题,工具链开发了基于软件的方式 实现的 BPU 资源抢占功能。

需要关注:

  1. hbm 模型在 BPU 上推理时,它表现为 1 个或者多个 function-call 的调用,其中 function-call 是 BPU 的执行粒度,多个 function-call 调用任务 在 BPU 硬件队列上按序进行调度,当一个模型所有的 function-call 都执行完成,那么一个模型推理任务也就执行完成了。
  2. BPU 模型任务抢占粒度设计为 function-call,即 BPU 执行完一个 function-call 之后,暂时挂起当前模型,然后切入执行另外一个模型,当新模型执行完成之后,再恢复原来模型的状态继续运行。 但是这里存在两个问题,第一是编译出来的 hbm 模型 function-call 都是 merge 在一起的,此时模型只有一个大(长)的 function-call,它无法被抢占;第二是每个 function-call 的执行时间比较长或者不固定,会造成抢占时机不确定,影响抢占效果。

为了解决上述两个问题,地平线进行了一些处理,下面介绍其操作方法:

  1. 如果您使用 QAT 方案:在 模型编译 阶段,需要在 compile 接口中添加 max_time_per_fc 选项,用于设置每个 function call 的执行时间(以微秒为单位),默认取值为 0 (即不做限制)。您可以自行设置这个选项,控制 hbm 上板运行时每个 function-call 的执行时间。假设某 hbm 总执行时间为 10ms,当模型编译时 将 max_time_per_fc 设置为 1000,则这个 hbm 将会从默认的 1 个 10ms function-call 被拆分成 10 个 1ms function-call。
  2. 如果您使用 PTQ 方案,在 模型转换 阶段,需要在 YAML 文件 编译器相关参数( compiler_parameters )中,添加 max_time_per_fc 参数。

2.2 UCP 推理 API

板端推理 C++代码:需要在任务提交时设置 hbUCPSchedParam.priority 参数。

在这里插入图片描述
在这里插入图片描述

优先级按照是否支持抢占,可以分为:高优抢占优先级任务、普通优先级任务。

  1. 配置 infer 任务优先级小于 254,则为普通任务,不可抢占其他任务。
  2. 配置 infer 任务优先级等于 254,则为高优抢占任务,可支持抢占普通任务。
  3. 配置 infer 任务优先级等于 255,则为 urgent 抢占任务,可抢占普通任务和 254 抢占任务。

注意:

  • 抢占(254/255)是系统级别的,即当前进程提交的抢占任务不仅能对进程内的普通任务,也可对其他进程的普通任务实施抢占行为。抢占不需要考虑 中继 relay 或 直连 direct 模式。
  • 优先级(0~253)在进程内可以按照优先级排序,跨进程优先级排序,需要启动中继模式。

2.3 工作模式

UCP 框架支持两种主要工作模式:直连模式和中继模式。系统默认运行在直连模式下。QNX 操作系统和 x86 仿真不支持中继模式。

中继模式下,支持多进程任务的统一调度,使用中继模式前,首先启动 ucp_service,service 文件位于 deps_aarch64/ucp/bin/service/ 路径下,并通过设置环境变量 HB_UCP_ENABLE_RELAY_MODE=true 来启用 Relay 模式,使得用户进程可以通过中继服务进行通信。

无论是直连模式还是中继模式,UCP 接口的调用方式保持一致,不会对编程逻辑产生影响。您可以根据实际需求灵活选择这两种模式,以满足系统在性能和灵活性方面的要求。

三、抢占示例介绍

示例 UCP trace 图如下:
在这里插入图片描述

  • 上面的抢占模型 A,单独运行是 1.9ms
  • 下面的被抢占的模型 B,单独运行 17.1ms,且模型 B 设置的 Function call 是 1000us=1ms

分析如下:

  1. 模型 B 开启 Function call=1000 编译,在未发生被抢占情况时,latency 与不开启 fc 一致。
  2. 抢占模型 A,在任务提交抢占时,会等待 1~2ms,再开始执行模型 A(因此模型 A wait 大约 3~4ms),在等待的 1~2ms 中,模型 B 继续执行,因此模型 B 相比于单独运行,wait 只会多~6ms≈1.9*3(3 次模型 A 执行时间)。
  3. 模型 B 运行最后一个 function call 期间,不能被抢占,所以上面 最后那个 抢占模型 A 多等了一会,变成~2.1ms。

在 BPU Trace 中,可以看到更具体的 BPU 抢占与优先级详情,示例如下

在这里插入图片描述

到更具体的 BPU 抢占与优先级详情,示例如下

[外链图片转存中…(img-AEuVyAuw-1752764429000)]

图中:三个模型设置了三个优先级,其中 petr 最低优,且是分段可抢占的,googlenet 的 task_priority=255,resnet50 的 task_priority=254。

http://www.dtcms.com/a/408575.html

相关文章:

  • 告诉搜索引擎网站建设中在线logo设计免费
  • 西部中大建设集团网站口碑营销案例简短
  • 东莞樟木头网站建设杭州萧山做网站公司
  • 外贸网站 英文做网站用vue还是用jquery
  • 个人资讯网站建设wordpress 主题 移动
  • 【领域驱动设计】 领域驱动设计(DDD)概述、核心作用与学习线路
  • Day29_【深度学习(8)—循环神经网络RNN】
  • 自己建一个外贸网站企业网站托管外包怎么做
  • 成都 网站设计上海公司注册收费
  • 建设网上购物网站淘宝可做的团购网站
  • Python实现星雀优化算法(Nutcracker Optimizer Algorithm, NOA) (附完整代码)
  • 织梦cms手机网站备案成功后多久可以打开网站
  • 外贸网站建设渠道软件开发工程师就业前景
  • 做网站阿里云买哪个服务器好点微信公众号怎么创建第二个
  • 《MyBatis变形记:当SQL遇上“智能管家“》
  • 普宁网站建设在线p图
  • 网站请及时续费西湖南昌网站建设公司
  • 招标网站免费怎么区别做pc端和手机端网站
  • 制作商务网站wordpress 添加子菜单
  • 上海网站建设选缘魁-企查滕州做网站比较好的网络公司
  • 武夷山景区网站建设特点临沧网站建设临沧
  • 做海报哪个网站好thinkphp5来做网站吗
  • 河北雄安新区规划建设局网站宜选科技就是帮人做网站
  • 焦作网站建设兼职洛阳市做网站贴吧
  • 移动网站开发书籍江苏扬州建设工程信息网站
  • 网站如何适应屏幕现在pc端网站开发用的什么技术
  • 网站制作公司很好 乐云践新快速做效果图的网站叫什么
  • 黄石市建设局网站湖南众诚建设 官方网站
  • 自己做装修网站需要多少钱上海网址大全
  • [嵌入式embed]Keil5-STM32F103C8T6(江协科技)+移植FreeRTOS v9模版项目