jack 发表于 2017-2-8 10:39:44

关于硬件浮点 编译选项配置问题

现在用的EK200 imax6单核 想编译一个包含硬件浮点的动态链接库 是否支持硬件浮点我的编译配置选项下:
arm-fsl-linux-gnueabi-g++ Process.cpp Util.cpp JNI_UTILS.cpp -pthread lib.so -shared -march=armv7-a -mfpu=neon -mcpu=cortex-a9 -mfloat-abi=softfp -fPIC -o lib2.so


软件01 发表于 2017-2-13 11:15:25

-mfloat-abi=softfp
-mfloat-abi=hard
这两个参数都用来产生硬浮点指令,至于产生哪里类型的硬浮点指令,需要由-mfpu=xxx参数来指令。这两个参数不同的地方是:
         -mfloat-abi=softfp生成的代码采用兼容软浮点调用接口(即使用-mfloat-abi=soft时的调用接口),这样带来的好处是:兼 容性和灵活性。库可以采用-mfloat-abi=soft编译,而关键的应用程序可以采用-mfloat-abi=softfp来编译。特别是在库由第 三方发布的情况下。
         -mfloat-abi=hard生成的代码采用硬浮点(FPU)调用接口。这样要求所有库和应用程序必须采用这同一个参数来编译,否则连接时会出现接口不兼容错误。

jack 发表于 2017-3-6 17:34:35

软件01 发表于 2017-2-13 11:15
-mfloat-abi=softfp
-mfloat-abi=hard
这两个参数都用来产生硬浮点指令,至于产生哪里类型的硬浮点指令 ...

Linux3.0.05和Linux3.14.52 使用的编译工具 不一样 gcc-4.9包含硬件浮点
这连个系统在硬件浮点方面有什么区别

whxiaowang 发表于 2017-6-3 21:15:18

你好,使用这些参数前后有测试过计算速度是否变快吗?

jack 发表于 2017-6-5 10:12:11

whxiaowang 发表于 2017-6-3 21:15
你好,使用这些参数前后有测试过计算速度是否变快吗?

其实速度变化不是很明显 ,但是在用浮点运算比较多的情况下应该是会比较明显的

jack 发表于 2017-6-6 11:51:01

whxiaowang 发表于 2017-6-3 21:15
你好,使用这些参数前后有测试过计算速度是否变快吗?

使用这些配置选项比不使用任何配置选项 大约能够快三倍

whxiaowang 发表于 2017-6-6 17:58:08

jack 发表于 2017-6-6 11:51
使用这些配置选项比不使用任何配置选项 大约能够快三倍

我是3.14内核,gcc 4.9,方便说下你编译时用的具体指令吗

jack 发表于 2017-6-7 10:08:59

whxiaowang 发表于 2017-6-6 17:58
我是3.14内核,gcc 4.9,方便说下你编译时用的具体指令吗

CFLAGS += -lpthread -O3 -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -ftree-vectorize -ffast-math

whxiaowang 发表于 2017-6-7 22:29:32

jack 发表于 2017-6-7 10:08
CFLAGS += -lpthread -O3 -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -ftree-vectoriz ...

谢谢      我去试下
页: [1]
查看完整版本: 关于硬件浮点 编译选项配置问题