[发明专利]一种共享内存复用方法及装置有效

专利信息
申请号: 201810228758.9 申请日: 2018-03-20
公开(公告)号: CN110308982B 公开(公告)日: 2021-11-19
发明(设计)人: 李政;胡芝兰;鲍翀 申请(专利权)人: 华为技术有限公司
主分类号: G06F9/50 分类号: G06F9/50
代理公司: 北京同达信恒知识产权代理有限公司 11291 代理人: 冯艳莲
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 共享 内存 方法 装置
【说明书】:

本申请涉及信息技术领域,公开了一种共享内存复用方法及装置,方法的实现包括编译阶段和运行时阶段,其中编译阶段可以由CPU执行,也可以由GPU执行,主要是根据GPU的硬件结构参数,估算SM的活动线程块总数,以及各个活动线程块对应的任务队列;运行时阶段可以有GPU执行,主要是将所述活动线程块总数对应的多个活动线程块分发到各个SM上,并且并发执行每个活动线程块对应的任务队列,这样,一方面可以改善硬件调度器多次调度带来的开销大的问题,另一方面,GPU加载到一个活动线程块所占用的共享内存空间中的数据被所述活动线程块中的多个待执行的任务共享,提高了共享内存空间的复用率。

技术领域

本申请涉及信息技术领域,尤其涉及一种共享内存复用方法及装置。

背景技术

从2012年开始,人工智能(AI)发展迅速,在语音识别和计算机视觉等应用领域均取得重大突破:图像识别和语音识别正确率均超过了人类水平。这些技术突破的背后离不开深度学习算法,图像处理器(Graphics Processing Units,GPU)则为这些算法提供强大算力。目前,大数据、深度学习等领域都十分依赖GPU来加速整个计算流程。

GPU可以作为协处理器,在接收CPU(central processing unit,中央处理器)的内核指令时,GPU会创建大量的线程来执行该内核指令。其中,GPU编程与CPU编程有着完全不同的方法论:CPU的缓存(如一级缓存L1、二级缓存L2、三级缓存L3)资源丰富且量大,运行在CPU上的程序的性能主要取决于如何高效使用各级缓存,其特点是如何利用缓存来隐藏数据和指令延迟;GPU只有L1、L2二级缓存且量小,但有大量的计算核心,一次能并发运行成千上万个线程,GPU编程特点是主要依靠大量线程切换来隐藏延迟。

图1是通用并行计算架构(Compute Unified Device Architecture,CUDA)编程的线程的逻辑组织方式,在编写CUDA内核函数(kernel)时,需定义线程块(BLOCK)及线程网格(GRID) 的大小,BLOCK的大小是指每个BLOCK定义了多少个线程,GRID的大小是指定义了多少个线程块,图1中每个BLOCK定义了15个线程,GRID中有6个BLOCK。当内核执行时, BLOCK会被GPU的硬件调度器分发到流多处理器(Stream Multi-processors,SM)上执行,如图2所示,一种方式是平均分发到两个SM上执行,另一种方式是平均分发到四个SM上执行。由于CUDA编程是依靠大量的线程切换来隐藏延迟,编程人员通常的做法是根据计算任务规模来定义BLOCK的个数,当计算任务规模较大时,往往会申请大量的BLOCK,当一个BLOCK执行任务因延迟出现阻塞时,就会切换其他非阻塞的BLOCK在SM上执行,以这种方式来确保计算核心的占用率。因为GPU只有L1、L2二级缓存且量小,所以共享内存属稀缺资源,假设每个SM上的共享内存大小为48KB,若BLOCK申请共享内存的量为X KB,则SM上的活动线程块(活动线程块是指在一个时间片SM上可以并发执行的BLOCK) 为48/X个(忽略寄存器等其他因素对SM的个数影响)。若BLOCK申请使用的共享内存量大,则一个时间片上SM能并发执行的线程块的个数将会很少,导致需要排队等待直到其他线程块执行完任务并释放所申请的共享内存,GPU的硬件调度器才会调度剩下的线程块到 SM上执行,所以共享内存空间的复用率偏低。

发明内容

有鉴于此,本申请提供了一种共享内存复用方法及装置,用以提高共享内存空间的复用率。

第一方面,本申请实施例提供了一种共享内存复用方法,该方法由第一处理器和第二处理器执行,该方法包括:第一处理器首先获取第二处理器的硬件结构参数,然后根据硬件结构参数,确定第二处理器的内核函数中的活动线程块总数,这里的活动线程块总数指的是第二处理器的各个SM上能够并发执行的线程块,然后第一处理器根据待执行任务的数量和活动线程块总数,对待执行任务进行分配,确定每个活动线程块所对应的任务队列,紧接着,第一处理器向第二处理器发送指令,第二处理器接收到指令之后,就会将与活动线程块总数对应的多个活动线程块分发到各个SM上,并在单位时间片上并发执行每个活动线程块对应的任务队列。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810228758.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top