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

用于互操作性的应用编程接口制造技术

技术编号:37870385 阅读:16 留言:0更新日期:2023-06-15 20:59
本公开涉及用于互操作性的应用编程接口。用于执行一个或更多个API以接收、更新、等待和无效一个或更多个时间线信号量的装置、系统和技术。在至少一个实施例中,用于管理计算资源(例如,工作负载的流)的装置、系统和技术可以引用、使用和读取与时间线信号量相对应的计数值。在至少一个实施例中,API可与驱动器或库通信以与时间线信号量的句柄交互。信以与时间线信号量的句柄交互。信以与时间线信号量的句柄交互。

【技术实现步骤摘要】
用于互操作性的应用编程接口


[0001]至少一个实施例涉及时间线信号量。例如,至少一个实施例涉及处理引用时间线信号量的句柄的流的工作负载以实现本文描述的各种新颖技术的处理器或计算系统。

技术介绍

[0002]应用可以使用多个应用编程接口(API)。如果应用使用多个API,则API可共享有限数量的计算资源(例如,处理器、存储器)。如果没有有效地或以有组织的方式共享计算资源,则应用可能经历计算资源(诸如处理或存储器资源)的浪费。
附图说明
[0003]图1示出了根据至少一个实施例的用于处理应用的混合工作负载的概述框图;
[0004]图2示出了根据至少一个实施例的用于创建、接收、更新和无效时间线信号量的组件的概述框图;
[0005]图3示出了根据至少一个实施例的使用时间线信号量的概述过程流程图;
[0006]图4示出了根据至少一个实施例的用于接收时间线信号量的过程流程图;
[0007]图5示出了根据至少一个实施例的用于更新时间线信号量的过程流程图;
[0008]图6示出了根据至少一个实施例的用于等待时间线信号量的过程流程图;
[0009]图7示出了根据至少一个实施例的用于无效时间线信号量的过程流程图;
[0010]图8示出了根据至少一个实施例的示例性数据中心;
[0011]图9示出了根据至少一个实施例的处理系统;
[0012]图10示出了根据至少一个实施例的计算机系统;
[0013]图11示出了根据至少一个实施例的系统;
>[0014]图12示出了根据至少一个实施例的示例性集成电路;
[0015]图13示出了根据至少一个实施例的计算系统;
[0016]图14示出了根据至少一个实施例的APU;
[0017]图15示出了根据至少一个实施例的CPU;
[0018]图16示出了根据至少一个实施例的示例性加速器集成切片;
[0019]图17A和17B示出了根据至少一个实施例的示例性图形处理器;
[0020]图18A示出了根据至少一个实施例的图形核心;
[0021]图18B示出了根据至少一个实施例的GPGPU;
[0022]图19A示出了根据至少一个实施例的并行处理器;
[0023]图19B示出了根据至少一个实施例的处理集群;
[0024]图19C示出了根据至少一个实施例的图形多处理器;
[0025]图20示出了根据至少一个实施例的图形处理器;
[0026]图21示出了根据至少一个实施例的处理器;
[0027]图22示出了根据至少一个实施例的处理器;
[0028]图23示出了根据至少一个实施例的图形处理器核心;
[0029]图24示出了根据至少一个实施例的PPU;
[0030]图25示出了根据至少一个实施例的GPC;
[0031]图26示出了根据至少一个实施例的流式多处理器;
[0032]图27示出了根据至少一个实施例的编程平台的软件栈;
[0033]图28示出了根据至少一个实施例的图27的软件栈的CUDA实现;
[0034]图29示出了根据至少一个实施例的图27的软件栈的ROCm实现;
[0035]图30示出了根据至少一个实施例的图27的软件栈的OpenCL实现;
[0036]图31示出了根据至少一个实施例的由编程平台支持的软件;
[0037]图32示出了根据至少一个实施例的在图27

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

