-
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
vulkan端侧训练segmentation fault #3129
Comments
使用 vulkan 进行训练时,编译时加上 -DMNN_VULKAN_IMAGE=false ,目前 vulkan 只有 buffer 分支支持反向的相关算子 |
用 buffer 分支训起来啦!感谢大佬! 还有个问题,为什么我这儿看起来opencl和vulkan都比cpu训练还慢呢?比如NN::Linear算子vulkan没有实现,这种是不是会跑在CPU上?
|
看上去可能是有算子回退,不过 NN::Linear 这个应该是支持的。另外 gpu resize 时耗时较多,计算量较小的模型用动态图训练时性能差。 |
好的,我看到了 Linear 算子分成了 MatMul 和 Add ,vulkan 是有实现 MatMul 的,但是 Add 在 express/MathOp.cpp 中。 非常感谢大佬的帮助,祝天天开心 😄 |
这个应该都在 vulkan 上的。 Minist Train 之前有调试过,算子在 vulkan - buffer 分支上都是支持的。 |
平台:
Github版本:
编译方式:
编译日志:
端侧运行demo:
实验:
修改"MNN/tools/train/source/demo/MnistUtils.cpp":40 exe->setGlobalExecutorConfig(MNN_FORWARD_VULKAN, config, 4); 的backend
vulkan训练输出:
问题分析:
我们定位到是在第一次前向计算之后反向传播的时候报错:MNN\tools\train\source\demo\MnistUtils.cpp:124,sgd->step(loss);
再深层一些是在MNN\source\core\Pipeline.cpp:1053,auto code = iter.execution->onResize(iter.workInputs, iter.workOutputs);
想问一下MNN支持基于vulkan的端侧训练吗?有没有成功的demo呢?期待收到回复,谢谢~
The text was updated successfully, but these errors were encountered: