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

图计算优化制造技术

技术编号:29677705 阅读:22 留言:0更新日期:2021-08-13 22:00
本发明专利技术公开了图计算优化,执行图代码的系统、处理器和技术。在至少一个实施例中,使用第一组参数来实例化并执行图代码,并且使用第二组参数来第二次执行图代码,而无需重新实例化。

【技术实现步骤摘要】
图计算优化
至少一个实施例涉及处理图计算(computegraphs)。例如,至少一个实施例涉及用于使用本文描述的各种新颖技术来执行统一设备架构(“CUDA”)图计算的处理器或计算系统。
技术介绍
使用CUDA、OpenCL或HIP图执行计算任务可以节省大量的内存、时间或计算资源。但是,可以改善用于使用图执行计算任务的内存、时间或计算资源的量。附图说明图1示出了根据至少一个实施例的实例化的图计算的参数修改的示例;图2示出了根据至少一个实施例的图计算区域与处理单元之间的关联的示例;图3示出了根据至少一个实施例的图计算的部分重新优化的示例;图4示出了根据至少一个实施例的拒绝图计算的部分重新优化的示例;图5示出了根据至少一个实施例的拒绝图计算的部分重新优化的附加示例;图6示出了根据至少一个实施例的经优化的图计算中的结构改变的示例;图7示出了根据至少一个实施例的使用应用程序接口来执行对图计算的就地修改的示例;图8示出了根据至少一个实施例的对图计算的就地修改的示例;图9示出了根据至少一个实施例的示例性数据中心;图10示出了根据至少一个实施例的处理系统;图11示出了根据至少一个实施例的计算机系统;图12示出了根据至少一个实施例的系统;图13示出了根据至少一个实施例的示例性集成电路;图14示出了根据至少一个实施例的计算系统;图15示出了根据至少一个实施例的APU;图16示出了根据至少一个实施例的CPU;图17示出了根据至少一个实施例的示例性加速器集成切片;图18A和图18B示出了根据至少一个实施例的示例性图形处理器;图19A示出了根据至少一个实施例的图形核心;图19B示出了根据至少一个实施例的GPGPU;图20A示出了根据至少一个实施例的并行处理器;图20B示出了根据至少一个实施例的处理集群;图20C示出了根据至少一个实施例的图形多处理器;图21示出了根据至少一个实施例的图形处理器;图22示出了根据至少一个实施例的处理器;图23示出了根据至少一个实施例的处理器;图24示出了根据至少一个实施例的图形处理器核心;图25示出了根据至少一个实施例的PPU;图26示出了根据至少一个实施例的GPC;图27示出了根据至少一个实施例的流式多处理器;图28示出了根据至少一个实施例的编程平台的软件栈;图29示出了根据至少一个实施例的图28的软件栈的CUDA实现;图30示出了根据至少一个实施例的图28的软件栈的ROCm实现;图31示出了根据至少一个实施例的图28的软件栈的OpenCL实现;图32示出了根据至少一个实施例的由编程平台支持的软件;图33示出了根据至少一个实施例的在图28-31的编程平台上执行的编译代码;图34示出了根据至少一个实施例的在图28-31的编程平台上执行的更详细的编译代码;图35示出了根据至少一个实施例的在编译源代码之前转换源代码;图36A示出了根据至少一个实施例的被配置为使用不同类型的处理单元来编译和执行CUDA源代码的系统;图36B示出了根据至少一个实施例的被配置为使用CPU和启用CUDA的GPU来编译和执行图36A的CUDA源代码的系统;图36C示出了根据至少一个实施例的被配置为使用CPU和未启用CUDA的GPU来编译和执行图36A的CUDA源代码的系统;图37示出了根据至少一个实施例的由图36C的CUDA到HIP转换工具转换的示例性内核;图38更详细地示出了根据至少一个实施例的图36C的未启用CUDA的GPU;以及图39示出了根据至少一个实施例的示例性CUDA网格的线程如何被映射到图38的不同计算单元。具体实施方式图1示出了根据至少一个实施例的实例化的图计算的参数的修改的示例。在至少一个实施例中,通过允许实例化的图的参数的修改,可以独立于一个或更多个其操作数多次执行图。在至少一个实施例中,当用不同的操作数替换最初使用的那些操作数时,不重新优化图。在至少一个实施例中,当不同的操作数替换最初使用的那些操作数时,可以进行优化,前提是所述优化消耗的计算容量(capacity)小于某个阈值量。在至少一个实施例中,计算机应用程序(诸如图形处理,深度神经网络训练和科学模拟)具有迭代结构,其中工作流被重复执行。在至少一个实施例中,图编程模型用于提交要由并行计算架构执行的工作。在至少一个实施例中,图包括通过依赖关系连接的多个操作。在至少一个实施例中,根据编程模型来使用图,在该编程模型中,使用优化的指令对图进行一次定义、优化和重复执行。在至少一个实施例中,内核启动的开销会消耗用于执行内核的计算资源总量的很大一部分。在至少一个实施例中,以图形而不是以一系列个体内核执行操作减少了中央处理单元(“CPU”)的成本。在至少一个实施例中,图的使用还能够进行各种优化。在至少一个实施例中,优化过程可以看到图的整个工作流程。在至少一个实施例中,这包括执行、数据移动和同步交互。在至少一个实施例中,优化模块对这些因素的认识可以使得在各种情况下以改善的性能执行图。在至少一个实施例中,CUDA操作形成图100的节点,并且操作之间的依赖关系由边表示。在至少一个实施例中,图100的节点包括内核启动、存储器副本、内存集、CPU函数调用或其他图中的一个或更多个。在至少一个实施例中,图100包括定义节点和边的数据结构。在至少一个实施例中,内核是被编译以在处理器上执行的函数(function)或例程。在至少一个实施例中,内核是用于由处理器(诸如图形处理单元(“GPU”))执行的函数。在至少一个实施例中,内核不显式地返回值,而是使用提供给函数的缓冲区或阵列传递结果。在至少一个实施例中,内核与线程层次结构或一个或更多个线程块相关联。在至少一个实施例中,在由中央处理单元(“CPU”)调用之后,由GPU执行图100。在至少一个实施例中,CPU对图的单次调用使GPU执行与图的节点相关联的多个内核操作。在至少一个实施例中,由于CPU和GPU之间的转换的开销较低,因此与单独执行可比拟的内核操作相比,效率得到了提高。在至少一个实施例中,图100与一个或更多个参数106相关联。在至少一个实施例中,参数106对应于图100在其执行期间可以利用的数据。在至少一个实施例中,一个或更多个参数106与图102的节点相关联。在至少一个实施例中,一个或更多个参数106与图102的不同区域相关联。例如,参数PA1可以与图100的节点A和B相关联,PA2与节点C相关联,并且PA3与节点D、E和F相关联。在至少一个实施例中,参数与图的节点之间的关联包括引用相应参数的节点的函数。在至少一个实施例中,参数对应于CUDA内核启动参数。在至少一个实施例中,参数包括全局存储器的区域、共享存储器的区域或缓冲区。在至本文档来自技高网...

