当前位置: 首页 > 专利查询>辉达公司专利>正文

用于限制存储器的应用程序编程接口制造技术

技术编号:37776977 阅读:17 留言:0更新日期:2023-06-09 09:07
本公开涉及用于限制存储器的应用程序编程接口。用于在PPU执行期间在一个或更多个内核和/或线程组执行期间限制存储器的装置、系统和技术。在至少一个实施例中,进程向并行处理库指示用于一个或更多个内核和/或线程组的存储器限制,并且所述并行处理库根据所述存储器限制对所述一个或更多个内核和/或线程组的存储器分配进行限制。存储器分配进行限制。存储器分配进行限制。

【技术实现步骤摘要】
用于限制存储器的应用程序编程接口


[0001]至少一个实施例涉及用于在一个或更多个CUDA程序的执行期间限制存储器的处理资源。例如,至少一个实施例涉及处理器或计算系统,其用于根据本文所述的各种新颖技术对由一个或更多个图形处理单元(GPU)的一个或更多个处理器执行的一个或更多个线程组设置和执行存储器限制。

技术介绍

[0002]近年来,并行处理单元(PPU)(诸如图形处理单元(GPU))变得越来越强大。随着PPU计算能力的这种提高,用户无法通过单个中央处理单元(CPU)进程充分利用PPU资源。结果,用户实施了多个独立且不协调的CPU进程来利用GPU资源。负责管理CPU进程使用的PPU资源的调度程序通常不能有效地管理所述资源,从而导致使用PPU资源的CPU进程之间的干扰。
附图说明
[0003]图1是根据至少一个实施例的示出了多进程服务(MPS)的组件的框图;
[0004]图2是根据至少一个实施例的示出了用于促进调度一个或更多个线程组以由一个或更多个并行处理单元(PPU)执行的MPS层次结构的框图;
[0005]图3是根据至少一个实施例的示出了在由一个或更多个PPU执行一个或更多个线程组期间被限制的线程组存储器的框图;
[0006]图4A示出了根据至少一个实施例的用于由MPS设置和实施默认全局资源限制的步骤;
[0007]图4B示出了根据至少一个实施例的用于由MPS设置和实施每服务器资源限制的步骤;
[0008]图4C示出了根据至少一个实施例的用于由MPS设置和实施每客户端资源限制的步骤;
[0009]图5示出了根据至少一个实施例的用于在由MPS执行一个或更多个线程组期间实施存储器限制的进程;
[0010]图6示出了根据至少一个实施例的示例性数据中心;
[0011]图7示出了根据至少一个实施例的处理系统;
[0012]图8示出了根据至少一个实施例的计算机系统;
[0013]图9示出了根据至少一个实施例的系统;
[0014]图10示出了根据至少一个实施例的示例性集成电路;
[0015]图11示出了根据至少一个实施例的计算系统;
[0016]图12示出了根据至少一个实施例的APU;
[0017]图13示出了根据至少一个实施例的CPU;
[0018]图14示出了根据至少一个实施例的示例性加速器集成切片;
[0019]图15A

15B示出了根据至少一个实施例的示例性图形处理器;
[0020]图16A示出了根据至少一个实施例的图形核心;
[0021]图16B示出了根据至少一个实施例的GPGPU;
[0022]图17A示出了根据至少一个实施例的并行处理器;
[0023]图17B示出了根据至少一个实施例的处理集群;
[0024]图17C示出了根据至少一个实施例的图形多处理器;
[0025]图18示出了根据至少一个实施例的图形处理器;
[0026]图19示出了根据至少一个实施例的处理器;
[0027]图20示出了根据至少一个实施例的处理器;
[0028]图21示出了根据至少一个实施例的图形处理器核心;
[0029]图22示出了根据至少一个实施例的PPU;
[0030]图23示出了根据至少一个实施例的GPC;
[0031]图24示出了根据至少一个实施例的流式多处理器;
[0032]图25示出了根据至少一个实施例的编程平台的软件栈;
[0033]图26示出了根据至少一个实施例的图25的软件栈的CUDA实现;
[0034]图27示出了根据至少一个实施例的图25的软件栈的ROCm实现;
[0035]图28示出了根据至少一个实施例的图25的软件栈的OpenCL实现;
[0036]图29示出了根据至少一个实施例的由编程平台支持的软件;
[0037]图30示出了根据至少一个实施例的在图25

28的编程平台上执行的编译代码;
[0038]图31示出了根据至少一个实施例的在图25

