AIC的SoC采用的是Hi3516DV300,下面是我从网上搜的一幅芯片框图:
可以看到它的CPU主频是900MHz,采用了Cortex-A7架构。看到这里我不禁想起我之前有块树莓派2,似乎也是主频是900MHz,Cortex-A7架构。不妨做一个pi计算比较吧。
原理很简单,就是
核心代码如下:
for(long i = 0;i < n; i++){
double k=(i*2.0+1)/(n*2);
quarterpi+=1.0/(1+k*k)/n;
}
把1分成n等分,取1/n作为每段的长度,取中间值k计算1/(1+k*k)。再加起来,得到pi/4
的结果。在这里取了n=100000000,编译之后,多次计算,结果大约都在101.4~101.5秒之间。
而同样代码,在树莓派2上,我记得之前验证的结果大概是10秒以下(印象中好像是8秒左右,因为pi2不在手边,拿手边Pi4重复做了实验,结果是3.3秒)。
因为这个代码非常简单,没有涉及多核之间的调度,不太可能是因为树莓派4核,AIC 2核造成如此差异的,主频相同,代码相同,执行程序所花时间不同,那么只有可能是效率不同,但代码效率为何会有这么大的差别的原因还有待进一步分析。
附上源程序和编译后的文件: