-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
ARMV7 (with hard float flag) did not run with correct result #1145
Comments
Would your hardware also allow building with 64bit ARMv8 target for comparison ? There was a similar report in #1088 where I suggested reverting a small change from a year ago, unfortunately it seems nobody tried. |
Tried your code on ARM32 QEMU (since I don't have a ARMv7 machine) with the latest OpenBLAS develop branch. The following is the result.
On ARMv8 and Intel also, I am getting the same result. So the issue I believe, is related to your ARMv7 setup, and not OpenBLAS. |
hello, 1.our hardware doesn't support 64bit ARMv8 for comparison... 2."So the issue I believe, is related to your ARMv7 setup, and not OpenBLAS." 3.I have another question: |
I meant your hardware setup. Could you please share the output of /proc/cpuinfo of your ARMv7 machine. |
hello: @ashwinyes ,cpuinfo is as below: Processor : ARMv7 Processor rev 10 (v7l) processor : 1 processor : 2 processor : 3 Features : swp half thumb fastmult vfp edsp neon vfpv3 Hardware : Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board |
@gangm Thanks for sharing the cpuinfo. Wanted to check that your processor actually supports vfpv3. Now, another thing to check would be that all libraries being used (including boost, caffe, pthread etc. are confirming to the "-mfloat-abi=hard". You may use the steps mentioned in [http://stackoverflow.com/questions/20555594/how-can-i-know-if-an-arm-library-is-using-hardfp] to check it. OR You can try building your standalone program without using any other library except OpenBLAS. |
And googling further, I found the following issues which also looks related to the issue at hand here. sh1r0/caffe-android-lib#27 @xianyi will be right person to comment on the extent of softfp support in the latest OpenBLAS code. |
@ashwinyes thanks for your reply. I tried using standalone program which just using OpenBLAS library, and I can see it is support vfpv3, as below: and the result is also strange, as below: @xianyi , do you know whether our OpenBLAS is support ARMv7 in hard float mode? I tried many branches and many methods, but seems no work. |
@gangm Can you give the "readelf" output for your pthread and boost libraries as well ? |
@ashwinyes readelf of pthread is as below: |
@gangm I encountered the same problem. More info:
Caffe load model worked, run Forward() crashed. I guess the problem is in OpenBLAS (forwarding use blas, loading not). Update Branch https://github.com/xianyi/OpenBLAS/tree/arm_soft_fp_abi works for |
Please note that the arm_soft_fp_abi branch is a work in progress, only a handful of functions have been modified for the softfp abi so far. |
Hello! I compiled openblas for Android, linked with the specified flags to avoid issues with hard float. I have the same issue, and also other issues reported by others on armv7 with hard float on Android (some functions returning zero or other incorrect values, or not returning at all). (they work fine on all other architectures I tried including armv5. arm64 (armv8), x86. Do we know anything about the cause of these issues? I understand that adding soft float support is in progress (as mentioned in this thread also) but is done for only a handful of functions on another branch. |
@gangm @scorpeeon @martin-frbg I also use the "arm_soft_fp_abi" branch, and use compile command:"make TARGET=ARMV7 NOFORTRAN=1 HOSTCC=gcc ARM_SOFTFP_ABI=1", the result is correct. but when i use the hard float flag ,it can compiled successfully,but test the cblas_sgemm(),it can not work normly,the error is segmentation fault,i think the reason is assembly code.because i use the c code ,it can work ok. |
@ctgushiwei are you some idea about my questions: https://stackoverflow.com/questions/57534249/compile-the-flutter-engine-with-hard-float-type-library Thanks for you help in advance! |
hello,
{
return EXIT_SUCCESS;
}
testing code compling command:
arm-linux-gnueabihf-g++ -mfpu=vfpv3 -mfloat-abi=hard -o test testblas.cpp /usr/local/arm/openblas/lib/libopenblas_armv7p-r0.2.20.dev.a -I/usr/local/arm/boost/include/ -lpthread
but, when we run the test code in our ARMv7 platform, we got a strange result, as below:
1.4013e-45 1.4013e-45
1.4013e-45 1.4013e-45
1.4013e-45 1.4013e-45
1.4013e-45 1.4013e-45
it is not the correct result...
when we used the openblas lib in our caffe code, it caused coredump when called openblas APIs.
can you help for this? thank you very much.
The text was updated successfully, but these errors were encountered: