(一)性能评测常用方法
常用方法 | 描述 | |
1 | 时钟频率 | 在一定程度上反映了机器速度,一般来讲,主频越高,速度越快。 但是相同频率、不同体系结构的机器,其速度可能会相差很多倍 |
2 | 指令执行速度 | 加法指令的运算速度大体上可反映出乘法、除法等其他算术运算的速度 计量单位由KIPS(每秒千条指令)→MIPS (每秒百万条指令) |
3 | 等效指令速度法 | 吉普森(Gibson)混合法或等效指令速度法,改进单种指令MIPS值的局限性。 统计各类指令在程序中所占比例,并进行折算。 |
4 | 数据处理速率(Processing Data Rate, PDR)法 | 改进固定比例方法(各类指令使用频率不同)的局限性,以及数据长度与指令功能强弱的影响。 通常PDR值越大,机器性能越好。 PDR主要度量CPU和主存速度,不适合衡量机器的整体速度(未涉及Cache、多功能部件等影响)。 |
5 | 核心程序法 | 上述方法主要针对CPU (或主存),没有考虑诸如I/O结构、操作系统、编译程序的效率等系统性能的影响。 应用程序中使用最频繁的那部分核心程序作为评价性能的标准程序,将在不同的机器上运行的执行时间,作为性能评价的依据。 优点:软硬件结构的特点能在核心程序中得到反映 缺点:核心程序各部分之间的联系较小。由于程序短小,访问存储器的局部性特征很明显,以致Cache的命中率比一般程序高。 |
(二)基准测试程序
基准程序法(Benchmark)包含测试整数性能的基准程序、测试浮点性能的基准程序等。
(1)测试程序分类
程序 | 说明 | |
1 | 整数测试程序 | Dhrystone是一个综合性的基准测试程序,用于测试编译器及CPU处理整数指令和控制功能的有效性,人为地选择一些“典型指令”综合起来形成的测试程序。 Dhrystone程序测试的结果由每秒多少个Dhrystones来表示机器性能,数值越大,性能越好。 有些厂家在宣布机器性能时就用Dhiystone MIPS值作为各自机器的MIPS值。 |
2 | 浮点测试程序 | 多用于计算机科学和工程应用领域。 有些机器只标出单个浮点操作性能,如浮点加法、浮点乘法时间,而大部分工作站则标出用Linpack和Whetstone基准程序测得的浮点性能。 Linpack主要测试向量性能和高速缓存性能。 Whetstone是综合性测试程序,除测试浮点操作外,还测试整数计算和功能调用等性能。 |
3 | SPEC 基准程序(SPEC Benchmark) | SPEC(Standard Performance Evaluation Corporation)是由几十家世界知名的计算机大厂商所支持的非营利合作组织,旨在开发共同认可的标准基准程序。 SPEC基准程序是由SPEC开发的一组用于计算机性能综合评价的程序。以对VAX11/780机的测试结果作为基数,其他计算机的测试结果以相对于这个基数的比率来表示。 SPEC基准程序能较全面地反映机器性能,测试结果获得了普遍认可。有很高的参考价值。 SPEC基准程序测试结果一般以SPECmark(SPEC分数)、SPECint(SPEC整数)和SPECfp(SPEC浮点数)来表示。 |
4 | TPC基准程序 | TPC (Transaction Processing Council,事务处理委员会)基准程序是由TPC开发的评价计算机事务处理性能的测试程序,用以评测计算机在事务处理、数据库处理、企业管理与决策支持系统等方面的性能。 TPC基准测试程序在商业界范围内建立了用于衡量机器性能以及性能价格比的标准。 |
(2)浮点测试程序
参数 | 说明 | |
1 | 理论峰值浮点速度 | “理论峰值速度"的MFLOPS(Million Floating-point Operations Per Second,每秒百万次浮点运算)值是机器在理论上最大能完成的浮点处理速度。 不仅与处理机时钟周期有关,还与一个处理机里能并行执行操作的流水线功能部件数目和处理机的数目有关。 多个CPU机器峰值速度=单个CPU峰值速度*CPU个数 |
2 | Linpack基准测试程序 | Linpack基准程序是一个用Fortran语言编写的子程序软件包,称为基本线性代数子程序包,主要操作是浮点加法和浮点乘法操作。通过求解稠密线性代数方程组来评估计算机的浮点运算能力。 测量计算机系统的Linpack性能时,让机器运行Linpack程序,测量运行时间,将结果用MFLOPS表示。 当解n阶线性代数方程组时,n越大,向量化程度越高。 向量化百分比指含向量成分的计算量占整个程序计算量的百分比。 在同一台机器中,向量化程度越高,机器的运算速度越快,因为不管n的大小,求解方程时花在非向量操作的时间差不多是相等的。 |
3 | Whetstone基准测试程序 | Whetstone(磨刀石)是用Fortran语言编写的综合性测试程序,主要由执行浮点运算、整数算术运算、功能调用、数组变址、条件转移和超越函数的程序组成。 Whetstone测试结果用Kwips表示,1Kwips表示机器每秒钟能执行1000条Whetstone指令。 |
(3)TPC基准程序
基准程序 | 说明 | |
1 | TPC-A | 已经过时,不再使用 |
2 | TPC-B | 已经过时,不再使用 |
3 | TPC-C | 在线事务处理(On-Line Tiansaction Processing, OLTP)的基准程序 |
4 | TPC-D | 决策支持的基准程序 |
5 | TPC-E | 作为大型企业信息服务的基准程序。 该基准程序的评测结果用每秒完成的事务处理数TPC来表示 |
(三)常用显卡算力(理解)
(1)算力单位
1)TOPS(trillion operations per second,万亿次每秒):每秒钟可以执行的整数运算次数,代表计算机在处理图像、音频等任务时的处理能力。一般是指整数运算能力INT8。
2)TFLOPS:指每秒钟可以执行的浮点运算次数,代表着计算机在处理科学计算、机器学习等任务时的处理能力。TFLOPS的单位是万亿次每秒(trillion floating point operations per second)。一般指单精度性能FP32。
(2)深度学习精度
在深度学习中,可以选择不同数值精度来进行模型训练和计算。不同精度会影响计算资源的使用、训练速度和模型的精确度。
1)FP16 (Half Precision,半精度)
使用16位浮点数来保存和计算数据。想象你有一台非常精细的秤,但现在只用这个秤的一半精度来称重。不如32位精度精确,但计算速度更快,占用内存也更少。
2)BF16 (BFloat16)
在表示数的方式上和FP16不同,使用更多的位来表示数的大小(指数部分),在处理大范围数值时更加稳定。可以想象成一个专为机器学习优化的“半精度”秤,尤其是在使用特殊硬件加速器时。
3)FP32 (Single Precision,单精度)
使用32位浮点数进行计算,可以想象为一个标准的、全功能的精细秤。在深度学习中非常常见,提供了足够精确度,适合大多数任务。
(3)显卡算力对比