CN107908428A - 一种帧、页同步的gpu图形指令缓冲同步方法 - Google Patents
一种帧、页同步的gpu图形指令缓冲同步方法 Download PDFInfo
- Publication number
- CN107908428A CN107908428A CN201711202638.3A CN201711202638A CN107908428A CN 107908428 A CN107908428 A CN 107908428A CN 201711202638 A CN201711202638 A CN 201711202638A CN 107908428 A CN107908428 A CN 107908428A
- Authority
- CN
- China
- Prior art keywords
- page
- ringbuffer
- management
- modules
- write pointer
- 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
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)的写指针请求,将指针更新到ringbuffer IO控制模块(4);空闲空间管理在接收到页管理模块(2)的页同步操作请求,根据当前空闲空间大小处理页同步操作,若当前空闲空间大小能够分出新的页空间,则页同步成功并将页空闲空间大小反馈给页管理模块(2),否则页同步失败,向ringbuffer IO控制模块(4)发送IO操作请求;
所述ringbuffer IO控制模块(4),包含读指针、写指针、ringbuffer大小、数据传输启动控制。
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 true CN107908428A (zh) | 2018-04-13 |
CN107908428B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109671013A (zh) * | 2018-12-12 | 2019-04-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多gpu的高性能图形指令存储分发方法 |
CN110888737A (zh) * | 2019-11-18 | 2020-03-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多GPU的Ringbuffer实现系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231619A (zh) * | 2008-02-22 | 2008-07-30 | 浙江大学 | 一种基于非连续页的动态内存管理方法 |
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 | 株式会社理光 | 图像处理系统,图像处理方法及存储介质 |
US20110057938A1 (en) * | 2009-09-09 | 2011-03-10 | Advanced Micro Devices, Inc. | Variable Frequency Output To One Or More Buffers |
CN102200989A (zh) * | 2010-03-24 | 2011-09-28 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
CN103778084A (zh) * | 2012-10-23 | 2014-05-07 | 扬智科技股份有限公司 | 储存装置以及其循环缓冲器的存取方法 |
US20160378674A1 (en) * | 2015-06-23 | 2016-12-29 | Ati Technologies Ulc | Shared virtual address space for heterogeneous processors |
CN106708601A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向GPU实现的虚拟IOringbuffer的方法 |
-
2017
- 2017-11-24 CN CN201711202638.3A patent/CN107908428B/zh active Active
Patent Citations (8)
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 |
CN101231619A (zh) * | 2008-02-22 | 2008-07-30 | 浙江大学 | 一种基于非连续页的动态内存管理方法 |
CN101594451A (zh) * | 2008-04-14 | 2009-12-02 | 株式会社理光 | 图像处理系统,图像处理方法及存储介质 |
US20110057938A1 (en) * | 2009-09-09 | 2011-03-10 | Advanced Micro Devices, Inc. | Variable Frequency Output To One Or More Buffers |
CN102200989A (zh) * | 2010-03-24 | 2011-09-28 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
CN103778084A (zh) * | 2012-10-23 | 2014-05-07 | 扬智科技股份有限公司 | 储存装置以及其循环缓冲器的存取方法 |
US20160378674A1 (en) * | 2015-06-23 | 2016-12-29 | Ati Technologies Ulc | Shared virtual address space for heterogeneous processors |
CN106708601A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向GPU实现的虚拟IOringbuffer的方法 |
Non-Patent Citations (1)
Title |
---|
王海清: "嵌入式GPU硬件加速渲染的纹理传输优化及预取策略研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109671013A (zh) * | 2018-12-12 | 2019-04-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多gpu的高性能图形指令存储分发方法 |
CN109671013B (zh) * | 2018-12-12 | 2023-04-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多gpu的高性能图形指令存储分发方法 |
CN110888737A (zh) * | 2019-11-18 | 2020-03-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多GPU的Ringbuffer实现系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107908428B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
CN107305534B (zh) | 同时进行内核模式访问和用户模式访问的方法 | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
CN101727282B (zh) | 一种交互界面动画的实现方法 | |
TWI712951B (zh) | 電子存放裝置的任務管理方法、主機和存儲裝置 | |
CN116886751B (zh) | 一种异构设备的高速通信方法、装置和异构通信系统 | |
CN104798063A (zh) | 存储设备和主机设备 | |
US8914571B2 (en) | Scheduler for memory | |
CN103078958A (zh) | 一种基于可缩放矢量图形svg结合富互联网ria的电力scada web方式实时监控复视方法 | |
CN107908428A (zh) | 一种帧、页同步的gpu图形指令缓冲同步方法 | |
CN102521178A (zh) | 高可靠性嵌入式人机界面及其实现方法 | |
CN110046114B (zh) | 基于pcie协议的dma控制器及dma数据传输方法 | |
CN112799840B (zh) | 用于传输数据的方法、装置、设备以及存储介质 | |
CN101963947A (zh) | 通用序列总线传输转译器及大量传输方法 | |
CN101154166A (zh) | 一种虚拟机系统及其显卡访问方法 | |
CN113434087A (zh) | 基于共享空间的多核启动方法 | |
CN104598453A (zh) | 基于数据缓冲的数据迁移方法 | |
CN109614200A (zh) | 一种提取Parallels Desktop虚拟机的hds镜像数据的方法 | |
JP4809166B2 (ja) | リモートi/oを構成する計算機システム及びi/oデータ転送方法 | |
CN112711442B (zh) | 一种主机命令写入方法、设备、系统及可读存储介质 | |
CN106708601A (zh) | 一种面向GPU实现的虚拟IOringbuffer的方法 | |
CN105786449A (zh) | 基于图形处理的指令调度方法及装置 | |
CN203241856U (zh) | 基于云计算服务的桌面终端 | |
JP6901138B2 (ja) | 演算処理装置、情報処理装置及び入出力処理方法 | |
CN109542628A (zh) | 一种基于状态机的层次化gpu资源管理系统 |
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 |