30的编程平台上执行的更详细的编译代码;
[0039]图34示出了根据至少一个实施例的在编译源代码之前转换源代码;
[0040]图35A示出了根据至少一个实施例的被配置为使用不同类型的处理单元来编译和执行CUDA源代码的系统;
[0041]图35B示出了根据至少一个实施例的被配置为使用CPU和启用CUDA的GPU来编译和执行图35A的CUDA源代码的系统;
[0042]图35C示出了根据至少一个实施例的被配置为使用CPU和未启用CUDA的GPU来编译和执行图35A的CUDA源代码的系统;
[0043]图36示出了根据至少一个实施例的由图35C的CUDA到HIP转换工具转换的示例性内核;
[0044]图37更详细地示出了根据至少一个实施例的图35C的未启用CUDA的GPU;以及
[0045]图38示出了根据至少一个实施例的示例性CUDA网格的线程如何被映射到图37的不同计算单元;以及
[0046]图39示出了根据至少一个实施例的如何将现有CUDA代码迁移到数据并行C++代码。
具体实施方式
[0047]在以下描述中,阐述了许多具体细节以便提供对至少一个实施例的更透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节中的一个或更多个的情况下实践本专利技术构思。
[0048]在至少一个实施例中,应用正在运行或计划运行作为混合工作负载的工作负载,其中混合工作负载包括将由第一API执行的操作和将由第二API执行的操作。混合工作负载还可包括将由第一API库和第二API库执行的操作。例如,混合工作负载包括将要由以下执行的操作:VULKAN API(由KHRONOS集团公司提供)和CUDA API(由NVIDIA提供,oneAPI提供INTEL,由INTEL提供的线程同步API)。在这样的示例中,VULKAN API提供对象的图形,诸如视频游戏场景中的岩石的图形,并且CUDA API提供用于确定所述视频游戏场景中的所述岩石的物理(例如,重力)的操作——这里,视频游戏具有混合工作负载,因为VULKAN和CUDA正在运行或计划运行所述视频游戏的各部分。虽然视频游戏被用作示例,但是其他应用也可
以执行混合工作负载。
[0049]在至少一个实施例中,当存在混合工作负载时,第一API的过程需要与第二API的过程协调或同步以减少浪费计算资源。例如,如果视频游戏的一部分使用VULKAN API来执行帧渲染操作并且视频游戏的另一部分使用CUDA API来计算与所述帧渲染操作相关的物理操作,则对于由所述第一API进行的帧渲染周期和由所述第二API进行的物理更新具有1:1的关系通常更高效,以避免浪费计算周期或停止应用(例如,太多的渲染更新而没有物理更新)。
[0050]因此,在至少一个实施例中,时间线信号量用于协调或同步混合工作负载,其中,第一API可以在完成处理第一工作负载的一部分时发信号通知时间线信号量,并且第二API已经等待所述时间线信号量被发出信号,从而使得所述时间线信号量达到或超过阈值从而指示其可以开始处理第二工作负载(其中,所述第一工作负载和第二工作负载与运行所述应用相关)。在至少一个实施例中,时间线信号量使得诸如GPU或CPU线程的计算资源能够在特定时间被分配以协本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种处理器,包括:一个或更多个电路,用于执行应用编程接口API以从另一API接收时间线信号量的指示。2.根据权利要求1所述的处理器,其中所述指示是引用所述时间线信号量的存储器位置的句柄,其中所述另一API创建所述时间线信号量,并且其中所述另一API导出所述时间线信号量的所述句柄。3.根据权利要求2所述的处理器,其中接收包括导入所述时间线信号量的所述句柄,并且其中导入包括创建与所述时间线信号量的所述句柄相对应的数据结构。4.根据权利要求2所述的处理器,其中所述一个或更多个电路用于至少部分地基于所述句柄的参数来识别用于所述时间线信号量的所述句柄。5.根据权利要求2所述的处理器,其中所述一个或更多个电路用于利用引用所述句柄的操作来执行工作负载。6.根据权利要求1所述的处理器,其中所述时间线信号量与单调递增的整数相对应。7.根据权利要求1所述的处理器,其中当所述时间线信号量的参数由与所述另一API相对应的第一驱动器发信号通知时,或者当所述时间线信号量的参数由与所述API相对应的第二驱动器发信号通知时,所述时间线信号量的参数增加一或更多。8.根据权利要求1所述的处理器,其中所述一个或更多个电路用于从应用接收所述时间线信号量的所述指示,并且其中所述应用从所述另一API接收所述指示。9.根据权利要求1所述的处理器,其中所述时间线信号量与同步第一工作负载和第二工作负载相对应。10.一种系统,其包括存储器,所述存储器用于存储指令,所述指令由于由一个或更多个处理器执行,使所述系统:执行应用编程接口API以从另一API接收时间线信号量的指示。11.根据权利要求10所述的系统,其中所述指示是引用所述时间线信号量的存储器位置的句柄,其中所述另一API创建所述时间线信号量,其中所述另一API导出所述句柄,并且其中所述另一API使用所述时间线信号量。12.根据权利要求10所述的系统,其中所述指示是所述时间线信号量的句柄,并且其中所述API用于至少部分地基于所述句柄的参数或所述API调用的参数来在导入所述时间线信号量的所述句柄时识别所述时间线信号量的所述句柄。13.根据权利要求11所述的系统,其中所述一个或更多个电路用于利用引用所述句柄的操作来执行工作负载。14.根据权利要求10所述的系统,其中所述指示是与所述时间线信号量的导出句柄的数据结构相对应的参数,其中所述另一API导出所述句柄,并且其中所述另一API创建所述时间线信号量,并且其中所述API用于在识别所述参数之后接收所述导出句柄。15.根据权利要求10所述的系统,其中所述时间线信号量与控制对计算资源的访问相对应。16.根据权利要求10所述的系统,其中所述时间线信号量由第一流和第二流引用,并且其中所述第一流和所述第二流基于读取与所述时间线信号量相对应的值而同步。17.一种机器可读介质,其具有存储在其上的一个或更多个指令,所述指令如果由一个或更多个处理器执行,使一个或更多个处理器至少:
执行应用编程接口API以从另一API接收时间线信号量的指示。18.根据权利要求17所述的机器可读介质,其...

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

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

1