MNN icon indicating copy to clipboard operation
MNN copied to clipboard

鲲鹏920环境session推理采用fp16推理结果错误

Open zhenjing opened this issue 1 year ago • 4 comments

代码: MNN::ScheduleConfig sConfig; sConfig.type = static_cast<MNNForwardType>(MNN_FORWARD_CPU); sConfig.numThread = threadNum; BackendConfig bConfig; bConfig.precision = static_castBackendConfig::PrecisionMode(precision); sConfig.backendConfig = &bConfig; auto session = net->createSession(sConfig);

当precision=2时,推理结果是错误,其他精度可正常推理。 若采用module方式,启用fp16推理结果正常,速度可加速。

看文档这么写: 后端 CPU precision 为 Low 时,根据设备情况开启 FP16 计算 precision 为 Low_BF16 时,根据设备情况开启 BF16 计算 session应该怎么开启fp16?

zhenjing avatar Apr 29 '24 09:04 zhenjing

版本:2.8.4

zhenjing avatar Apr 29 '24 10:04 zhenjing

大概率是 session api 的调用代码问题。fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针。建议都用 Module API.

jxt1234 avatar May 08 '24 06:05 jxt1234

大概率是 session api 的调用代码问题。fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针。建议都用 Module API.

Module API比session api慢30%。session api将来不支持fp16吗?

zhenjing avatar Jun 19 '24 07:06 zhenjing

是bug吗?

zhenjing avatar Aug 12 '24 01:08 zhenjing

大概率是 session api 的调用代码问题。fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针。建议都用 Module API.

Module API比session api慢30%。session api将来不支持fp16吗?

  1. Module API比session api慢30%,这个不可能。性能基本是一样的,可能是你设置的线程数不一样。
  2. Session API 支持 fp16 ,但. "fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针" ,使用起来相比 Module API需要多一些操作

jxt1234 avatar Sep 06 '24 09:09 jxt1234