切换版块
×
基础软件平台
PyTorch开发
TensorFlow开发
编解码及SDK开发
BANG语言与计算库
开发工具链
MagicMind开发
软件栈百科
云平台集成
硬件产品专区
MLU370系列AI加速卡
MLU270系列AI加速卡
MLU220系列AI加速产品
经验方案交流区
经验案例与实践分享
开发者服务
开发者活动
公告与版务
高校支持
《智能计算系统》
签到
版块
社区
文档
SDK下载
开发平台
官网首页
注册
登录
全部版块
基础软件平台
硬件产品专区
经验方案交流区
开发者服务
高校支持
发布新帖
登录/注册
LV.1
dao027
51
积分
1
赞
3
帖子
28
回复
0
收藏
TA的动态
TA的帖子
TA的回复
MLU220 请教yolov5s6 多batchsize推理速度问题
我的回复:#7QiuJiang回复是你的main函数所在文件。好的,了解~
0
MLU220 请教yolov5s6 多batchsize推理速度问题
我的回复:#3QiuJiang回复从标题看上去您这个是yolov5_v6 版本吗? 这个模型里面包含SiLU激活,当前框架不能很好地对他进行融合优化,可以尝试使用下面的 config.ini 对其进行优化:config.ini文件:[代码]然后在生成模型之前设置这个环境变量:[代码]特别注意ini文件需要与入口函数所在py文件在同一路径展开哇,感谢感谢!我用的确实是v6,试一下~“入口函数所在py文件”指的就是int8.pt转换.cambricon离线模型的py文件吗?
0
MLU220 请教yolov5s6 多batchsize推理速度问题
我的回复:#1QiuJiang回复你好,cnrtSyncQueue 是在执行板卡推理任务。1、关于延时成倍增长的问题:对于220来说,本身只有4个core,当 batch_size=1 core_number=4时,推理会占满4个core,当 batch_size=4 core_number=4时,推理同样是占满4个core,在计算核资源没有增加但输入成倍增加的情况下,对于yolov5来说,bs=4 的延时是bs=1的延时的三到四倍是正常现象。2、关于延时比较长的问题:想确认一下:1)你的延时是end2end的延时(包含读入图片、前处理、模型推理、后处理)还是模型推理的硬件计算时间? 2)cnrtSyncQueue 的延时是多少?展开好的,了解了,非常感谢!!目前统计的是单独推理的时间,除去预处理后处理时间、cpu和MLU设备之间的数据拷贝时间、cnrtInvokeRuntimeContext_V2的时间,即仅仅是cnrtSyncQueue这一步的前后时间差,因为发现推理中这一步耗时占比最多 auto t03=GetTickCount(); CNRT_CHECK(cnrtSyncQueue(detInitParam->queue)); auto t04=GetTickCount();batchsize=4的时候,这一步平均耗时约137msbatchsize=1的时候,这一步平均耗时约41ms
0
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#16shimin.an回复请教下,MLU220上部署yolov5s-6.0时,有没有遇到流程正常未报错,但是离线模型无法生成的情况?quantized_net = torch_mlu.core.mlu_quantize.quantize_dynamic_mlu(model)state_dict = torch.load("./yolov5s_int8.pt") quantized_net.load_state_dict(state_dict, strict=False) ct.set_core_version('MLU220') quantized_net.eval().float()quantized_net.to(ct.mlu_device()) if opt.jit: print("### jit") ct.save_as_cambricon('yolov5s_int8_1_4') torch.set_grad_enabled(False) ct.set_core_number(4) trace_input = torch.randn(1, 3, 640, 640, dtype=torch.float).to(ct.mlu_device()) net = torch.jit.trace(quantized_net, trace_input, check_trace = False) #net(trace_input) ct.save_as_cambricon("")展开我这边没有遇到这个问题,代码就多了一行:ct.set_device(-1) # 没有mlu设备使用cpu转换
1
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#13dao027回复大佬再请教个问题[图片]我在寒武纪pytorch环境中转离线模型时使用了batchsize=2,如下:[代码]但是生成的离线模型放到板子上使用c++推理的时候,cnrt初始化读取到的batchsize是1,不知道问题出在哪里了。。。(cnrt初始化c++代码部分如下)[代码]以上代码在ubuntu18编译后放到盒子上运行,最后一行我打印出来的detInitParam->batch_size是1展开。。。解决了,没事啦。。。jit.trace后面加一句推理trace_input就好了。。。
1
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#13dao027回复大佬再请教个问题[图片]我在寒武纪pytorch环境中转离线模型时使用了batchsize=2,如下:[代码]但是生成的离线模型放到板子上使用c++推理的时候,cnrt初始化读取到的batchsize是1,不知道问题出在哪里了。。。(cnrt初始化c++代码部分如下)[代码]以上代码在ubuntu18编译后放到盒子上运行,最后一行我打印出来的detInitParam->batch_size是1展开运行python代码后,这里和cambricon离线模型一起生成的twins文件如下(好像生成的时候就是batch=1):
1
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#11QiuJiang回复你好,后处理封装成了一个大算子([代码])这个算子当前是集成在cnplugin库中的,该模块目前没有开放源码。展开大佬再请教个问题我在寒武纪pytorch环境中转离线模型时使用了batchsize=2,如下:if opt.jit: if opt.save: ct.save_as_cambricon('xxxx') torch.set_grad_enabled(False) ct.set_core_number(4) trace_input = torch.randn(2, 3, 640, 640, dtype=torch.float) trace_input = trace_input.to(ct.mlu_device()) quantized_net = torch.jit.trace(quantized_net, trace_input, check_trace = False) ct.save_as_cambricon('')但是生成的离线模型放到板子上使用c++推理的时候,cnrt初始化读取到的batchsize是1,不知道问题出在哪里了。。。(cnrt初始化c++代码部分如下)//获取输入的维度信息 NHWC CNRT_CHECK(cnrtGetInputDataShape(&detInitParam->dimValues,&detInitParam->dimNum,i,detInitParam->function)); std::printf("input shape:\\n"); for(int y=0;y<detInitParam->dimNum;y++) { std::printf("%d ",detInitParam->dimValues[y]); } std::printf("\\n"); detInitParam->input_width=detInitParam->dimValues[2]; detInitParam->input_height=detInitParam->dimValues[1]; detInitParam->batch_size=detInitParam->dimValues[0];以上代码在ubuntu18编译后放到盒子上运行,最后一行我打印出来的detInitParam->batch_size是1
1
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#11QiuJiang回复你好,后处理封装成了一个大算子([代码])这个算子当前是集成在cnplugin库中的,该模块目前没有开放源码。展开好的,非常感谢~~
1
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#5QiuJiang回复问题3:int8模型生成离线模型时可以用随机数据作为输入。详细资料可以参考pytorch使用手册:https://www.cambricon.com/docs/pytorch/pytorch_11_tools/index.html展开还有个问题想请教一下就是如果想让板子上推理离线模型的时候使用多batch(比如batchsize=4),是需要在转cambricon模型的python代码里,将您这里提到的随机数据设置为4维就可以了吗?是不是如下就可以了:trace_input = torch.randn(4, 3, 640, 640, dtype=torch.float) model = torch.jit.trace(model, trace_input, check_trace = False)最后的check_trace不知道该设置为True还是False
1
MLU220 请教yolov5s6 量化问题及部署推理问题
我的回复:#2xukefang回复另外你转的yolov5s6版本的离线模型可以推理得到框的数量吗?在板子上利用cnrt推理可以根据结果计算得到,具体可以参考这个repo(我也还在摸索):https://github.com/CambriconECO/Pytorch_Yolov5_Inference/blob/eb36b68e5a4ee3fe23c45ec545bef68dced452bb/offline/yolov5_offline_simple_demo/src/processor.cpp 在line 189
1
上一页
1
2
下一页
Github
开发平台
文档中心
新手必读
官方微信
版权所有 © 2022 寒武纪 Cambricon.com 备案/许可证号:
京ICP备17003415号-1
关闭