CN117909268A - 一种gpu驱动优化方法 - Google Patents
一种gpu驱动优化方法 Download PDFInfo
- Publication number
- CN117909268A CN117909268A CN202410308725.0A CN202410308725A CN117909268A CN 117909268 A CN117909268 A CN 117909268A CN 202410308725 A CN202410308725 A CN 202410308725A CN 117909268 A CN117909268 A CN 117909268A
- Authority
- CN
- China
- Prior art keywords
- dma
- gpu
- data
- transmission
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000005457 optimization Methods 0.000 title claims abstract description 19
- 230000001133 acceleration Effects 0.000 claims abstract description 29
- 230000006835 compression Effects 0.000 claims abstract description 25
- 238000007906 compression Methods 0.000 claims abstract description 25
- 230000006837 decompression Effects 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 12
- 230000005540 biological transmission Effects 0.000 claims description 103
- 239000000872 buffer Substances 0.000 claims description 24
- 238000012546 transfer Methods 0.000 claims description 19
- 238000012360 testing method Methods 0.000 claims description 12
- 238000009877 rendering Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bus Control (AREA)
Abstract
本申请涉及一种GPU驱动优化方法,该方法包括当在从CPU内存端往GPU显存端传输过程中时,调用由CPU SIMD指令实现的帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从CPU内存端传输到GPU显存端,并调用GPU硬件帧解压缩接口,在GPU显存端中实现帧解压加速,当在从GPU显存端往CPU内存端传输过程中时,调用GPU硬件帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从GPU显存端传输到CPU内存端,并调用由CPU SIMD指令实现的解压缩接口,在CPU内存端中实现帧解压加速。
Description
技术领域
本申请涉及GPU优化的技术领域,尤其涉及一种GPU驱动优化的方法。
背景技术
当前GPU驱动加速的常用数据拷贝加速方法主要包括:
(1)利用DMA控制器实现数据拷贝加速。该方法可以针对一段连续数据在不需要CPU的干涉下实现数据的拷贝,达到加速及减少CPU的使用率的目的;(2)利用块拷贝实现2D加速。该方法是针对一个矩形区域数据挖出一个小的矩形区域数据,传输到另外一个矩形数据区域内的加速方法。
然而使用DMA拷贝及块拷贝技术虽然可以有效解决GPU显存与CPU主存间的数据拷贝问题,但是也存在如下问题:
其一:众所周知,启动一次DMA存在握手时间的开销,并且该开销占用较高的比例,如果需要传输一次的DMA的数据量较少,性能还比不上直接拷贝的方式,另外对于多个要传输的DMA通过启动多次DMA传输就会存在多次握手时间的开销问题;
其二:在一个系统中,存在各种应用及数据传输任务,如果有大量的数据需要传输,不可避免得存在占用高带宽问题。同时,在一个整机中,CPU与GPU或与其他设备互联后,总线的带宽是有限的,数据交互的带宽是有限的,当存在多应用大量并行数据交换操作时,或CPU与不同设备之间均有数据交互时,有可能存在带宽不足的情况,因此在GPU驱动的设计过程中需要考虑如何减少数据局传输带宽以减少CPU与不同设备之间的数据交互,满足实际应用要求。
(1)中国发明专利“一种基于DMA的GPU子图像处理方法”(申请号CN201911147514,CN111080508A),该发明涉及计算机硬件建模技术领域,具体涉及一种基于DMA的GPU子图像处理方法,本方法包括以下步骤:对子图像处理的DMA长度进行计算;并计算图像参数和子图像skip参数;按照上述所得计算结果和参数的基础上将当前图像存储地址按配置进行对齐操作;将对齐操作后的图像存储地址跳过步骤1)所得子图像skip参数对应的像素数、行数和层数并配置DMA描述符启动DMA操作;计算下一个图像行的图像存储地址,重复上述步骤直到子图像处理完成;本发明针对GPU子图像处理问题,提出了一种绘制或读取在内存中所存储的图像数据矩形的一个子矩形的方法,为GPU的研制奠定了算法基础。
该方法存在几个缺陷:第一个缺陷是该方法可以直接用块拷贝技术直接实现,不需要一行一行DMA拷贝;第二个缺陷,如果一行的数据量非常少,由于启动一次DMA握手时间占用量大,性能还比不上memcpy拷贝;第三个不能解决多应用并发大量数据拷贝的带宽问题。
(2)中国发明专利“一种基于Android系统的云桌面显示优化方法及系统”(申请号CN202011308080,CN112486606A),该发明公开了一种基于Android系统的云桌面显示优化方法及系统,本发明包括Android云终端云桌面显示优化的步骤:搭建OpenGL ES的运行环境;在OpenGL ES中创建2D纹理;通过OpenGL ES在GPU中创建两个第一像素内存缓冲区,利用GPU中像素缓冲区具备异步DMA快速传输的特点,在同一时间,CPU往一个像素缓冲区写入云桌面待显示数据并立即返回,GPU利用另一个像素缓冲区的数据进行纹理绘制并提交显示,两个像素缓冲区不断交替各自所充当的角色持续刷新云桌面。本发明能够在不降低画面质量的情况下,充分利用移动终端的GPU计算能力,让云桌面的显示变得流畅。
该方法只能应用于两个缓冲区之间的DMA并实现交换显示,不能解决多应用并发大量数据拷贝的高带宽问题。
(3)中国发明专利“一种面向OpenGL实现的属性配置优化方法”(申请号CN201711202220,CN107945099A),该发明属于计算机图形处理领域,尤其涉及一种面向OpenGL实现的属性配置优化方法。所述方法包括以下步骤,(1)OpenGL图形命令获取;(2)图形命令参数提取与分类;(3)参数处理与更新;(4)参数重新排布;(5)参数信息存储。本发明加速了有效参数的计算,实现了相关参数的快速、连续配置,提高了OpenGL图形指令与GPU图形属性的配置过程。
该方法主要是用于应用层面对渲染过程的加速方法,不能解决多应用并发大量数据拷贝的高带宽问题。
(4)中国发明专利“一种基于OpenGL着色语言的程序式纹理的优化方法和系统”(申请号CN201910737216,CN110517343A),该发明公开了一种基于OpenGL着色语言的程序式纹理的优化方法和系统,包括以下步骤,定义模块定义程序式纹理着色器;输入待渲染的对象图像;运行所述程序式纹理着色器并绘制生成程序式条纹纹理;对所述条纹纹理依次进行操作,包括预先解析滤波模块、自适应的解析滤波模块、解析积分模块和频率截断模块;得到优化后的程序式条纹纹理结果。本发明的有益效果:提供程序式纹理反走样方法,能够在图像处理中渲染出更加真实的图像,从时间和空间两方面克服显示上的限制。
该方法利用Shader来实现纹理格式转换,不能解决多应用并发大量数据拷贝的高带宽问题。
发明内容
为解决上述技术问题,本发明提供了一种GPU驱动优化方法,采用如下技术方案:
一种GPU驱动优化方法,包括:
在CPU内存端采用SIMD指令实现通GPU硬件帧压缩和解压缩相同功能的接口;
当在从CPU内存端往GPU显存端传输过程中时,调用由CPU SIMD指令实现的帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从CPU内存端传输到GPU显存端,并调用GPU硬件帧解压缩接口,在GPU显存端中实现帧解压加速;
当在从GPU显存端往CPU内存端传输过程中时,调用GPU硬件帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从GPU显存端传输到CPU内存端,并调用由CPU SIMD指令实现的解压缩接口,在CPU内存端中实现帧解压加速。
在另一种可能的实现方式中,调用阈值均衡多通道多描述符DMA接口,压缩加速后的数据加速在CPU内存端及GPU显存端之间的传输过程,包括:
建立DMA传输任务队列管理,用于负责传输任务的管理,包括:DMA传输任务的添加或释放、DMA传输通道的分配、DMA多描述符的建立以及DMA传输任务的启动或取消;
当OpenGL绘图渲染任务需要进行BUFFER缓存数据传输时,OpenGL绘图渲染任务将BUFFER缓存数据传输内容提交至DMA传输任务队列;
当所述BUFFER缓存数据传输内容满足DMA通道描述符最大承载量时,DMA传输任务队列开始传输数据,传输机制包括:
若所述BUFFER缓存数据传输内容的数据量小于预设DMA阈值,则采用memcpy直接拷贝的拷贝方式,进行传输;
若所述BUFFER缓存数据传输内容的数据量大于预设DMA阈值,则采用DMA拷贝的拷贝方式,进行传输。
在另一种可能实现的方式中,DMA传输任务队列进行DMA传输通道的分配,包括:
DMA传输任务队列通过采用均衡负载的算法实现对DMA传输通道的分配。
在另一种可能实现的方式中,DMA传输任务队列进行DMA多描述符的建立,包括:
DMA传输任务队列通过链式结构实现对DMA多描述符的建立,所述描述符包括传输源地址、传输目的地址、传输长度以及下一个描述符的地址。
在另一种可能实现的方式中,通过进行预试验计算预设DMA阈值,预设DMA阈值包括预设写DMA阈值以及预设读DMA阈值,其中,预设写DMA阈值为从CPU内存端到GPU显存端进行预试验得到的阈值,预设读DMA阈值为从GPU显存端到CPU内存端进行预试验得到的阈值,预试验计算预设DMA阈值的过程包括:
设置固定长度的数据;
分别通过DMA拷贝以及memcpy直接拷贝的两种拷贝方式,将该固定长度的数据在CPU内存端以及GPU显存端之间进行传输,得到DMA拷贝传输时长以及memcpy直接拷贝传输时长;
若所述DMA拷贝传输时长小于memcpy直接拷贝传输时长,则对所述固定长度的数据的长度进行减少,若所述DMA拷贝传输时长大于所述memcpy直接拷贝传输时长,则对所述固定长度的数据的长度进行增加,直至所述DMA拷贝传输时长等于所述memcpy直接拷贝传输时长;
将所述DMA拷贝传输时长等于所述memcpy直接拷贝传输时长时的数据长度确定为预设DMA阈值。
在另一种可能的实现方式中,当计算出预设DMA阈值之后,将预设DMA阈值作为配置文件保存,在驱动初始化时加载所述预设DMA阈值。
综上所述,本申请包括以下有益技术效果:
(1)优化了少量数据DMA的传输方法;
(2)减少多应用并发DMA拷贝过程中的握手开销问题;
(3)解决多应用并发大量数据拷贝的高带宽问题;
(4)通过该方法,效果明显,在飞腾X100显卡平台上,glmark2跑分均有1倍的提升,多应用渲染流畅切换,很大地提升了系统性能及用户体验。
附图说明
图1是本申请实施例中的传统DMA传输启动示意图。
图2是本申请实施例中的一种GPU驱动优化方法示意图。
图3是本申请实施例中的一种阈值均衡多通道多描述符DMA技术示意图。
图4是本申请实施例中的一种DMA多描述链式结构示意图。
图5是本申请实施例中的一种多任务与多通道多描述符之间的关系示意图。
具体实施方式
以下结合附图对本申请作进一步详细说明。
本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
如图1所示为传统DMA传输启动原理,传统DMA传输每启动一次DMA前需要进行一次握手,存在大量握手开销,且在一个系统中,存在各种应用及数据传输任务,如果有大量的数据需要传输,不可避免得存在占用高带宽问题。同时,在一个整机中,CPU与GPU或与其他设备互联后,总线的带宽是有限的,数据交互的带宽是有限的,当存在多应用大量并行数据交换操作时,或CPU与不同设备之间均有数据交互时,有可能存在带宽不足的情况。
为解决上述问题,如图2所示,本申请提供了一种GPU驱动优化方法,CPU内存端中包括CPU SIMD解压缩、CPU SIMD压缩以及CPU内存,在GPU显存端包括GPU硬件解压缩、GPU硬件压缩以及GPU显存,该方法具体包括:
Sa,在CPU内存端采用SIMD指令实现通GPU硬件帧压缩和解压缩相同功能的接口。
对于本申请实施例,CPU不同,对应的SIMD加速指令也不同,具体的:X86架构采用SSE指令,ARM架构采用Neon指令,LoongArch架构采用LSX和LASX SIMD,Alpha架构采用MVI-2指令、PowerPC架构采用AltiVec指令、SPARC架构采用VIS指令,分别实现与GPU硬件帧压缩、解压缩相对应的软件帧压缩、软件帧解压缩功能,在编译器编译时确定,满足对GPU硬件帧压缩后的数据解压缩及GPU硬件帧解压缩前的数据准备。
Sb,当在从CPU内存端往GPU显存端传输过程中时,调用由CPU SIMD指令实现的帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从CPU内存端传输到GPU显存端,并调用GPU硬件帧解压缩接口,在GPU显存端中实现帧解压加速,当在从GPU显存端往CPU内存端传输过程中时,调用GPU硬件帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从GPU显存端传输到CPU内存端,并调用由CPU SIMD指令实现的解压缩接口,在CPU内存端中实现帧解压加速。
对于本申请实施例,采用阈值均衡多通道多描述符DMA技术实现对DMA传输优化,该技术具有以下三个特性:
一、通过阈值来决定是否采用DMA或直接memcpy拷贝;
二、具备多个独立DMA通道可支持多个DMA同时传输;
三、具备多描述符可以同时支持多个数据Buffer缓存只启动一次DMA即可完成传输。
具有有效解决少量数据DMA的传输效率、减少多应用并发DMA拷贝过程中的握手开销问题的效果。
具体的,如图3所示为阈值均衡多通道多描述符DMA技术示意图,调用阈值均衡多通道多描述符DMA接口,压缩加速后的数据加速在CPU内存端及GPU显存端之间的传输过程具体包括:
Sb1,建立DMA传输任务队列管理,用于负责传输任务的管理,包括:DMA传输任务的添加或释放、DMA传输通道的分配、DMA多描述符的建立以及DMA传输任务的启动或取消。
Sb2,当OpenGL绘图渲染任务需要进行纹理、像素、shader、VBO/VAO等BUFFER缓存数据传输时,OpenGL绘图渲染任务将BUFFER缓存数据传输内容(即图3中的“传输数据”)提交至DMA传输任务队列。
Sb3,当BUFFER缓存数据传输内容满足DMA通道描述符最大承载量或者该BUFFER缓存数据传输内容需即刻将绘图指令及绘图数据提交给GPU完成渲染(即刻Flush)时,DMA传输任务队列开始传输数据,具体的传输机制包括以下两种:
(1)若BUFFER缓存数据传输内容的数据量小于预设DMA阈值,则采用memcpy直接拷贝的拷贝方式,进行传输;
(2)若BUFFER缓存数据传输内容的数据量大于预设DMA阈值,则采用DMA拷贝的拷贝方式,进行传输。
对于本申请实施例,在此传输机制中,涉及到DMA传输通道的分配以及DMA多描述符的建立,利用DMA边握手边传输的异步传输机制,一次性完成多个DMA同时传输操作,完成传输后,清空传输队列,具体机制如下:
DMA传输通道的分配,具体包括:
DMA传输任务队列通过采用均衡负载的算法实现对DMA传输通道的分配,即每次往队列提交传输数据时,通过各通道描述符计算出各通道需要传输的数据量,对比获取传输量最小的通道,并往该通道建立添加描述符,以达到每个通道的要传输的数据量接近,从而保证启动DMA后每个通道完成的时间接近的效果。
DMA多描述符的建立,具体包括:
DMA传输任务队列通过链式结构实现对DMA多描述符的建立,如图4所示,描述符包括传输源地址、传输目的地址、传输长度以及下一个描述符的地址,往DMA传输通道添加一个描述符只需将该描述符的地址填充到该通道最后一个描述符的“下一个描述符的地址”字段。
且,在本申请实施例中,为便于理解多任务与多通道多描述之间的关系,如图5所示,本申请实施例中提供了多任务与多通道多描述之间的关系示意图。
进一步的,在本申请实施例中,Sb3中预设DMA阈值为提前进行预试验计算出的阈值,具体包括:预设写DMA阈值以及预设读DMA阈值,其中预设写DMA阈值为从CPU内存端到GPU显存端进行预试验得到的阈值,预设读DMA阈值为从GPU显存端到CPU内存端进行预试验得到的阈值,预试验的具体过程如下:
Sb31,设置固定长度的数据。
Sb32,分别通过DMA拷贝以及memcpy直接拷贝的两种拷贝方式,将该固定长度的数据在CPU内存端以及GPU显存端之间进行传输,得到DMA拷贝传输时长以及memcpy直接拷贝传输时长;
Sb33,若DMA拷贝传输时长小于memcpy直接拷贝传输时长,则对固定长度的数据的长度进行减少,若DMA拷贝传输时长大于memcpy直接拷贝传输时长,则对固定长度的数据的长度进行增加,直至DMA拷贝传输时长等于memcpy直接拷贝传输时长;
Sb34,将DMA拷贝传输时长等于memcpy直接拷贝传输时长时的数据长度确定为预设DMA阈值。
对于本申请实施例,当计算出预设DMA阈值之后,将预设DMA阈值作为配置文件保存,在驱动初始化时加载该预设DMA阈值。
综上,本申请实施例提供的一种OpenGL驱动优化方法,利用不同CPU自身的SIMD加速指令特性、阈值均衡多通道多描述符DMA以及GPU的硬件压缩解压缩特性三种相结合技术特性,通过采用CPU自身的SIMD加速指令加速实现帧压缩及解压缩和GPU的硬件帧压缩解压缩特性对传输帧进行压缩处理,再利用阈值均衡多通道多描述符DMA技术实现加速拷贝,解决多应用并发大量数据拷贝的高带宽问题。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (6)
1.一种GPU驱动优化方法,其特征在于,包括:
在CPU内存端采用SIMD指令实现通GPU硬件帧压缩和解压缩相同功能的接口;
当在从CPU内存端往GPU显存端传输过程中时,调用由CPU SIMD指令实现的帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从CPU内存端传输到GPU显存端,并调用GPU硬件帧解压缩接口,在GPU显存端中实现帧解压加速;
当在从GPU显存端往CPU内存端传输过程中时,调用GPU硬件帧压缩接口,对需要进行传输的数据进行压缩加速,并调用阈值均衡多通道多描述符DMA接口,将压缩加速后的数据加速从GPU显存端传输到CPU内存端,并调用由CPU SIMD指令实现的解压缩接口,在CPU内存端中实现帧解压加速。
2.根据权利要求1所述的一种GPU驱动优化方法,其特征在于,调用阈值均衡多通道多描述符DMA接口,压缩加速后的数据加速在CPU内存端及GPU显存端之间的传输过程,包括:
建立DMA传输任务队列管理,用于负责传输任务的管理,包括:DMA传输任务的添加或释放、DMA传输通道的分配、DMA多描述符的建立以及DMA传输任务的启动或取消;
当OpenGL绘图渲染任务需要进行BUFFER缓存数据传输时,OpenGL绘图渲染任务将BUFFER缓存数据传输内容提交至DMA传输任务队列;
当所述BUFFER缓存数据传输内容满足DMA通道描述符最大承载量时,DMA传输任务队列开始传输数据,传输机制包括:
若所述BUFFER缓存数据传输内容的数据量小于预设DMA阈值,则采用memcpy直接拷贝的拷贝方式,进行传输;
若所述BUFFER缓存数据传输内容的数据量大于预设DMA阈值,则采用DMA拷贝的拷贝方式,进行传输。
3.根据权利要求2所述的一种GPU驱动优化方法,其特征在于,DMA传输任务队列进行DMA传输通道的分配,包括:
DMA传输任务队列通过采用均衡负载的算法实现对DMA传输通道的分配。
4.根据权利要求2所述的一种GPU驱动优化方法,其特征在于,DMA传输任务队列进行DMA多描述符的建立,包括:
DMA传输任务队列通过链式结构实现对DMA多描述符的建立,所述描述符包括传输源地址、传输目的地址、传输长度以及下一个描述符的地址。
5.根据权利要求2所述的一种GPU驱动优化方法,其特征在于,通过进行预试验计算预设DMA阈值,预设DMA阈值包括预设写DMA阈值以及预设读DMA阈值,其中,预设写DMA阈值为从CPU内存端到GPU显存端进行预试验得到的阈值,预设读DMA阈值为从GPU显存端到CPU内存端进行预试验得到的阈值,预试验计算预设DMA阈值的过程包括:
设置固定长度的数据;
分别通过DMA拷贝以及memcpy直接拷贝的两种拷贝方式,将该固定长度的数据在CPU内存端以及GPU显存端之间进行传输,得到DMA拷贝传输时长以及memcpy直接拷贝传输时长;
若所述DMA拷贝传输时长小于memcpy直接拷贝传输时长,则对所述固定长度的数据的长度进行减少,若所述DMA拷贝传输时长大于所述memcpy直接拷贝传输时长,则对所述固定长度的数据的长度进行增加,直至所述DMA拷贝传输时长等于所述memcpy直接拷贝传输时长;
将所述DMA拷贝传输时长等于所述memcpy直接拷贝传输时长时的数据长度确定为预设DMA阈值。
6.根据权利要求5所述的一种GPU驱动优化方法,其特征在于,当计算出预设DMA阈值之后,将预设DMA阈值作为配置文件保存,在驱动初始化时加载所述预设DMA阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410308725.0A CN117909268B (zh) | 2024-03-19 | 2024-03-19 | 一种gpu驱动优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410308725.0A CN117909268B (zh) | 2024-03-19 | 2024-03-19 | 一种gpu驱动优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117909268A true CN117909268A (zh) | 2024-04-19 |
CN117909268B CN117909268B (zh) | 2024-05-24 |
Family
ID=90684245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410308725.0A Active CN117909268B (zh) | 2024-03-19 | 2024-03-19 | 一种gpu驱动优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117909268B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630293A (zh) * | 2003-12-19 | 2005-06-22 | 华为技术有限公司 | 一种通讯系统中多通道数据传输的方法和装置 |
CN106201401A (zh) * | 2016-07-08 | 2016-12-07 | 中霆云计算科技(上海)有限公司 | 用于虚拟桌面呈现的3d图像加速显示方法 |
CN106204675A (zh) * | 2016-07-08 | 2016-12-07 | 中霆云计算科技(上海)有限公司 | 虚拟桌面呈现设备中的2d显示加速方法 |
CN106530285A (zh) * | 2016-10-21 | 2017-03-22 | 国网山东省电力公司电力科学研究院 | 一种基于gpu与cpu混合数据处理的输电线路部件识别方法 |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
CN108563466A (zh) * | 2018-04-14 | 2018-09-21 | 湖南跨线桥航天科技有限公司 | 一种提高gpu使用率的跟踪流水处理方法 |
CN110865953A (zh) * | 2019-10-08 | 2020-03-06 | 华南师范大学 | 异步拷贝方法和装置 |
CN114428786A (zh) * | 2021-12-15 | 2022-05-03 | 平凯星辰(北京)科技有限公司 | 分布式流水线的数据处理方法、装置及存储介质 |
CN114461406A (zh) * | 2022-04-13 | 2022-05-10 | 麒麟软件有限公司 | DMA OpenGL优化方法 |
CN116644010A (zh) * | 2023-06-09 | 2023-08-25 | 广东浪潮智慧计算技术有限公司 | 一种数据处理方法、装置、设备及介质 |
-
2024
- 2024-03-19 CN CN202410308725.0A patent/CN117909268B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630293A (zh) * | 2003-12-19 | 2005-06-22 | 华为技术有限公司 | 一种通讯系统中多通道数据传输的方法和装置 |
CN106201401A (zh) * | 2016-07-08 | 2016-12-07 | 中霆云计算科技(上海)有限公司 | 用于虚拟桌面呈现的3d图像加速显示方法 |
CN106204675A (zh) * | 2016-07-08 | 2016-12-07 | 中霆云计算科技(上海)有限公司 | 虚拟桌面呈现设备中的2d显示加速方法 |
CN106530285A (zh) * | 2016-10-21 | 2017-03-22 | 国网山东省电力公司电力科学研究院 | 一种基于gpu与cpu混合数据处理的输电线路部件识别方法 |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
CN108563466A (zh) * | 2018-04-14 | 2018-09-21 | 湖南跨线桥航天科技有限公司 | 一种提高gpu使用率的跟踪流水处理方法 |
CN110865953A (zh) * | 2019-10-08 | 2020-03-06 | 华南师范大学 | 异步拷贝方法和装置 |
CN114428786A (zh) * | 2021-12-15 | 2022-05-03 | 平凯星辰(北京)科技有限公司 | 分布式流水线的数据处理方法、装置及存储介质 |
CN114461406A (zh) * | 2022-04-13 | 2022-05-10 | 麒麟软件有限公司 | DMA OpenGL优化方法 |
CN116644010A (zh) * | 2023-06-09 | 2023-08-25 | 广东浪潮智慧计算技术有限公司 | 一种数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117909268B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6919896B2 (en) | System and method of optimizing graphics processing | |
EP2225729B1 (en) | Unified compression/decompression graphics architecture | |
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
WO2023279993A1 (zh) | 图形渲染方法、装置、电子设备与存储介质 | |
WO2021109699A1 (zh) | 人工智能加速器、设备、芯片及数据处理方法 | |
CN105122210B (zh) | Gpu虚拟化的实现方法及相关装置和系统 | |
US20110279462A1 (en) | Method of and subsystem for graphics processing in a pc-level computing system | |
JP4416694B2 (ja) | データ転送調停装置およびデータ転送調停方法 | |
US7725623B2 (en) | Command transfer controlling apparatus and command transfer controlling method | |
US20220012587A1 (en) | Convolution operation method and convolution operation device | |
WO2024082878A1 (zh) | 渲染处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN114461406A (zh) | DMA OpenGL优化方法 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
US20040085322A1 (en) | System and method for performing BLTs | |
CN112037117A (zh) | 用于运行高性能gpu应用的方法、装置及计算机存储介质 | |
CN117909268B (zh) | 一种gpu驱动优化方法 | |
CN113177211A (zh) | 用于隐私计算的fpga芯片、异构处理系统及计算方法 | |
US6166724A (en) | Method and apparatus for sequencing palette updates in a video graphics system | |
US20240257432A1 (en) | Method of generating a mipmap | |
WO2024169030A1 (zh) | 基于多gpu的图像渲染方法、装置及可读存储介质 | |
CN116681575B (zh) | 图形处理单元、图形渲染方法、存储介质、终端设备 | |
US20240320896A1 (en) | Multi-gpu-based image rendering method and apparatus, and readable storage medium | |
US20230377086A1 (en) | Pipeline delay elimination with parallel two level primitive batch binning | |
JP2024127317A (ja) | 情報処理装置および情報処理方法 | |
CN117873664A (zh) | 任务调度模块、处理器、电子装置、设备及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |