model_analyzer工具报错Model Xload failed: [StatusCode.INTERNAL] failed to load X,no version is available

model_analyzer是triton-inference-server的一个用于自动化评估模型各种性能的CLI小工具。官网地址:https://github.com/triton-inference-server/model_analyzer

采用官网指定的方式构建了镜像,同组小朋友测试性能遇到问题,帮忙解决之后记录:
启动脚本如下:

model-analyzer profile --model-repository ./hjh_pose_fall_detect 
			--profile-models topdown_pose 
			--run-config-search-max-concurrency 4 
			--run-config-search-min-concurrency 2 
			--run-config-search-max-instance-count 3 
			--run-config-search-min-instance-count 1  
			--run-config-search-max-model-batch-size 4 
			--run-config-search-min-model-batch-size 1 
			-s ./model_analyzer/topdown_pose 
			--output-model-repository-path  ./model_analyzer/topdown_pose -
			-override-output-model-repository

模型是onnx模型
运行CLI过程中报错如下:

[Model Analyzer] Initiliazing GPUDevice handles
[Model Analyzer] Using GPU 0 Tesla T4 with UUID GPU-11b083f9-ae75-2b91-79bb-ae66ce621757
[Model Analyzer] WARNING: Overriding the output model repo path "./model_analyzer/topdown_pose"
[Model Analyzer] Starting a local Triton Server
[Model Analyzer] No checkpoint file found, starting a fresh run.
[Model Analyzer] Profiling server only metrics...
[Model Analyzer] 
[Model Analyzer] Creating model config: topdown_pose_config_default
[Model Analyzer] 
[Model Analyzer] Profiling topdown_pose_config_default: client batch size=1, concurrency=2
[Model Analyzer] Profiling topdown_pose_config_default: client batch size=1, concurrency=4
[Model Analyzer] 
[Model Analyzer] Creating model config: topdown_pose_config_0
[Model Analyzer]   Enabling dynamic_batching
[Model Analyzer]   Setting instance_group to [{'count': 1, 'kind': 'KIND_GPU'}]
[Model Analyzer]   Setting max_batch_size to 1
[Model Analyzer] 
[Model Analyzer] Model topdown_pose_config_0 load failed: [StatusCode.INTERNAL] failed to load 'topdown_pose_config_0', no version is available

重点是最后一句话的报错,显示加载模型失败。

排查过程:

参考model_analyzer的issue:https://github.com/triton-inference-server/model_analyzer/issues/209

  1. 检查该模型位置的权限问题,是否是因为没有权限导致的? 检查发现权限没有问题。
  2. 是否是因为环境问题,镜像环境和cuda是否匹配等等,检查发现不是环境问题,用其他的onnx模型环境运行没有问题
  3. 检查是否是模型onnx转换存在问题,检查证明onnx模型没有问题,因为直接采用tritonserver inference engine推理指令 tritonserver --model_repository=XXX 运行没有问题
  4. 检查配置文件config.pbtxt
name: "topdown_pose"
platform: "onnxruntime_onnx"
max_batch_size:32

input [
  {
    name: "input.1"
    data_type: TYPE_FP32
    dims: [3,256, 192]
  }
]

output [
  {
    name: "output"
    data_type: TYPE_FP32
    dims: [17,64,48]
  }
]

instance_group [
  {
    kind: KIND_GPU,
    count: 1
    gpus: [0]
  }
]



dynamic_batching {
    preferred_batch_size: [ 2,4, 6,8 ]
  }

发现同时设置了max-batch-num和dynamic_batching,怀疑这里存在问题。删除配置文件最后的dynamic_batching,再次运行指令model-analyzer 指令,没有问题。

需要注意,测试model_analyzer需要保证模型的HWC轴是固定的,不支持动态HWC轴。

你可能感兴趣的:(人工智能,深度学习,自然语言处理)