一种显卡驱动选择机制实现方法、装置及存储介质
文献发布时间:2023-06-19 19:33:46
技术领域
本发明涉及一种显卡驱动选择机制实现方法、装置及存储介质,属于3D图形加速技术领域。
背景技术
随着计算机软硬件技术的蓬勃发展,3D图形加速作为一项先进技术正被广泛应用于多种国产化自主创新的信息显示系统中,以提供高性能图形显示为主要目的,着力推动图形显示领域的快速发展。图形加速技术主要用于解决图形处理运算量庞大,中央处理器(CentralProcessingUnit,CPU)超负荷运算,图形显示效果不佳的问题。其经历了无加速、2D加速、3D加速三个阶段,采用“CPU+GPU”异构计算的方式,减轻CPU的运算压力,高效利用图形处理器(GraphicProcessingUnit,GPU)处理纷繁复杂的图形处理工作,从而提升图形显示效果。
图形加速技术发展到3D加速阶段,特点在于引入了三角形设定、光栅化、纹理贴图、几何变换、光照运算及渲染等技术。其研究与实现方法之一为硬件加速,该加速方式利用专用硬件设备如GPU替代通用处理器来处理复杂的图形数据运算任务,凭借专用硬件设备的高并行性来降低系统负载、减少计算延时、提高吞吐量、加速图形数据处理。
硬件加速利用显卡驱动(GraphicsDriver)作为中间件来进行通信工作,而不同类型显卡驱动的性能也有优劣之分,选择性能不同的显卡驱动在不同程度上影响着GPU的工作效率,同时影响图形加速效率。现阶段,AMDRadeon系列显卡已支持多种性能不同的显卡驱动。
当前,随着3D图形加速技术在国产化平台上的不断发展,为满足不同领域的高性能显示需求,提升3D图形图像性能成为一个重要课题。
现有技术中,申威国产化平台采用了“CPU+GPU”异构计算的方式,在CPU算力有限的情况下,使用专用硬件设备GPU来进行复杂的图形处理。CPU和GPU需要通过显卡驱动作为中间件进行通信工作,选择性能更优的显卡驱动显得尤为重要。但目前申威国产化平台往往选择系统默认的显卡驱动,并不支持用户自由选择,该选择机制无法保证所选择显卡驱动性能最优,不能满足软件需求,从而对3D图形性能产生影响。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种显卡驱动选择机制实现方法、装置及存储介质,解决申威国产化平台显卡驱动选择机制不灵活,无法准确选择性能最优的显卡驱动,从而导致3D图形性能受影响的问题。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种显卡驱动选择机制实现方法,包括:
将不同种类的显卡驱动配置成可加载内核的显卡驱动模块;
测试不同种类的显卡驱动的图形性能;
接收系统查看指令,查看系统已加载的所有模块,确定系统选择的显卡驱动类型;
判断系统选择的显卡驱动类型是否为性能最优的显卡驱动,如果不是,卸载当前显卡驱动,将最优的显卡驱动模块加载进行内核中。
进一步的,所述方法还包括:
接收处理器发送的渲染命令,将渲染命令转发至显卡驱动;
对显卡驱动接收的渲染命令进行翻译,并将翻译后的渲染命令发送至GPU,以使GPU根据接收到的翻译后的渲染命令,开始绘制工作。
进一步的,所述测试不同种类的显卡驱动的图形性能的方法,包括:
将待测显卡驱动模块加载到内核中;
使用优化等级O2编译Glmark2以及三维计算机图形库,编写测试脚本,将程序输出到指定文件中,并指定测试次数,进行测试;
计算测试分数时去掉最大值和最小值,剩余数据取均值作为最后的测试结果;
加载其余待测的显卡驱动模块,并卸载测完的显卡驱动模块,继续进行测试,直至所有显卡驱动模块测试完成。
进一步的,判断系统选择的显卡驱动类型是否为性能最优的显卡驱动时,如果加载进内核的显卡驱动模块为性能最优的显卡驱动,则无需变动,如果存在多种显卡驱动模块加载进内核中,则保留性能最优的显卡驱动,卸载其余显卡驱动模块。
第二方面,本发明提供一种显卡驱动选择机制实现装置,包括:
配置模块,用于将不同种类的显卡驱动配置成可加载内核的显卡驱动模块;
测试模块,用于测试不同种类的显卡驱动的图形性能;
显卡驱动类型确定模块,用于接收系统查看指令,查看系统已加载的所有模块,确定系统选择的显卡驱动类型;
判断模块,用于判断系统选择的显卡驱动类型是否为性能最优的显卡驱动,如果不是,卸载当前显卡驱动,将最优的显卡驱动模块加载进行内核中。
进一步的,所述装置还包括:
渲染命令接收模块,用于接收处理器发送的渲染命令,将渲染命令转发至显卡驱动;
渲染命令翻译模块,用于对显卡驱动接收的渲染命令进行翻译,并将翻译后的渲染命令发送至GPU,以使GPU根据接收到的翻译后的渲染命令,开始绘制工作。
进一步的,所述测试模块,包括:
加载单元,用于将待测显卡驱动模块加载到内核中;
第一测试单元,用于使用优化等级O2编译Glmark2以及三维计算机图形库,编写测试脚本,将程序输出到指定文件中,并指定测试次数,进行测试;
计算单元,用于计算测试分数时去掉最大值和最小值,剩余数据取均值作为最后的测试结果;
第二测试单元,加载其余待测的显卡驱动模块,并卸载测完的显卡驱动模块,继续进行测试,直至所有显卡驱动模块测试完成。
进一步的,所述判断模块中,判断系统选择的显卡驱动类型是否为性能最优的显卡驱动时,如果加载进内核的显卡驱动模块为性能最优的显卡驱动,则无需变动,如果存在多种显卡驱动模块加载进内核中,则保留性能最优的显卡驱动,卸载其余显卡驱动模块。
第三方面,本发明提供一种电子设备,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据前述任一项所述方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述方法的步骤。
与现有技术相比,本发明所达到的有益效果:
本发明提供一种显卡驱动选择机制实现方法,将内核中关于显卡驱动的选项进行模块化配置,根据GPU性能测试程序选出性能最优的显卡驱动,将该驱动模块动态加载进内核,提高了显卡光照渲染等工作的效率,减轻了CPU图形数据处理压力,达到了优化图形显示的目的,在满足软件需求的基础上,提升了3D图形图像性能。
附图说明
图1是本发明实施例提供的基于渲染过程的显卡驱动选择机制示意图;
图2是本发明实施例提供的选取最优性能显卡驱动的图形性能检测方法示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1
本实施例介绍一种显卡驱动选择机制实现方法,包括:
将不同种类的显卡驱动配置成可加载内核的显卡驱动模块;
测试不同种类的显卡驱动的图形性能;
接收系统查看指令,查看系统已加载的所有模块,确定系统选择的显卡驱动类型;
判断系统选择的显卡驱动类型是否为性能最优的显卡驱动,如果不是,卸载当前显卡驱动,将最优的显卡驱动模块加载进行内核中。
本实施例提供的显卡驱动选择机制实现方法,其应用过程具体涉及如下步骤:
S101:修改显卡驱动配置选项,并编译内核。
该实施例中,采用内核配置选项模块化动态管理的方式实现用户自由选择显卡驱动。在编译内核时,变更显卡驱动相关配置选项,将不同种类的显卡驱动配置成可加载内核模块(LoadableKernelModules,LKM),再将需要的显卡驱动模块加载到内核中即可使用。
其具体步骤为:在编译内核时,修改显卡驱动配置选项,将amdgpu和radeon显卡驱动配置成为LKM。用户可根据需求选择不同的显卡驱动模块,将其加载进内核,即可达到用户自由选择显卡驱动的目的。
例如:将内核配置文件中“CONFIG_DRM_AMDGPU”及“CONFIG_DRM_RADEON”等相关选项配置为m,再编译内核,重新启动。
S102:确定系统选择的显卡驱动类型。
系统启动后,需查看系统已加载模块,确定系统选择的显卡驱动类型。
例如:使用“lsmod”命令,即可查看系统当前已加载的所有模块,若包含amdgpu及radeon驱动模块则编译成功。再使用“lshw-cvideo|grep configuration”命令可确定当前系统正在使用的显卡驱动类型。
S103:根据需求选择显卡驱动类型,将该显卡驱动模块加载进内核。
在确定系统当前使用的显卡驱动类型后,根据需求选择显卡驱动。该实施例中为提升3D图形图像性能,需选择性能最优的显卡驱动加载进内核。
其具体步骤为:确定系统正在使用的显卡驱动类型以及性能更优的显卡驱动,将最优性能显卡驱动加载进内核中,以供应用程序调度。
例如:假设性能更优的显卡驱动为amdgpu,若加载进内核的显卡驱动为radeon,则需找到amdgpu.ko文件,使用“insmodamdgpu.ko”命令将该模块加载到内核中,再使用“rmmodradeon.ko”命令卸载radeon驱动模块;若加载进内核的显卡驱动为amdgpu,则无需变动;若两种显卡驱动均加载进内核中,则卸载radeon驱动,保留性能更优的amdgpu驱动。
S104:申威831CPU将渲染所需数据从主存加载到显存。
使用申威831CPU将渲染所需数据如顶点位置颜色、纹理坐标、着色器参数等从主存(RandomAccessMemory,RAM)加载到AMDRadeon系列显卡的显存(VideoRandomAccessMemory,VRAM)中。
S105:申威831CPU发送渲染命令。
申威831CPU设置渲染状态,向应用程序发送渲染命令(DrawCall)。
S106:应用程序向OpenGL发送渲染命令。
应用程序向OpenGL发送渲染命令,但系统无法直接使用OpenGL函数创建显示窗口,需要OpenGL的X窗口系统扩充(OpenGLExtensiontotheXWindow System,GLX)来衔接,用于完成OpenGL图形与X窗口画面之间的转换。
S107:OpenGL向显卡驱动发送渲染命令和数据。
OpenGL接收到应用程序发送的渲染命令后,将这些命令转发给显卡驱动。
S108:显卡驱动翻译渲染命令,并将翻译过后的渲染命令发送给GPU。
显卡驱动接收到OpenGL发送的渲染命令和数据后,将这些命令翻译成GPU能够理解的机器语言,与此同时将纹理等数据转换成GPU所支持的格式。当GPU接收到经过翻译的渲染命令后,即可开始绘制工作。
图2是一个实施例选取最优性能显卡驱动的图形性能检测方法示意图,该方法包括:
S201:申威831处理器搭载一张AMDRadeon系列显卡连接显示装置。
该实施例中,以申威国产化平台831桌面机为基础平台,将一张AMDRadeon系列显卡使用显卡转接线插接在申威平台的PCIe接口上,将申威831桌面机搭载上述显卡作为待测环境。
S202:测试显卡加载不同显卡驱动时的GPU性能。
Glmark2是一款开源GPU性能测试工具,包含针对OpenGL应用程序接口编写的程序基准测试集,涉及建筑、缓冲、照明、纹理等3D图形绘制,每个测试集测试时间持续10秒,帧率(FPS)及帧时间(FrameTime)单独记录下来。
其步骤具体为:先将待测显卡驱动模块加载到内核中;再使用优化等级O2编译Glmark2以及三维计算机图形库(mesa),编写测试脚本,将程序输出到指定文件中,并指定测试次数,计算测试分数时去掉最大值和最小值,剩余数据取均值即为最后的测试结果;最后加载另一个待测的显卡驱动模块,并卸载测完的显卡驱动模块,继续进行测试。
例如:假设指定测试N次,得出测试分数后,去掉一个最大值,去掉一个最小值,剩余N-2个数据取均值即为选择该显卡驱动情况下的最终GPU性能分数。
S203:根据性能测试选择性能最优显卡驱动,将其加载到内核中。
该实施例中,适配AMDRadeon系列显卡的显卡驱动共有两种,分别为radeon驱动以及amdgpu驱动。为选择最优显卡驱动适配当前显卡,需进行Glmark2性能测试,根据测试结果得出性能最优的显卡驱动类型,将其加载进内核中。
例如:AMDRadeon系列显卡默认选择radeon显卡驱动,在经过Glmark2性能测试后,若默认radeon驱动性能跑分低于amdgpu驱动,则将amdgpu显卡驱动模块加载进内核,卸载radeon驱动,反之则保留,达到准确选择性能最优显卡驱动的目的。
本实施例采用上述内核配置选项模块化动态管理的方式,将内核中关于显卡驱动的选项进行模块化配置,根据GPU性能测试程序选出性能最优的显卡驱动,将该驱动模块动态加载进内核,提高了显卡光照渲染等工作的效率,减轻了CPU图形数据处理压力,达到了优化图形显示的目的,在满足软件需求的基础上,提升了3D图形图像性能。
实施例2
本实施例提供一种显卡驱动选择机制实现装置,包括:
配置模块,用于将不同种类的显卡驱动配置成可加载内核的显卡驱动模块;
测试模块,用于测试不同种类的显卡驱动的图形性能;
显卡驱动类型确定模块,用于接收系统查看指令,查看系统已加载的所有模块,确定系统选择的显卡驱动类型;
判断模块,用于判断系统选择的显卡驱动类型是否为性能最优的显卡驱动,如果不是,卸载当前显卡驱动,将最优的显卡驱动模块加载进行内核中。
渲染命令接收模块,用于接收处理器发送的渲染命令,将渲染命令转发至显卡驱动;
渲染命令翻译模块,用于对显卡驱动接收的渲染命令进行翻译,并将翻译后的渲染命令发送至GPU,以使GPU根据接收到的翻译后的渲染命令,开始绘制工作。
在进一步实施例中,所述测试模块,包括:
加载单元,用于将待测显卡驱动模块加载到内核中;
第一测试单元,用于使用优化等级O2编译Glmark2以及三维计算机图形库,编写测试脚本,将程序输出到指定文件中,并指定测试次数,进行测试;
计算单元,用于计算测试分数时去掉最大值和最小值,剩余数据取均值作为最后的测试结果;
第二测试单元,加载其余待测的显卡驱动模块,并卸载测完的显卡驱动模块,继续进行测试,直至所有显卡驱动模块测试完成。
在进一步实施例中,所述判断模块中,判断系统选择的显卡驱动类型是否为性能最优的显卡驱动时,如果加载进内核的显卡驱动模块为性能最优的显卡驱动,则无需变动,如果存在多种显卡驱动模块加载进内核中,则保留性能最优的显卡驱动,卸载其余显卡驱动模块。
实施例3
本实施例提供一种电子设备,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据实施例1中任一项所述方法的步骤。
实施例4
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例1中任一项所述方法的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
- 实现软件版本选择的方法、装置及存储介质、程序产品
- 一种回归测试用例选择方法、装置、终端及存储介质
- 一种车道选择方法、系统、装置及可读存储介质
- 一种资源目录的选择方法、装置、系统及存储介质
- 一种多元离散的特征选择方法、装置、设备及存储介质
- 一种显卡驱动切换方法、装置和可读存储介质
- 一种显卡驱动切换方法、装置和可读存储介质