【技术实现步骤摘要】
GPU及相关方法
[0001]本申请涉及一种
GPU
,尤其涉及一种能够平行处理多个内核代码的
GPU。
技术介绍
[0002]由于绘图处理器
(graphic processing unit
,
GPU)
具有并行计算的特性,因此除了被用来绘制三维影像之外,也常被用来加速需要大量并行计算的人工智能模型或大数据分析
。
一般来说,
GPU
可包括多个流处理器组
(streaming multipleprocessor
,
SM)
,而每个流处理器组则可包括多个流处理器
(streaming processor
,
SP)。
当中央处理器欲利用
GPU
来执行计算时,会将所需执行的运算包裹成多个内核代码
(kernel code)
,其中每一个内核代码可包括多个线程块
(thread block)
,而每一线程块可包括多个线程束
。
在此情况下,
GPU
可依序将每一内核代码中的多个线程块分配至其中的多个流处理器组来执行,而每一个流处理器组中的多个流处理器则可以平行地执行线程块中对应线程束的多个线程
。
[0003]在有些情况下,为了提高
GPU
的运算效能,中央处理器可以将不具有相依性的内核代码放进不同的内核流,而当
GPU
接收到多个内核流 ...
【技术保护点】
【技术特征摘要】
1.
一种
GPU
,用来执行多个内核流,每一内核流包含需依序执行的多个内核代码,每一内核代码包括多个线程块,其特征在于,所述
GPU
包括:多个流处理器组,每一流处理器组用以执行至少一线程块;可用硬件资源表,用以记录所述多个流处理器组的可用硬件资源;资源比较器,用以依据所述可用硬件资源表,自所述多个内核流中的多个第一顺位内核代码选出所需硬件资源小于所述多个流处理器组的可用硬件资源的至少一第一可调度内核代码;流排程器,用以自所述至少一第一可调度内核代码选择一内核代码作为选定内核代码;及全局调度器,用以将所述选定内核代码中的多个线程块分配至所述多个流处理器组执行,及依据所述多个流处理器组的硬件资源使用状态更新所述可用硬件资源表
。2.
如权利要求1所述的
GPU
,其特征在于:每一内核代码还包括所需硬件资源表,用以纪录所述每一内核代码中每一线程块的所需硬件资源;及所述资源比较器是依据所述可用硬件资源表及所述多个第一顺位内核代码的多个所需硬件资源表判断所述多个第一顺位内核代码的所需硬件资源是否小于所述多个流处理器组的可用硬件资源
。3.
如权利要求1所述的
GPU
,其特征在于当所述至少一第一可调度内核代码中等待时间最长的第一可调度内核代码的等待时间大于预定阈值时,所述流排程器优先选择等待时间最长的所述第一可调度内核代码作为所述选定内核代码
。4.
如权利要求1所述的
GPU
,其特征在于所述资源比较器另用以依据所述可用硬件资源表,自所述至少一第一可调度内核代码中选出所需硬件资源与所述多个流处理器组的可用硬件资源最匹配的内核代码作为候选内核代码
。5.
如权利要求1所述的
GPU
,其特征在于所述资源比较器另用以依据所述可用硬件资源表,自所述至少一第一可调度内核代码中选出所需硬件资源最少的内核代码作为候选内核代码
。6.
如权利要求4或5所述的
GPU
,其特征在于当所述至少一第一可调度内核代码中等待时间最长的第一可调度内核代码的等待时间小于预定阈值时,所述流排程器优先选择所述候选内核代码作为所述选定内核代码
。7.
如权利要求1所述的
GPU
,其特征在于当所述至少一第一可调度内核代码中等待时间最长的第一可调度内核代码的等待时间小于预定阈值时,所述流排程器优先选择属于具有预设高优先位阶的内核流且等待时间最长的第一可调度内核代码作为所述选定内核代码
。8.
如权利要求1所述的
GPU
,其特征在于,在至少一时段中,所述多个流处理器组是同时处理来自至少两个内核代码的多个线程块
。9.
如权利要求1所述的
GPU
,其特征在于,在所述全局调度器将所述选定内核代码分配至所述多个流处理器组执行后,所述资源比较器依据更新后的所述可用硬件资源表,自所述多个第一顺位内核代码中尚未被分配的多个内核代码以及所述选定内核代码原先所属的内核流中,接续在所述选定内核代码之后的内核代码中,选出所需硬件资源小于所述多个流处理器组的可用硬件资源的至少一第二可调度内核代码
。
10.
如权利要求1所述的
GPU
,其特征在于,每一流处理器组的硬件资源包括多个流处理器
、
寄存器堆及至少一内存,其中所述寄存器堆及至少一内存是用以储存所述多个流处理器执行线程时所需的数据或指令
。11.
一种
GPU
...
【专利技术属性】
技术研发人员:李浩然,孙飞,高源,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。