CN111881078B - 基于gpgpu芯片的多用户通用计算处理方法和系统 - Google Patents
基于gpgpu芯片的多用户通用计算处理方法和系统 Download PDFInfo
- Publication number
- CN111881078B CN111881078B CN202010690286.6A CN202010690286A CN111881078B CN 111881078 B CN111881078 B CN 111881078B CN 202010690286 A CN202010690286 A CN 202010690286A CN 111881078 B CN111881078 B CN 111881078B
- Authority
- CN
- China
- Prior art keywords
- chip
- independent
- computing
- gpgpu
- computing unit
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 239000004744 fabric Substances 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 claims description 4
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于GPGPU芯片的多用户通用计算处理方法和系统,通过配置结构路由规则将GPGPU芯片分割成多个独立的计算单元群,每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见。本发明增加了软件的灵活性,对于多用户的计算更有优势;同时,每对计算引擎可以独立的工作,确保可预期的延迟和吞吐量,降低存储体冲突几率,使各计算引擎之间的工作互不干扰。
Description
技术领域
本发明涉及GPGPU芯片技术领域,具体而言涉及一种基于GPGPU芯片的多用户通用计算处理方法和系统。
背景技术
GPGPU芯片由于强大的并行处理能力和可编程流水线,是一种大规模并行处理器。它不仅有助于复杂的浮点计算处理,而且容易编程,目前常被用来计算原本由中央处理器处理的通用计算任务。特别在面对单指令流多数据流(SIMD),且数据处理的运算量远大于数据调度和传输的需要时,通用图形处理器在性能上大大超越了传统的中央处理器应用程序。
然而,传统GPGPU芯片只能支持一个用户的通用计算,在计算需求不充足情况下,计算资源并不能得到全部利用,对计算资源造成了极大的浪费。
发明内容
本发明针对现有技术中的不足,提供一种基于GPGPU芯片的多用户通用计算处理方法和系统,通过配置结构路由规则将GPGPU芯片分割成多个独立的计算单元群,每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见。本发明增加了软件的灵活性,对于多用户的计算更有优势。
为实现上述目的,本发明采用以下技术方案:
一种基于GPGPU芯片的多用户通用计算处理方法,所述处理方法包括:
采用结构路由分配原则将GPGPU芯片分割成多个独立的计算单元群,每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见。
为优化上述技术方案,采取的具体措施还包括:
进一步地,所述每个计算单元群包括至少两个计算引擎,每个计算引擎均有分离的物理独立的路径访问与之对应的全局内存空间。
进一步地,所述处理方法还包括:
采用仲裁器记录总线上每个节点的状态,控制每个请求端和总线进行数据交互的时间点。
进一步地,所述处理方法还包括:
通过配置ch_map寄存器,对芯片进行分割,以及对每个计算单元群对应的全局内存空间位置进行设置。
进一步地,所述处理方法还包括:
将ch_map寄存器的mode配置为1,使GPU芯片分割成4个物理完全独立的计算单元群。
本发明还提及一种基于GPGPU芯片的多用户通用计算处理系统,所述多用户通用计算处理系统包括采用如前所述的处理方法分割出的多个独立的计算单元群;
每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见。
进一步地,所述多用户通用计算处理系统包括4个独立的计算单元群,每个计算单元群的fabric L1具有独立的ch_map寄存器,通过配置ch_map寄存器,改变fabric L1的routing方案,对每个计算单元群对应的全局内存空间位置进行设置;
所述每个计算单元群具有两个相互独立的计算引擎,每个计算引擎均有分离的物理独立的路径访问与之对应的全局内存空间。
进一步地,所述多用户通用计算处理系统包括仲裁器;
所述仲裁器用于记录总线上每个节点的状态,以及控制每个请求端和总线进行数据交互的时间点。
本发明的有益效果是:
(1)通过配置结构路由规则将GPGPU芯片分割成多个独立的计算单元群,增加了软件的灵活性,对于多用户的计算更有优势。
(2)每对计算引擎都有分离的物理独立的路径访问全局内存,结合独立的末级缓存,保证每对计算引擎可以独立的工作,确保可预期的延迟和吞吐量,降低存储体冲突几率,使各计算引擎之间的工作互不干扰。
(3)由于全局内存对于片上dma是全局可见的,增加了软件的可处理性。
(4)通过配置ch_map寄存器,改变芯片访问存储空间的routing的方式,对芯片进行任意分割,以及对每个计算单元群对应的全局内存空间位置进行任意组合设置,降低了存储体冲突几率。
附图说明
图1是基于GPGPU芯片的多用户通用计算处理方法的流程示意图。
图2是采用本发明的基于GPGPU芯片的多用户通用计算处理方法分割后的GPU芯片的结构示意图。
图3是分割后的GPGPU芯片的工作原理示意图。
图4是本发明的其中一种配置程序示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
结合图1,本发明提及了一种基于GPGPU芯片的多用户通用计算处理方法,所述处理方法包括:
采用结构路由分配原则将GPGPU芯片分割成多个独立的计算单元群,每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见。
采用所述计算单元群同时处理多用户的通用计算任务。
本发明采用fabric routing分配原则将一个芯片的GPGPU分割成多个独立的计算单元群,每个计算单元群均拥有独立的L1/last level cache/memory,同时全局内存又是dma全局可见的,增加了软件的灵活性,对于多用户的计算更有优势,有效的减少了资源空置率。可以看到,在不改变fabric routing规则时候,全局内存是对所有计算单元可见的。参见图2,分割后的GPU芯片的每个计算引擎都可以访问global memory的32GB空间。
在配置fabric L1 routing的原则时候,参见图3,compute engine0/computeengine1作为一个共享计算单元只会访问global memory0,以此类推,compute engine 6/compute engine 7作为一个共享计算单元只会访问global memory 3。这样每对计算引擎都有分离的物理独立的路径访问全局内存,结合独立的last level cachel,保证每对计算引擎可以独立的工作,确保可预期的延迟和吞吐量,降低bank conflict几率,计算引擎之间互不干扰,由仲裁器记录总线每个节点状态,控制每个请求端在哪个时间点发送数据到总线(或者从总线拿数据)。同时由于全局内存对于片上dma是全局可见的,增加了软件的可处理性。
作为其中的一种优选例,结合图4,每个fabric l1都有独立的寄存器channel_map,通过配置mode=1可以将芯片任意分割成4个物理完全独立的计算单元,进行多用户的数据运算。应当理解,本实施例中的分配只是一种示例,可以通过配置ch_map寄存器任意组合每个独立计算单元对应的memory位置,降低memory bank conflict。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (5)
1.一种基于GPGPU芯片的多用户通用计算处理方法,其特征在于,所述处理方法包括:
采用结构路由分配原则将GPGPU芯片分割成多个独立的计算单元群,每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见;
所述处理方法还包括:通过配置ch_map寄存器,对芯片进行分割,以及对每个计算单元群对应的全局内存空间位置进行设置;将ch_map寄存器的mode配置为1,使GPGPU芯片分割成4个物理完全独立的计算单元群。
2.根据权利要求1所述的基于GPGPU芯片的多用户通用计算处理方法,其特征在于,所述每个计算单元群包括至少两个计算引擎,每个计算引擎均有分离的物理独立的路径访问与之对应的全局内存空间。
3.根据权利要求1所述的基于GPGPU芯片的多用户通用计算处理方法,其特征在于,所述处理方法还包括:
采用仲裁器记录总线上每个节点的状态,控制每个请求端和总线进行数据交互的时间点。
4.一种基于GPGPU芯片的多用户通用计算处理系统,其特征在于,所述多用户通用计算处理系统包括采用如权利要求1-2任意一项所述的处理方法分割出的多个独立的计算单元群;
每个计算单元群设有独立的L1数据缓存、L1指令缓存、共享内存、末级缓存和全局内存空间;其中,全局内存对片上DMA全局可见;
所述多用户通用计算处理系统包括4个独立的计算单元群,每个计算单元群的fabricL1具有独立的ch_map寄存器,通过配置ch_map寄存器,对每个计算单元群对应的全局内存空间位置进行设置;
所述每个计算单元群具有两个相互独立的计算引擎,每个计算引擎均有分离的物理独立的路径访问与之对应的全局内存空间。
5.根据权利要求4所述的基于GPGPU芯片的多用户通用计算处理系统,其特征在于,所述多用户通用计算处理系统包括仲裁器;
所述仲裁器用于记录总线上每个节点的状态,以及控制每个请求端和总线进行数据交互的时间点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010690286.6A CN111881078B (zh) | 2020-07-17 | 2020-07-17 | 基于gpgpu芯片的多用户通用计算处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010690286.6A CN111881078B (zh) | 2020-07-17 | 2020-07-17 | 基于gpgpu芯片的多用户通用计算处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881078A CN111881078A (zh) | 2020-11-03 |
CN111881078B true CN111881078B (zh) | 2022-04-19 |
Family
ID=73155795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010690286.6A Active CN111881078B (zh) | 2020-07-17 | 2020-07-17 | 基于gpgpu芯片的多用户通用计算处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881078B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9804995B2 (en) * | 2011-01-14 | 2017-10-31 | Qualcomm Incorporated | Computational resource pipelining in general purpose graphics processing unit |
KR101639943B1 (ko) * | 2015-03-12 | 2016-07-15 | 성균관대학교산학협력단 | 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서 |
US10043232B1 (en) * | 2017-04-09 | 2018-08-07 | Intel Corporation | Compute cluster preemption within a general-purpose graphics processing unit |
US10373285B2 (en) * | 2017-04-09 | 2019-08-06 | Intel Corporation | Coarse grain coherency |
CN108595258B (zh) * | 2018-05-02 | 2021-07-27 | 北京航空航天大学 | 一种gpgpu寄存器文件动态扩展方法 |
CN111080510B (zh) * | 2019-12-11 | 2021-02-12 | 海光信息技术股份有限公司 | 数据处理装置、方法、芯片、处理器、设备及存储介质 |
-
2020
- 2020-07-17 CN CN202010690286.6A patent/CN111881078B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111881078A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007527B2 (en) | Uniform load processing for parallel thread sub-sets | |
US10255228B2 (en) | System and method for performing shaped memory access operations | |
US9921847B2 (en) | Tree-based thread management | |
US9547535B1 (en) | Method and system for providing shared memory access to graphics processing unit processes | |
US9262174B2 (en) | Dynamic bank mode addressing for memory access | |
US9710306B2 (en) | Methods and apparatus for auto-throttling encapsulated compute tasks | |
US10346212B2 (en) | Approach for a configurable phase-based priority scheduler | |
US20130179662A1 (en) | Method and System for Resolving Thread Divergences | |
US8395631B1 (en) | Method and system for sharing memory between multiple graphics processing units in a computer system | |
KR20130010442A (ko) | 가상 gpu | |
US9229717B2 (en) | Register allocation for clustered multi-level register files | |
CN103218309A (zh) | 多级指令高速缓存预取 | |
US20140173606A1 (en) | Streaming processing of short read alignment algorithms | |
US20210232325A1 (en) | Application-specific memory scaling in multi-device systems | |
US9798544B2 (en) | Reordering buffer for memory access locality | |
US10289418B2 (en) | Cooperative thread array granularity context switch during trap handling | |
JP2018136922A (ja) | メモリープールを有するコンピューティングシステムのためのメモリー分割 | |
TWI501156B (zh) | 多頻時間切面組 | |
US10152329B2 (en) | Pre-scheduled replays of divergent operations | |
CN111881078B (zh) | 基于gpgpu芯片的多用户通用计算处理方法和系统 | |
TW201351276A (zh) | 計算工作的排程和執行 | |
US9262348B2 (en) | Memory bandwidth reallocation for isochronous traffic | |
US9928033B2 (en) | Single-pass parallel prefix scan with dynamic look back | |
CN109522102B (zh) | 一种基于i/o调度的多任务外存模式图处理方法 | |
US9830161B2 (en) | Tree-based thread management |
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 |