×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

magicmind 的任务下发方式 chen18468471632023-11-29 09:27:44 回复 查看 技术答疑 社区交流
magicmind 的任务下发方式
分享到:

【寒武纪硬件产品型号】必填*:MLU370-x8


【MagicMind版本号】必填*: magicmind v1.5.0


【操作步骤】选填:

  1.   参考 Resnet50 QPS 为什么在 MLU370-x8上 只能达到 1200? - 寒武纪软件开发平台 - 开发者论坛 (cambricon.com)  生成magicmind 模型

  2. 模型推理脚本如下

  3. import os
    import numpy as np
    import magicmind.python.runtime as mm
    import sys
    import torch 
    import onnxruntime as ort
    '''
    magicmind 执行一次ChatGLM-6B 推理
    
    '''
    
    
    # sys.path.append("..")
    
    sys.path.append("magicmind/utils")
    sys.path.append("magicmind/python_common")
    sys.path.append("magicmind/cpp_common")
    
    from utils import Record
    from mm_runner import MMRunner
    
    
    torch.manual_seed(666)
    
    def prepare_inputs_for_generation():
        # np.random.seed(1)
        input = np.ones((16,3,224,224),dtype=np.float32)
       
        return [ input ]
    
    
    
       
    resnet50_int8_model_path = "resnet50-v1-12_qint8_mixed_float32.magicmind"
    
    model_inputs = prepare_inputs_for_generation()
    
    resnet50_int8 = MMRunner(resnet50_int8_model_path, device_id=0)
    # 1, 8, 32, 64, 188
    import time
    start = time.time()
    for i in range(1):
        output = resnet50_int8(model_inputs)
    end = time.time()
    
    print("time consume is ",end-start,"s")
    # print(output)
  4. cnperf 命令如下

    cnperf-cli record python magicmind_resnet50_int8_demo.py

    cnperf-cli timechart

  5. cnperf 采集结果如下

  6. 从 cnperf    采集到的timechart 结果来看,模型执行一次推理时的任务下发方式是由host侧做调度管理的。

    我的问题如下:

    1. 为什么任务下发要由 Host 侧进行?通过Host侧做任务下发,岂不是会受限于Host侧的CPU的性能。

    2. 这种任务下发方式是否是导致  Resnet50 QPS 为什么在 MLU370-x8上 只能达到 1200? - 寒武纪软件开发平台 - 开发者论坛 (cambricon.com) 这个帖子中 QPS 太差的直接原因?

    image.png



版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