开发板浮点型运算能力测试

本文介绍了如何使用Super PI源码进行CPU浮点运算能力测试,通过计算圆周率来评估性能。并阐述了自编浮点运算测试程序的方法,以进一步测试CPU处理浮点数据的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  为了评估 CPU 的浮点运算能力,本文搜罗了“Super PI linux”源代码,简述了该源代码对CPU浮点运算能力的评估过程,并综合该源码的思想,简述了如何自编一个浮点运算测试程序来评估 CPU 的浮点运算能力。

warning:
  浮点运算速度的好坏是相对的,即可通过同一浮点计算程序运行不同 CPU 平台,比较不同 CPU 平台上程序运行时间长短即可。Super PI就是使用一种计算圆周率算法,来评估 CPU 的浮点运算能力。



Super PI 浮点运算测试

源代码思想

  Super PI作为公认的考察计算机处理器浮点运算能力和计算机稳定性性能的标准之一,它的原理为通过计算不同数位的圆周率来考察计算机处理器性能,计算时间越短表明CPU浮点运算速度越快,而我们平时大多数情况下需要处理的数据都为浮点型数据,所以软件在一定程度上反映了计算机处理器的性能。Super PI使用FFT(快速傅里叶变换)和AGM(算数几何平均数)算法计算圆周率。



运算测试步骤

  1. 下载Super PI源码:https://download.youkuaiyun.com/download/qq_27149449/20906580
  2. 解压编译(运行arm平台时,需使用交叉编译器):
rar x SuperPI-main.rar
cd SuperPI-main
make
# make CROSS_COMPILE=arm-linux-gnueabihf-   
  1. 测试过程:./pi_css5 $((1<<20))    // 精确到 PI 小数点后1048576位 <=> ./pi_css5 1048576
    在这里插入图片描述


测试结果说明

  1. 对比最后一行的总测试时间可知,总耗时 1.29 s
    (AGM 算法可参考压缩包中readme文档)


自编浮点测试程序

  如果将 complex_of_funtion() 浮点计算函数用一种计算 PI 值的算法函数替代,即可变成通过计算 PI(π)的位数,来评估系统的浮点计算能力。

cat calculate_ability.cpp

#include <iostream>
#include <iomanip>
#include <cstring>
#include <stdio.h>
#include <math.h>
#include <sys/time.h>
#include <unistd.h>

using namespace std;

#define PI 3.1415926

// 帮助函数,传入argv第一个字符指针
void help(const char *name) {
   
  // 裁切掉文件路径,保留文件名
  std::string progname = name;
  size_t lastPos = progname.find_last_of("/\\");
  progname = progname.substr(lastPos + 1);

  cout << ".\\" << progname << " [Options]" << endl;
  cout << left << setw(10) << "Options :" << endl;
  cout << right << setw(12) << "-c" << "    " << "the times of calculate" << endl;
  cout << right << setw(12) << "-a" << "    " << "the angle of calculate" << endl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值