吴蓬勃
摘要:本文针对GPU显示中的帧率、三角形生成数量和像素填充率、显存带宽关键技术指标,采用非常成熟的OpenGL图形开发工具,进行测试方法研究,该方法具有通用的特点,能够为GPU的选型提供测试指标支撑。
关键词:像素;GPU
中图分类号: TP18 文献标识码:A
文章编号:1009-3044(2021)08-0218-03
GPU(Graphics processing unit) 又称图形处理器, 作为处理图形的运算器,主要面向二维、三维图形的几何变换、渲染、纹理映射、视频流编码与解码等所涉及的计算,用于处理和绘制各种图画。具有非常成熟的OpenGL 和DirectX. GPU编程库接口,应用于例如视频编解码、天气预报和通用计算等很多领域。相关的显示性能指标主要包括有:FPS即帧率、三角形生成数量和像素填充率。本文介绍了一种基于OpenGL的开放式图形库进行转动的3D齿轮和矩形条绘制进行帧速率测试、三角形生成数量和像素填充率测试的方法,对于GPU的性能测评、推荐使用具有很重要的意义。
1 相关显示性能指标
1.1 帧率
帧率即FPS:指的是每秒钟传输的帧数。代表图形处理器每秒钟能够更新的帧数,是GPU重要的性能指标之一,间接反映GPU的主频,高的帧率可以得到更流畅、更逼真的动画。
1.2 三角形生成率
三角形生成率即每秒钟可以生成的三角形数量,由于3D图像的绘制是通过三角形建立3D模型,然后再着色处理的,其组成的三角形数量直接影响到重现后物体外观的逼真性。GPU性能优异的主要指标之一是“每秒钟可以生成个三角形数量的个数”。每秒生成三角形的数量越多,越能在保障显示帧率的前提下为物体模型建立更多的三角形,3D模型的分辨率越高。
1.3 显存带宽
显存带宽是显卡图形显示性能和速度的重要指标之一,高显存带宽会带来高分辨率的显示、高色彩逼真度和更流畅的3D图形画面。在实际情况下,目前显示芯片的性能高,其处理能力很强,只有大带宽才能保障足够的数据输入和输出。
显存带宽跟显卡的显存速度和显存架构有关,是目前决定显卡图形显示性能和速度的重要因素之一,在工作频率一定的情况下,显存位宽的大小决定了显存带宽的大小。
2 总体测试思路介绍
OpenGL是美国SGL公司为其图形工作站开发的、独立于窗口操作系统和硬件环境的图形开发环境。是一个便于调用、功能强大的底层3D图形函数库。适用于从普通PC机到大型图形工作站等各种计算机,已成为占据主导地位的跨平台专业3D图形应用开发包,成为行业标准。
与GPU帧速显示有关的因素有显存带宽、操作系统等,本方法是只是针对同一种配置下的应用进行测试评估。
采用基于OpenGL的开放式图形库进行单位三角形绘制,利用函数绘制一个长矩形条,矩形条按每次22.5°(360/16)旋转;同时用单位三角形去填充长矩形条,求得长矩形条旋转一周后(此时三角形也填充完毕)所需时间,从而获得单位时间填充的三角形生成数量。
通过OpenGL绘制标准图形,计算一定时间内绘制标准图形的次数,计算每秒钟绘制的次数即为帧率,多次计算求得算术平均值作为最终结果。通过计算单位时间内绘制的标准三角形的数量作为三角形生成率。同时通过测试单位时间内GPU与显存之间的数据传输速率,即为显存带宽。
最后通过对测试获得所得的帧率、三角形生成率、显存带宽分数,依据应用需求侧重点确定相应的加权系数,进行相应加权求和获得最终的GPU性能得分,进行综合测评。
3 测试方法
3.1齿轮的绘制
利用opengl的函数通过输入齿轮的Inner_radius(内部半径大小)、outer_radius(外部半径大小)、width(宽度)、teeth(齿轮大小)、deepth(齿轮高度)分别画该齿轮的正面,画齿的前侧,画齿的背面,画齿的外侧,最后绘制齿的内部结构,从而完成整个齿轮的绘制。
初始化此轮的内外半径宽度、齿数和齿轮的深度,并初始化齿轮的阴影模式和法线,完成各个面的绘制。检查开始画的齿数、通过opengl库函数循环的画出齿轮。
3.2帧速率测试
图形处理单元作为处理图形的运算器主要作用在于处理和绘制各种图画。而帧率作为测试GPU性能的一个重要指标,代表图形处理器处理场时每秒钟能够更新的次数。
本策略通过绘制转动的齿轮,每次绘制齿轮算一帧,计算5S时间内绘制的帧数,从而求得帧率,通过多次计算求得算术平均值作为最终结果。通过不断的调用opengl函数来画齿轮,并且利用计时器每五秒计算一次帧率。
当然,与GPU帧速显示有关的因素还有显存带宽、操作系统等,本方法是只是针对同一种配置下的应用进行测试评估。
3.3 三角形生成数量
三角形生成數量测试GPU每秒钟可生成多少万个三角形,或每秒可处理多少三角形。
利用函数绘制一个长矩形条,矩形条按每次22.5°(360/16)旋转;同时用单位三角形去填充长矩形条,求得长矩形条旋转一周后(此时三角形也填充完毕)所需时间,从而获得单位时间填充的三角形生成数量,并根据三角形的大小进行像素填充率计算测试,算法流程图如图4。
3.4 显存带宽
显存带宽指GPU与显存间数据传输的速率,以MB/sec为单位。通过GPU与显卡缓存之间的读写,获取读写速度。
显存带宽与显卡的显存位宽、显存架构和显存速度有关,显存位宽是指一个时钟周期内传送数据显示数据的位数,位数越多,传输效率就越高。在工作频率一定时,显存位宽的大小与显存带宽的大小有直接的关系。足够大的显存带宽才能带来更高分辨率、更逼真(32位)和更流畅(高刷新速度)的3D画面。在实际情况下,如果一块图形芯片处理能力强大, 但由于显存带宽不高时, 将会极大地影响其显示性能, 显存将限制其无法达到预定的处理能力。目前显示类芯片的显示性能很高,处理能力也比较强,在此基础上,只有获得较大的显存带宽才能保障其有足够的数据输入和输出。随着多媒体、3D显示渲染等对硬件技术指标越来越高的要求,相对于GPU,较低的显存带宽已经成为制约显卡性能的瓶颈。
该测试函数通过进行显卡地址数据的读、写,根据读取的数据来计算单位时间内显存的读写带宽。其读写显存带宽测试流程方法分别如图6所示。
4 结论
该方法具有简单、通用、有效易行的特点,当然,与GPU帧速显示有关的因素还有显存带宽、操作系统等,本方法是只是针对同一种配置下的应用进行测试评估,能够为GPU的选型提供测试指标支撑,实用价值高。
参考文献:
[1] 符鹤,谢永芳.基于国产化图形芯片JM5400的座舱显示系统设计[J].计算机工程与科学,2016,38(10):2083-2090.
[2] 郑顾平,李海涵.基于GPU的三维体绘制研究[J].电脑迷,2016(9):103.
[3] 丁科,谭营.GPU通用计算及其在计算智能领域的应用[J].智能系统学报,2015,10(1):1-11.
[4] 张春燕,谭建龙,刘燕兵,等.基于GPU的精确串匹配算法综述[J].计算机应用研究,2016,33(7):1921-1928,1935.
【通联编辑:唐一东】