CN111881078B - 基于gpgpu芯片的多用户通用计算处理方法和系统 - Google Patents

基于gpgpu芯片的多用户通用计算处理方法和系统 Download PDF

Info

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
Application number
CN202010690286.6A
Other languages
English (en)
Other versions
CN111881078A (zh
Inventor
李先彧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhirui Electronic Technology Co ltd
Original Assignee
Shanghai Zhirui Electronic Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhirui Electronic Technology Co ltd filed Critical Shanghai Zhirui Electronic Technology Co ltd
Priority to CN202010690286.6A priority Critical patent/CN111881078B/zh
Publication of CN111881078A publication Critical patent/CN111881078A/zh
Application granted granted Critical
Publication of CN111881078B publication Critical patent/CN111881078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor 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芯片的多用户通用计算处理方法和系统。
背景技术
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芯片的多用户通用计算处理系统,其特征在于,所述多用户通用计算处理系统包括仲裁器;
所述仲裁器用于记录总线上每个节点的状态,以及控制每个请求端和总线进行数据交互的时间点。
CN202010690286.6A 2020-07-17 2020-07-17 基于gpgpu芯片的多用户通用计算处理方法和系统 Active CN111881078B (zh)

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)

* Cited by examiner, † Cited by third party
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 海光信息技术股份有限公司 数据处理装置、方法、芯片、处理器、设备及存储介质

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