明远智睿技术论坛

标题: 关于硬件浮点 编译选项配置问题 [打印本页]

作者: jack    时间: 2017-2-8 10:39
标题: 关于硬件浮点 编译选项配置问题
现在用的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
-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
软件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
你好,使用这些参数前后有测试过计算速度是否变快吗?
作者: jack    时间: 2017-6-5 10:12
whxiaowang 发表于 2017-6-3 21:15
你好,使用这些参数前后有测试过计算速度是否变快吗?

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

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

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

我是3.14内核,gcc 4.9,方便说下你编译时用的具体指令吗
作者: jack    时间: 2017-6-7 10:08
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
jack 发表于 2017-6-7 10:08
CFLAGS += -lpthread -O3 -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -ftree-vectoriz ...

谢谢        我去试下




欢迎光临 明远智睿技术论坛 (http://bbs.myzr.com.cn/) Powered by Discuz! X3.2