CN107908428B - 一种帧、页同步的gpu图形指令缓冲同步方法 - Google Patents
一种帧、页同步的gpu图形指令缓冲同步方法 Download PDFInfo
- Publication number
- CN107908428B CN107908428B CN201711202638.3A CN201711202638A CN107908428B CN 107908428 B CN107908428 B CN 107908428B CN 201711202638 A CN201711202638 A CN 201711202638A CN 107908428 B CN107908428 B CN 107908428B
- Authority
- CN
- China
- Prior art keywords
- page
- ringbuffer
- management module
- instruction
- synchronization
- 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.)
- Active
Links
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明属于计算机应用领域,涉及一种帧、页同步的GPU图形指令缓冲同步方法。本发明的实现依赖于以下模块:图形API指令处理接口(1)、页管理(2)、ringbuffer管理(3)、ringbuffer IO控制(4)。本发明通过构建Ringbuffer页式管理和虚拟IO管理的方法,提高GPU图形指令生成与图形指令处理之间的同步粒度,且减少图形API执行过程中的IO操作,提升图形操作执行效率。
Description
技术领域
本发明属于软件设计领域,涉及一种帧、页同步的GPU图形指令缓冲同步方法。
背景技术
OpenGL、DirectX图形接口标准定义的图形指令同步方式都是强制图形指令执行的帧同步方式,但帧同步方式将图形指令执行与图形指令处理串行执行,影响绘图效率。公开的资料中未发现有关帧、页同步的GPU图形指令缓冲同步方法。
发明内容
本发明的目的是:为了解决现有技术中的问题,本发明通过构建页式管理和ringbuffer虚拟IO管理方法,提高GPU图形指令生成与图形指令处理之间的同步粒度,且减少图形API执行过程中的IO操作,提升图形操作执行效率。
本发明的技术方案是:
一种帧、页同步的GPU图形指令缓冲同步方法,所述方法的实现依赖于以下模块:图形API指令处理接口模块(1)、页管理模块(2)、ringbuffer管理模块(3)、ringbuffer IO控制模块(4);
所述图形API指令处理接口模块(1),接收图形应用程序,转化为直接帧同步操作和指令存储操作,将帧同步操作发送给ringbuffer管理模块(3)处理,将指令存储操作发送给页管理模块(2)。
所述页管理模块(2),接收图形API指令处理接口模块(1)的指令存储操作请求,根据当前页空闲空间大小处理指令存储操作,若当前页空闲空间大小满足当前指令的存储需求,向ringbuffer管理模块(3)发送写指针请求;若当前页空闲空间大小不满足当前指令的存储需求,则将页同步操作发送给 ringbuffer管理模块(3);
所述ringbuffer管理模块(3),包含写指针操作和空闲空间管理;写指针操作是更新ringbuffer写指针地址,空闲空间管理是更新空闲空间大小;写指针在接收到图形API指令处理接口模块(1)的帧同步操作请求或接收到页管理模块(2)的写指针请求,将指针更新到ringbuffer IO控制模块(4);空闲空间管理在接收到页管理模块(2)的页同步操作请求,根据当前空闲空间大小处理页同步操作,若当前空闲空间大小能够分出新的页空间,则页同步成功并将页空闲空间大小反馈给页管理模块(2),否则页同步失败,向ringbuffer IO控制模块(4)发送IO操作请求;
所述ringbuffer IO控制模块(4),包含读指针、写指针、ringbuffer大小、数据传输启动控制。
a)读指针:表示当前ringbuffer数据搬移到的地址或地址标记;
b)写指针:表示当前ringbuffer数据存储的地址或者地址标记;
c)ringbuffer大小:ringbuffer空间总大小;
d)数据传输启动:用于控制ringbuffer中当前存储数据的搬移,可被动启动搬移,也可自动启动搬移;自动启动搬移可由一定的触发条件触发,触发条件可以是容量信息、时间信息等。
本发明的优点是:本发明提供了一种帧、页同步的GPU图形指令缓冲同步方法,通过构建页式管理和ringbuffer管理方法,减少图形API执行过程中频繁的IO操作,提升图形操作映射效率,降低GPU主机接口通信仲裁开销,提高带宽利用率,图形API执行效率大幅度上升。
附图说明
图1为一种帧、页同步的GPU图形指令缓冲同步方法;
图2为本发明中具体帧、页同步的GPU图形指令缓冲实施方式。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明:
参见图1,一种帧、页同步的GPU图形指令缓冲同步方法,所述方法的实现依赖于以下模块:图形API指令处理接口模块(1)、页管理模块(2)、 ringbuffer管理模块(3)、ringbuffer IO控制模块(4);
所述图形API指令处理接口模块(1),接收图形应用程序,转化为直接帧同步操作和指令存储操作,将帧同步操作发送给ringbuffer管理模块(3)处理,将指令存储操作发送给页管理模块(2)。
所述页管理模块(2),接收图形API指令处理接口模块(1)的指令存储操作请求,根据当前页空闲空间大小处理指令存储操作,若当前页空闲空间大小满足当前指令的存储需求,向ringbuffer管理模块(3)发送写指针请求;若当前页空闲空间大小不满足当前指令的存储需求,则将页同步操作发送给 ringbuffer管理模块(3);
所述ringbuffer管理模块(3),包含写指针操作和空闲空间管理;写指针操作是更新ringbuffer写指针地址,空闲空间管理是更新空闲空间大小;写指针在接收到图形API指令处理接口模块(1)的帧同步操作请求或接收到页管理模块(2)的写指针请求,将指针更新到ringbuffer IO控制模块(4);空闲空间管理在接收到页管理模块(2)的页同步操作请求,根据当前空闲空间大小处理页同步操作,若当前空闲空间大小能够分出新的页空间,则页同步成功并将页空闲空间大小反馈给页管理模块(2),否则页同步失败,向ringbuffer IO控制模块(4)发送IO操作请求;
所述ringbuffer IO控制模块(4),包含读指针、写指针、ringbuffer大小、数据传输启动控制。
a)读指针:表示当前ringbuffer数据搬移到的地址或地址标记;
b)写指针:表示当前ringbuffer数据存储的地址或者地址标记;
c)ringbuffer大小:ringbuffer空间总大小;
d)数据传输启动:用于控制ringbuffer中当前存储数据的搬移,可被动启动搬移,也可自动启动搬移;自动启动搬移可由一定的触发条件触发,触发条件可以是容量信息、时间信息等。
具体帧、页同步的GPU图形指令缓冲实施方式如图2所示,绘制一帧时间由为SW和HW的较大时间,在图形API处理过程中仅帧同步或者页同步失败才进行实际IO操作,大大提升了图形API处理性能。
Claims (1)
1.一种帧、页同步的GPU图形指令缓冲同步方法,其特征为:所述方法的实现依赖于以下模块:图形API指令处理接口模块(1)、页管理模块(2)、ringbuffer管理模块(3)、ringbuffer IO控制模块(4);
所述图形API指令处理接口模块(1),接收图形应用程序,转化为直接帧同步操作和指令存储操作,将帧同步操作发送给ringbuffer管理模块(3)处理,将指令存储操作发送给页管理模块(2);
所述页管理模块(2),接收图形API指令处理接口模块(1)的指令存储操作请求,根据当前页空闲空间大小处理指令存储操作,若当前页空闲空间大小满足当前指令的存储需求,向ringbuffer管理模块(3)发送写指针请求;若当前页空闲空间大小不满足当前指令的存储需求,则将页同步操作发送给ringbuffer管理模块(3);
所述ringbuffer管理模块(3),包含写指针操作和空闲空间管理;写指针操作是更新ringbuffer写指针地址,空闲空间管理是更新空闲空间大小;写指针在接收到图形API指令处理接口模块(1)的帧同步操作请求或接收到页管理模块(2)的写指针请求,将指针更新到ringbufferIO控制模块(4);空闲空间管理在接收到页管理模块(2)的页同步操作请求,根据当前空闲空间大小处理页同步操作,若当前空闲空间大小能够分出新的页空间,则页同步成功并将页空闲空间大小反馈给页管理模块(2),否则页同步失败,向ringbuffer IO控制模块(4)发送IO操作请求;
所述ringbuffer IO控制模块(4),包含读指针、写指针、ringbuffer大小、数据传输启动控制;
具体帧、页同步的GPU图形指令缓冲实施方式为:在图形API处理过程中仅帧同步或者页同步失败才进行实际IO操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711202638.3A CN107908428B (zh) | 2017-11-24 | 2017-11-24 | 一种帧、页同步的gpu图形指令缓冲同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711202638.3A CN107908428B (zh) | 2017-11-24 | 2017-11-24 | 一种帧、页同步的gpu图形指令缓冲同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107908428A CN107908428A (zh) | 2018-04-13 |
CN107908428B true CN107908428B (zh) | 2021-09-14 |
Family
ID=61848843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711202638.3A Active CN107908428B (zh) | 2017-11-24 | 2017-11-24 | 一种帧、页同步的gpu图形指令缓冲同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908428B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109671013B (zh) * | 2018-12-12 | 2023-04-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多gpu的高性能图形指令存储分发方法 |
CN110888737A (zh) * | 2019-11-18 | 2020-03-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多GPU的Ringbuffer实现系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231619A (zh) * | 2008-02-22 | 2008-07-30 | 浙江大学 | 一种基于非连续页的动态内存管理方法 |
CN103778084A (zh) * | 2012-10-23 | 2014-05-07 | 扬智科技股份有限公司 | 储存装置以及其循环缓冲器的存取方法 |
CN106708601A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向GPU实现的虚拟IOringbuffer的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7623134B1 (en) * | 2006-06-15 | 2009-11-24 | Nvidia Corporation | System and method for hardware-based GPU paging to system memory |
CN101594451A (zh) * | 2008-04-14 | 2009-12-02 | 株式会社理光 | 图像处理系统,图像处理方法及存储介质 |
US9244690B2 (en) * | 2009-09-09 | 2016-01-26 | Advanced Micro Devices, Inc. | Variable frequency output to one or more buffers |
JP2011205217A (ja) * | 2010-03-24 | 2011-10-13 | Sony Corp | 情報処理装置、情報処理方法、プログラム |
US11100004B2 (en) * | 2015-06-23 | 2021-08-24 | Advanced Micro Devices, Inc. | Shared virtual address space for heterogeneous processors |
-
2017
- 2017-11-24 CN CN201711202638.3A patent/CN107908428B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231619A (zh) * | 2008-02-22 | 2008-07-30 | 浙江大学 | 一种基于非连续页的动态内存管理方法 |
CN103778084A (zh) * | 2012-10-23 | 2014-05-07 | 扬智科技股份有限公司 | 储存装置以及其循环缓冲器的存取方法 |
CN106708601A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向GPU实现的虚拟IOringbuffer的方法 |
Non-Patent Citations (1)
Title |
---|
嵌入式GPU硬件加速渲染的纹理传输优化及预取策略研究;王海清;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140715;24-26 * |
Also Published As
Publication number | Publication date |
---|---|
CN107908428A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3951595A1 (en) | Method and apparatus for graphics rendering | |
US9965014B2 (en) | Techniques for tracing wakelock usage | |
CN108959117B (zh) | H2d写操作加速方法、装置、计算机设备及存储介质 | |
TWI712951B (zh) | 電子存放裝置的任務管理方法、主機和存儲裝置 | |
CN103180852A (zh) | 分布式数据处理方法及装置 | |
US8914571B2 (en) | Scheduler for memory | |
CN107908428B (zh) | 一种帧、页同步的gpu图形指令缓冲同步方法 | |
US20220253252A1 (en) | Data processing method and apparatus | |
CN104281668A (zh) | 一种数据处理方法 | |
CN105787129B (zh) | 一种数据存储方法和电子设备 | |
CN103200237B (zh) | 一种保持远程桌面同步的方法和装置 | |
CN108563519B (zh) | 基于gpgpu中的2d桌面块拷贝填充操作的实现 | |
CN113220650B (zh) | 数据存储方法、装置、设备、存储介质及程序 | |
CN113672172A (zh) | 应用于led显示控制系统的数据交互方法以及接收卡 | |
CN111309740B (zh) | 一种数据处理的方法、装置、设备及存储介质 | |
CN112286852B (zh) | 基于iic总线的数据通信方法和数据通信装置 | |
CN111984198A (zh) | 消息队列实现方法、装置及电子设备 | |
US20110185142A1 (en) | Information processing apparatus and data saving acceleration method of the information processing apparatus | |
CN106708601A (zh) | 一种面向GPU实现的虚拟IOringbuffer的方法 | |
CN109992560B (zh) | 一种通信方法及通信系统 | |
CN103593305A (zh) | 信息处理设备、信息处理方法以及程序 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN105518617A (zh) | 缓存数据的处理方法及装置 | |
CN106897021A (zh) | 一种读写数据的方法和装置 | |
CN110888737A (zh) | 一种支持多GPU的Ringbuffer实现系统及方法 |
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 |