鲲鹏920环境session推理采用fp16推理结果错误
代码: 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?
版本:2.8.4
大概率是 session api 的调用代码问题。fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针。建议都用 Module API.
大概率是 session api 的调用代码问题。fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针。建议都用 Module API.
Module API比session api慢30%。session api将来不支持fp16吗?
是bug吗?
大概率是 session api 的调用代码问题。fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针。建议都用 Module API.
Module API比session api慢30%。session api将来不支持fp16吗?
- Module API比session api慢30%,这个不可能。性能基本是一样的,可能是你设置的线程数不一样。
- Session API 支持 fp16 ,但. "fp16 的输入输出必须用 copyFromHost / copyToHost ,不能直接访问 tensor 的 host 指针" ,使用起来相比 Module API需要多一些操作