28的编程平台上执行的更详细的编译代码;
[0039]图32示出了根据至少一个实施例的在编译源代码之前转换源代码;
[0040]图33A示出了根据至少一个实施例的被配置为使用不同类型的处理单元来编译和执行CUDA源代码的系统;
[0041]图33B示出了根据至少一个实施例的被配置为使用CPU和启用CUDA的GPU来编译和执行图33A的CUDA源代码的系统;
[0042]图33C示出了根据至少一个实施例的被配置为使用CPU和未启用CUDA的GPU来编译和执行图33A的CUDA源代码的系统;
[0043]图34示出了根据至少一个实施例的由图33C的CUDA到HIP转换工具转换的示例性内核;
[0044]图35更详细地示出了根据至少一个实施例的图33C的未启用CUDA的GPU;以及
[0045]图36示出了根据至少一个实施例的示例性CUDA网格的线程如何被映射到图35的不同计算单元;以及
[0046]图37示出了根据至少一个实施例的如何将现有CUDA代码迁移到数据并行C++代码。
具体实施方式
[0047]图1是根据至少一个实施例的示出了多进程服务(MPS)102的组件的框图。在至少一个实施例中,MPS 104是软件指令,当其被执行时,促进并行处理单元(PPU)(诸如图形处理单元(GPU))执行用于多个中央处理单元(CPU)进程的一个或更多个内核。在至少一个实
施例中,MPS104促进PPU(诸如GPU)执行来自多个CPU进程的一个或更多个内核。在至少一个实施例中,MPS 104促进PPU(诸如GPU)执行用于一个或更多个CPU进程的一个或更多个线程组,以便更好地利用所述PPU上的可用的计算资源。
[0048]在至少一个实施例中,一个或更多个内核由一个或更多个CPU进程分配以由PPU(诸如GPU)使用MPS 104来执行。在至少一个实施例中,内核是要由一个或更多个PPU(诸如GPU)执行的一组数据值和软件指令。在至少一个实施例中,由一个或更多个用户进程为在PPU(诸如GPU)上执行而调用的一个或更多个内核,使用诸如所述PPU的空闲处理核心和/或存储器的资源。在至少一个实施例中,由PPU执行的一个或更多个内核可能未充分利用所述PPU。在至少一个实施例中,当PPU的一个或更多个流式多处理器(SM)未被用于执行由一个或更多个进程分配的要由所述PPU执行的一个或更多个内核时,所述PPU未被充分利用。在至少一个实施例中,MPS 104利用PPU的空闲SM以允许由一个或更多个CPU进程调用以供所述PPU执行的一个或更多个内核并行使用所述PPU的一个或更多个SM。
[0049]在至少一个实施例中,MPS 104允许一个或更多个CPU进程使得一个或更多个内核或软件指令的任何其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种机器可读介质,其上存储有应用程序编程接口API,如果该API至少部分地由一个或更多个处理器执行,则使得所述一个或更多个处理器至少:至少部分地基于一个或更多个存储器范围参数来限制由一个或更多个处理器可访问的存储器的范围。2.根据权利要求1所述的机器可读介质,其中所述一个或更多个存储器范围参数是数据值,所述数据值包括对由要由所述一个或更多个处理器执行的一个或更多个线程组可用的存储器的数值限制。3.根据权利要求1所述的机器可读介质,其中一个或更多个进程用于向所述API指示所述一个或更多个存储器范围参数,所述一个或更多个进程用于使得一个或更多个线程组由所述一个或更多个处理器执行。4.根据权利要求1所述的机器可读介质,其中所述一个或更多个存储器范围参数将通过并行处理库的一个或更多个命令而被指示给所述API。5.根据权利要求1所述的机器可读介质,其中所述存储器的范围将针对将由所述一个或更多个处理器执行的一个或更多个线程组而被限制。6.根据权利要求1所述的机器可读介质,其中所述存储器的范围是将由所述一个或更多个处理器执行的一个或更多个线程组可用的存储器的数量。7.根据权利要求1所述的机器可读介质,其中要由所述一个或更多个处理器执行的一个或更多个线程组中的每一个用于至少部分地基于所述一个或更多个存储器范围参数来访问所述存储器的范围。8.根据权利要求1所述的机器可读介质,其中一个或更多个线程组将要由所述一个或更多个处理器执行,其中所述一个或更多个线程组的第一子集能够访问经限制的存储器的范围,并且所述一个或更多个线程组的第二子集能够访问全部范围的存储器,所述第一子集通过一个或更多个标识符指示给所述API。9.一种方法,包括:至少部分地基于一个或更多个存储器范围参数来限制由一个或更多个处理器可访问的存储器的范围。10.根据权利要求9所述的方法,其中并行处理库用于至少部分地基于向由所述并行处理库提供的应用程序编程接口API指示的所述一个或更多个存储器范围参数来限制所述存储器的范围。11.根据权利要求9所述的方法,其中所述一个或更多个存储器范围参数是数据值,所述数据值指示由要由所述一个或更多个处理器执行的一个或更多个线程组可访问的存储器的阈值数量。12.根据权利要求9所述的方法,进一步包括:向并行处理库指示所述一个或更多个存储器范围参数,所述并行处理库使得所述一个或更多个处理器的存储器被限制。13.根据权利要求9所述的方法,进一步包括:通过使得由并行处理库提供的一个或更多个命令被执行并且向所述一个或更多个命令指定所述一个或更多个存储器范围参数,向所述并行处理库指示所述一个或更多个存储器范围参数。14.根据权利要求9所述的方法,进一步包括:由所述一个或更多个处理器执行一个或更多个线程组,其中所述一个或更多个线程组包括用于访问经限制的存储器的范围的第一
子集和用于访问全部范围的存储器的第二子集。15.根据权利要求9所述的方法,进一步包括:向并行处理库指示一个或更多个标识符,其中所述一个或更多...

【专利技术属性】
技术研发人员:F
申请(专利权)人:辉达公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1