-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
类ResNet50模型,Vulkan Backend的推理偏差误差比较大,是符合预期的么? #2433
Comments
用 backendTest.out 测试下,也可以试下 vulkan 的 buffer 版本 (-DMNN_VULKAN_IMAGE=OFF) |
模型方便上传一下么? |
Here you go: 链接: https://pan.baidu.com/s/1RovXbErY2GLU7b0uouMUhQ?pwd=jhhb 提取码: jhhb |
backendTest.out also tells error.
|
另外,类似这种性能指标,是不是也就没有什么可以优化的了?
|
呃,这里不能用百度网盘,有别的方式上传么,比如 google 云盘,或者发我邮箱之类 |
用 MNNV2Basic.out 会打印各算子时间,GPU 的耗时都会很少(只包含了 CPU 发命令的时间),看哪些算子耗时较多可估算出哪个算子跑在了 cpu 上 |
明白了,还可以这样用呢?天才啊~ 我还以为是完全不准把 ./MNNV2Basic.out 用到GPU模型呢。。。原来还可以用这个来做排除法。。。 |
please go here: https://drive.google.com/drive/folders/1gyJfSZ2sHM69vjBCok-PA_CEDEVUa5dm?usp=sharing |
看起来OpenCL和CPU都基本没有用GPU,只有Vulkan用了GPU~ 这么看起来,OpenCL没什么优势啊~
|
opencl 可以把 numberThread 设成 65 试下,用 buffer 内存格式 |
两个设置都试了下,没啥优化效果。 |
请问有进展吗,我这也出现类似的问题 |
已经定位,等待同步。Vulkan Image 模式下 convert 缓存 key 错误问题。相关代码可自行修改: diff --git a/source/backend/vulkan/image/backend/VulkanBackend.cpp b/source/backend/vulkan/image/backend/VulkanBackend.cpp
@@ -315,7 +315,7 @@ void VulkanBackend::onCopyBuffer(const Tensor* srcTensor, const Tensor* dstTenso
diff --git a/source/backend/vulkan/image/backend/VulkanBackend.hpp b/source/backend/vulkan/image/backend/VulkanBackend.hpp namespace MNN {
|
2.6.2 修正 |
@jxt1234 here is our update~ please help take a look~ |
我这边mnn2.6.2也是一样的情况,问题没有解决,可以重开一下issue吗 @jxt1234 |
确实是,疏忽了。 |
diff --git a/source/backend/vulkan/image/execution/VulkanImageConverter.cpp b/source/backend/vulkan/image/execution/VulkanImageConverte
这个优化项导致的,可以先关掉 |
#2542 |
我试一下 |
#2542 Vulkan Image模式(-DMNN_VULKAN_IMAGE=ON)的误差很小了,但是性能很差了: |
@jxt1234 可以帮忙看一下吗 |
运行错误问题已经修正 |
平台(如果交叉编译请再附上交叉编译目标平台):
Platform(Include target platform as well if cross-compiling):
Android / 小米12s Ultra (高通骁龙8+ Gen1)
Github版本:
Github Version:
直接下载ZIP包请提供下载日期以及压缩包注释里的git版本(可通过
7z l zip包路径
命令并在输出信息中搜索Comment
获得,形如Comment = bc80b11110cd440aacdabbf59658d630527a7f2b
)。 git clone请提供git commit
第一行的commit idProvide date (or better yet, git revision from the comment section of the zip. Obtainable using
7z l PATH/TO/ZIP
and search forComment
in the output) if downloading source as zip,otherwise provide the first commit id from the output ofgit commit
编译方式:
Compiling Method
编译日志:
Build Log:
模型是类ResNet-50的Clip模型,先转成Onnx模型,再转化成了Mnn模型。
BTW,我这个机型上的libOpenCL.so好像三方App用不了,这里的CL数据应该是MNN自带实现(猜测)里的~
最后的结果是,只有Vulkan Backend的推理偏差误差比较大,但OpenCL/NNAPI/Auto/CPU都是比较贴合Onnx原模型的(完全相同的代码和数据,就只有一行backend选择不同),这是符合预期的么?
另外,我发现选择4线程执行CPU的时候,比OpenCL/Vulkan都快,这有点猛啊,按说Clip这个模型不小呢,怎么会CPU反而快?
The text was updated successfully, but these errors were encountered: