手头一个项目需要做大量双精度数据计算,我原来用的是C2000系列,无法满足要求,现在正在考察换什么样的新平台。经过几天的资料整理与技术社区各位工程师的帮助,初步选择C6748和A8两个平台。现在有点疑问,请指教。
问题1:以375M的C6748与800M的AM3715相比较,哪一个双精度数浮点计算能力更强?速度更快?精度更高?
问题2:本人原来用的是C2000,没用过操作系统,开机上电后直接进main(),AM3715能否不用操作系统而只使用这种裸奔形式?不知这种开发方式难度有多大?该项目不需要显示。
问题3:初步选定C6748和AM3715是因为能买到核心板(这样我只需要做外围开发,能省点时间,降低些难度),AM335x系列不知道有没有核心板?各位工程师如果有知道的能否推荐一下?wjn5086@163.com。
谢谢!
Yaoming Qin:
如果您是在工业环境下使用,建议使用AM335x,其外设接口等比AM37更适合工业环境。ARM和C674x都是遵守了IEEE关于浮点的规范的,所以不存在精度高低的问题。至于运算速度,C674x的能力需要通过代码优化,甚至是汇编级优化才能得到发挥,但是ARM相对简单,所以其性能不好做简单比较。AM335x上有一个叫做starterware的软件系统processors.wiki.ti.com/…/Category:StarterWare,%E5%8F%AF%E4%BB%A5%E4%BD%9C%E4%B8%BA%E4%BD%A0%E7%9A%84%E5%8F%82%E8%80%83。关于核心板,市面上应该已经有几家已经出了,你可以找找看
user1317437:
回复 Yaoming Qin:
首先非常感谢明兄的解答。
只是兄弟鲁钝,还是不太明白,AM3359的手册中说AM3359中有“NEON™ SIMD 协处理器”,这个是不是”ARM VPF10 硬宏单元矢量浮点协处理器“?毕竟6748的手册中明确说明”Four DP Additions Every 2 Clocks“,这个看起来更直接。
另外C674X的优化问题,是需要用户在写代码时就注意优化还是在编译器的设置中要使用一定的优化选项?
还有关于核心板的问题,目前C6748有瑞泰的核心板,AM3715有ema的产品,Am335X还没有找到,如果有这方面的信息可否告知? 谢谢!
Yaoming Qin:
回复 user1317437:
哥们太谦虚了。
NEON只能用于单精度的浮点运算,VFP是另一个运算单元,是可以用于单/双精度的浮点运算的。
VFP的运算能力,和C674的哪个能力强,这个很难从理论上,或者有限的benchmark上进行比较,因为两者所用的benchmark不一样,不具备直接的可比性。
我建议你用ema的AM3715跑下你的算法,评估下性能,看看够不够用,毕竟arm上的移植比较快,优化仅仅通过编译选项就可以达到比较好的效果,在linux下,编译选项:
arm-none-linux-gnueabi-gcc -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=vfp -ftree-vectorize -mfloat-abi=softfp
C674x的优化包括汇编优化和编译选项,DSP的优化不是一个简单的过程,但优化好了,性能是非常好的。
瑞泰有AM335x开发板,但是我不知道现在是否已经对外发售,你可以先在AM37上进行评估,毕竟二者都是基于arm core的,只是主频不一样而已。
谢谢!