Thread 49 "thundersvm-trai" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x4000fd010d30 (LWP 2900998)]
0x000040000052eb28 in ?? () from /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so
(gdb)
(gdb) bt
#0 0x000040000052eb28 in ?? () from /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so
#1 0x000040000052b024 in ?? () from /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so
#2 0x000040000052e0e8 in ?? () from /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so
#3 0x0000400000508d44 in ?? () from /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so
#4 0x00004000005506cc in ?? () from /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so
#5 0x00004000005f87ac in start_thread (arg=0x400000037af0) at pthread_create.c:486
#6 0x00004000007060fc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
我在使用kspblas的时候出现了openmp的bug,原本正常的代码在连接kspblas这个库以后就发生问题,gdb查看
用ldd查看链接库,连接·kspblas之前
linux-vdso.so.1 (0x00004001f4fe0000) libthundersvm.so => /workspace/home/migration/qiujiaming01/shs/test/thundersvm-master/build/lib/libthundersvm.so (0x00004001f4ff0000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00004001f50c0000) libm.so.6 => /usr/lib64/libm.so.6 (0x00004001f52b0000) libomp.so => /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so (0x00004001f5380000) libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00004001f5460000) libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00004001f54a0000) libc.so.6 => /usr/lib64/libc.so.6 (0x00004001f54e0000) /lib/ld-linux-aarch64.so.1 (0x00004001f4f90000) librt.so.1 => /usr/lib64/librt.so.1 (0x00004001f5670000) libdl.so.2 => /usr/lib64/libdl.so.2 (0x00004001f56a0000)之后
linux-vdso.so.1 (0x00004000b4f80000) libthundersvm.so => /workspace/home/migration/qiujiaming01/shs/thundersvm/build/lib/libthundersvm.so (0x00004000b4f90000) libkspblas.so.1.4.0 => /workspace/public/software/libs/kml/1.4.0/lib/kspblas/multi/libkspblas.so.1.4.0 (0x00004000b5030000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00004000b5140000) libm.so.6 => /usr/lib64/libm.so.6 (0x00004000b5330000) libomp.so => /workspace/public/software/compilers/bisheng/2.1.0/lib/libomp.so (0x00004000b5400000) libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00004000b54e0000) libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00004000b5520000) libc.so.6 => /usr/lib64/libc.so.6 (0x00004000b5560000) libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00004000b56f0000) librt.so.1 => /usr/lib64/librt.so.1 (0x00004000b5740000) /lib/ld-linux-aarch64.so.1 (0x00004000b4f30000) libdl.so.2 => /usr/lib64/libdl.so.2 (0x00004000b5770000我怀疑是这个libgomp.so的问题,但是不知道为什么会出现这种问题
我对cmake的修改就是添加了
并且修改
target_link_libraries(${PROJECT_LIB_NAME} OpenMP::OpenMP_CXX )为
target_link_libraries(${PROJECT_LIB_NAME} OpenMP::OpenMP_CXX kspblas )我的系统是Kunpeng-920 使用的module为
使用的kml版本为 1.4.0