-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用vulkan进行推理时结果不正确 #5909
Comments
已经尝试过启用和禁用下面的选项: if (gpu_count > 0) {
结果是一样的, 我发现 blob "3" 前一小半部分数值是一样的, 从中间开始有区别,我使用对比工具: 右边可以看到前面一部分是相同的: blob "3" 是图中这个算子的输出: |
我把程序从windows平台移植到android平台, 现象与windows平台运行结果一致: 使用 cpu推理结果正确 使用gpu推理时的日志如下: 00:09:41.055 D COLOR_BGRA2RGB 初始化net的代码如下:
|
error log | 日志或报错信息 | ログ
context | 编译/运行环境 | バックグラウンド
windows11
how to reproduce | 复现步骤 | 再現方法
使用cpu进行推理时, 结果是正常的, 但是使用gpu推理时,返回的结果是错误的, 我将运行时的所有的blob输出, 结果发现经过第一个卷积层后输出就不一样了
more | 其他 | その他
主要代码如下:
通过flag useGpu 切换使用cpu/gpu 推理
bool useGpu = true;
通过flag useDebugParam 切换是否使用手动调整过的param
bool useDebugParam = true;
模型是使用pnnx将onnx转换成的ncnn模型,
pnnx输出的模型转换输入:
手动调整一下可以传入常规的shape的tensor
区别是 permute 参数 type 修改
现在的现象是:
当 useGpu = false 时, useDebugParam 为 true/false 都可以正常输出
当 useGpu = true 时, useDebugParam 为 true/false 都可以输出, 但是数值是错误的
完整的项目见附件
ncnn-test.zip
输出的blob部分如下, 前2个blob, 使用cpu和gpu时完全一致, 第三个blob开始产生区别
blob.zip
The text was updated successfully, but these errors were encountered: