失败详情,请查看附件
Hi dongjie110, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: ai, and any of the maintainers: @sinever , @bbking , @zhunaipan , @guoqi , @kingxian , @yanghaoran , @Henry Shi
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
失败均为x86架构编译失败
问题现象与round2的issue不一致,请一并关注:【22.03 SP1 round2 arm/x86】pytorch在22.03 sp1编译失败
https://e.gitee.com/open_euler/milestones/179485/issues/table?issue=I64X0T
I64X0T 本地验证,需要增加一个 make 的依赖,已经提交了pr
当前issue在本地验证重现后,编译失败原因是x86编译时检测到如下文件函数存在内存泄漏风险,自行中断
但是ARM本地编译也是通过的,结论是编译器对于这个函数段的检查和编译两个平台存在差异,
x86检查过于严格,认为代码存在漏洞。将!=0改为>0后本地x86可以编译通过
/root/rpmbuild/BUILD/pytorch-1.6.0/third_party/XNNPACK/src/f32-rmax/psimd.c
xnn_f32_rmax_ukernel__psimd (...)
{
assert(n != 0);
assert(n % sizeof(float) == 0); //这个assert确保了n是4的倍数
...
float vmax = psimd_reduce_max_f32(vmax0123);
if XNN_UNLIKELY(n != 0) {
do {
const float vx = *x++; //死循环后,这里内存访问会越界
vmax = math_max_f32(vx, vmax);
n -= 4;
} while (n != 0); //n 如果不是4的倍数,这里会死循环
}
*y = vmax;
}
2022-12-13 06:05:00 /home/lkp/rpmbuild/BUILD/pytorch-1.6.0/third_party/XNNPACK/src/f32-rmax/psimd.c:14:6: internal compiler error: Segmentation fault
在编译时gcc发生Segmentation fault,已经修复合入https://gitee.com/src-openeuler/gcc/pulls/235
pytorch已经可以正常构建!7:【轻量级 PR】:update pytorch.spec.
登录 后才可以发表评论