[发明专利]一种GPU线程负载均衡方法与装置有效
申请号: | 201911086251.5 | 申请日: | 2019-11-08 |
公开(公告)号: | CN111078394B | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 王凯;周玉龙 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06T1/20 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 张涛 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 线程 负载 均衡 方法 装置 | ||
本发明公开了一种GPU线程负载均衡方法与装置包括:轮询访问各线程的计算单元和加载存储单元,以获取各线程的寄存器状态信息,并形成寄存器状态表;根据各线程的寄存器状态信息分析正在执行的指令类型,确定各线程的执行指令类型,并更新历史存储负载表;根据寄存器状态表和历史存储负载表向各线程分配新工作任务。本发明能够使GPU的各线程均衡负载,提高工作效率和稳定性并延长硬件使用寿命。
技术领域
本发明涉及负载均衡领域,更具体地,特别是指一种GPU线程负载均衡方法与装置。
背景技术
GPU(图形处理器)等大规模并行处理器在空间上堆叠大量的计算单元,并通过提高并行度提高计算性能。然而由于GPU与CPU(中央处理器)之间存在体系结构的直接差异,GPU方面在硬件上需要不断完善体系结构设计,改进优化调度机制与策略,才能充分保证计算资源充分利用,避免过度的硬件开销。现有技术的GPU结构对于线程计算任务负载不均衡,造成部分计算单元长时间处于忙碌或闲置状态,影响计算效率,或因死锁问题,造成大量计算资源浪费;对于加载存储单元缺少相应的访存优化,易造成硬件损耗不均衡。
针对现有技术中GPU的硬件资源负载不均的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种GPU线程负载均衡方法与装置,能够使GPU中的各线程均衡负载,提高工作效率和稳定性并延长硬件使用寿命。
基于上述目的,本发明实施例的第一方面提供了一种GPU线程负载均衡方法,包括执行以下步骤:
轮询访问各线程的计算单元和加载存储单元,以获取各线程的寄存器状态信息,并形成寄存器状态表;
根据各线程的寄存器状态信息分析正在执行的指令类型,确定各线程的执行指令类型,并更新历史存储负载表;
根据寄存器状态表和历史存储负载表向各线程分配新工作任务。
在一些实施方式中,轮询访问各线程的计算单元和加载存储单元包括:
向每个计算单元和加载存储单元轮流发送第一访问请求,第一访问请求要求计算单元或加载存储单元在预定时间内反馈第一数据包;
向所有在预定时间内未反馈第一数据包的计算单元和加载存储单元发送第二访问请求,第二访问请求要求计算单元或加载存储单元在预定时间内反馈第二数据包,其中第一数据包与第二数据包相同或不同。
在一些实施方式中,取各线程的寄存器状态信息并形成寄存器状态表包括:
获取各线程的计算单元和加载存储单元的繁忙状态信息,繁忙状态信息包括以下之一:不繁忙、指示指令运行到一半的半繁忙、完整繁忙;
获取各线程的计算单元和加载存储单元的等待状态信息,等待状态信息包括以下之一:等待指令发出、等待加载存储数据、等待上一步结果;
获取各线程的计算单元和加载存储单元的死锁状态信息,死锁状态信息包括以下之一:无解死锁、无效加载数据获取、上一步结果丢失;
获取各线程的计算单元和加载存储单元的准备状态信息,准备状态信息包括以下之一:准备接受指令、准备接收数据、准备指令跳转;
将各线程的繁忙状态信息、等待状态信息、死锁状态信息、和准备状态信息写入寄存器状态表。
在一些实施方式中,确定各线程的执行指令类型并更新历史存储负载表包括:
根据计算单元和加载存储单元的繁忙状态信息、等待状态信息、死锁状态信息、和准备状态信息确定计算单元和加载存储单元的执行指令是占用时钟周期大于阈值的长指令还是占用时钟周期小于阈值的短指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911086251.5/2.html,转载请声明来源钻瓜专利网。