【技术保护点】
1.一种处理器,包括:一个或更多个电路,用于独立于由图操作的一个或更多个操作数来多次执行所述图,其中当执行所述图不同次数时,所述一个或更多个操作数中的至少一个是不同的。/n

【技术特征摘要】
20200210 US 16/786,6021.一种处理器,包括:一个或更多个电路,用于独立于由图操作的一个或更多个操作数来多次执行所述图,其中当执行所述图不同次数时,所述一个或更多个操作数中的至少一个是不同的。


2.根据权利要求1所述的处理器,其中所述图是计算统一架构(“CUDA”)图和OpenCL图或可移植异构计算界面(“HIP”)图中的至少一个。


3.根据权利要求1所述的处理器,其中当使用不同的所述一个或更多个操作数执行所述图不同次数时,对执行所述图的优化保持在原位。


4.根据权利要求1所述的处理器,其中在第一次执行所述图之前,对所述图进行优化,以用于在处理单元上执行。


5.根据权利要求4所述的处理器,其中当使用不同的所述一个或更多个操作数执行所述图不同次数时,所述图保持优化,以用于在所述处理单元上执行。


6.根据权利要求1所述的处理器,其中所述一个或更多个操作数包括:当所述图被第一次执行时,由所述图操作的第一缓冲区,以及当所述图被第二次执行时,由所述图操作的不同于所述第一缓冲区的第二缓冲区。


7.根据权利要求1所述的处理器,所述一个或更多个电路用于确定能够使用不同的所述一个或更多个操作数来执行所述图,而无需改变用于执行所述图的拓扑。


8.根据权利要求1所述的处理器,所述一个或更多个电路用于使用少于阈值量的计算容量来确定所述图的部分能够被重新优化,以使用不同的所述一个或更多个操作数。


9.一种机器可读介质,其上存储有指令集,所述指令集如果由一个或更多个处理器执行,则使得所述一个或更多个处理器至少:
独立于由图操作的一个或更多个操作数来多次执行所述图,其中当执行所述图不同次数时,所述一个或更多个操作数中的至少一个是不同的。


10.根据权利要求9所述的机器可读介质,其中所述图是CUDA图、OpenGL图或HIP图中的至少一个。


11.根据权利要求9所述的机器可读介质,其中所述一个或更多个操作数包括:当所述图被第一次执行时,由所述图操作的第一缓冲区,以及当所述图被第二次执行时,由所述图操作的不同于所述第一缓冲区的第二缓冲区。


12.根据权利要求9所述的机器可读介质,其中所述指令集如果由一个或更多个处理器执行,则使得所述一个或更多个处理器至少:
确定能够使用不同的所述一个或更多个操作数来执行所述图,而无需改变用于执行所述图的拓扑。


13.根据权利要求9所述的机器可读介质,其中所述指令集如果由一个或更多个处理器执行,则使得所述一个或更多个处理器至少:
基于所述一个或更多个操作数的第一集合,生成用于第一次执行所述图的优化指令;以及
使用所述优化指令,使用所述一个或更多个操作数的第二集合第二次执行所述图。


14.根据权利要求13所述的机器可读介质,其中所述指令集如果由一个或更多个处理器执行,则使得所述...

【专利技术属性】
技术研发人员:S·琼斯S·A·古芬克尔D·A·丰泰内S·T·史蒂文森P·S·库尔卡尼
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

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

1