[分享NVIDIA GTC2023干货] CUDA: New Features and Beyond

文章介绍了CUDA的新特性和GPU计算的提升,包括摩尔定律和Dennard定律对硬件性能的影响,异构硬件与软件如何协同提升计算效率,特别是NVIDIA的SuperChip架构、NVLink技术在加速数据传输中的作用。此外,文章还提及了CUDA对多种编程语言的支持,以及GPU计算工具如CUTLASS在矩阵运算中的优化,最后提到了NVIDIA的机密计算技术确保数据安全。
摘要由CSDN通过智能技术生成


CUDA的新特性和提升)

CUDA

首先这个分享来自与一位拥有十多年从业经验的CUDA架构师,Stephen Jones。他将着眼GPU硬件的进步,其向CUDA生态系统的映射以及影响。
分享全文贯穿思想:计算性能不是一个芯片问题,而是一个软件和芯片共同的问题

摩尔定律

分享中,Jones提到了前些年提到的摩尔定律。说的师每隔一段时间,芯片上的集成电路密集程度会增加一倍,处理器性能会提升一倍,价格会下降一倍。大概就是说硬件更新会很快这么一回事。

Dennard定律

在这里插入图片描述

Dennard提出,晶体管的尺寸在每一代技术中都缩小了30% (0.7倍),因此它们的面积A减少了50%。这意味着电路减少了30% (0.7倍)的延迟,因此增加了约40% (1.4倍)的工作频率。在每一代技术中,晶体管密度增加一倍,电路速度提高40%,功耗保持不变。

更多的晶体管、更高的时钟频率将让芯片拥有更多的功能和性能。更高频率能提高性能,但同时更高的频率需要更高的功率。当频率增大到一定程度后,我们不能继续增大时钟,转而增加芯片的核心数来提高性能

异构硬件与异构软件

Heterogeneous :多样、不同的、异构的。
芯片雕刻的需求需要更高频率的激光,限制了芯片和磨具。为了解决芯片雕刻的难题,NVIDIA很早使用具有特殊功能的硬件。ADA多进程架构图形处理芯片处理不同的特殊的功能。在这里插入图片描述
编程语言方面,有时我们利用一种语言编写一个功能,然后用另一个语言去调用它。通过的编程语言同样可以帮助芯片的高速运行。例如Numpy的实现是C++python调用时同样会高效。

异构计算

同一个程序我们把它们再不同的设备上运行计算,叫做异构计算。
NVIDIA Grace Hopper Superchip 架构是第一个真正的异构加速平台,适用于高性能计算(HPC) 和AI工作负载。它利用 GPU 和 CPU 的优势加速应用程序,具有强大的异构计算能力。在这里插入图片描述

SuperChip

下图是高级芯片的组成构件。
在这里插入图片描述

这是一个异构硬件和异构软件结合的异构系统。NVLink-C2C将两个设备进行连接,并负责两者数据传输。
当硬件和软件已经具备此时,就需要一个和是代码程序来将他们紧密联系。

NVLink

通过NVLink 可以实现多个设备连接,直接读取之间的存储单元。
在这里插入图片描述

  • 统一内存
    NVLink-C2C 实现了一种地址转换服务(ATS)协议, 通过NVLink C2C 从其他进程获取数据到物理内存。当需要访问存在与CPU内存中的变量x时,GPU可以通过NVLink-C2C直接访问,没有数据转移,不会有数据访问失败的情况。并且这种数据提取很容易再GPU的全带宽下提取,换言之提取大数据非常快,此后减少了CPU和GPU之间的数据迁移所带来的overhead,将大幅度提高计算速度。同时从图上可以看出NVLink-C2C 可以连接256个这些设备,可以将多个GPU运算节点进行打包,磨具堆叠将继续时芯片更快地迭代,可堆叠多少的物理限制将有软件来缓解。

在这里插入图片描述
这个系统真正强大的地方在于ATS,当我们的数据x从CPU移动到GPU,系统不会丢失数据移动轨迹,CPU NVLInk-C2C自动读取和进入GPU ,并建立数据副本,在最快捷的方式获取数据。

CUDA

多种语言标准支持

  • OpenACC
  • OpenMP
  • Standard C++
  • CUDA FORTRAN
  • CUDA C++
  • OpenGL

GPU计算平台

可以通过多种计算机编程语言通过CUDA对GPU进行操作。
在这里插入图片描述

抽象层平台

我们可以使用不同的语言和工具完成CUDA抽象的层来加速自己的项目计算。关于How to Write A CUDA Program Josn给我们分享了另外一个talk可以学习。
在这里插入图片描述

规模化

不同的需求有不同的设计。cuNumeric可以实现cuda多节点扩展。
在这里插入图片描述

  • 隐式并行
    同样的代码必须是可移植到任何加速器模式和任何的性能机器。意味着代码能够在更多的机器上运行。

    • Legate: 一个隐式并行的框架。Legate可以可以跨越许多GPU而无需更改源代码,有利于在不同规格的设备上使用系列API。Legate中的任务通过一个或者多个存储交换数据,我们称Legate存储,是一个多维数组,可以映射到不同地址,映射与任务依赖关系结合保证数据同步。在这里插入图片描述
    • cuNumeric:一个实现了Numpy的Legate库。代码运行时,自动将API中的操作分解为Legate格式并传入Legate。所以我们只需要正常编写Numpy代码。
  • 管理并行
    应用程序要么提供源代码标记,要么调用可变化的库,并在运行时灵活变化。

    • cuSOLVERMp:分布式系统的特征值求解器。
    • cuFFTMp: cuFFT 的多节点、多进程扩展。有了 cuFFTMp , NVIDIA 现在不仅支持单个系统中的多个 GPU ,还支持跨多个节点的多个 GPU 。cuFFTMp 使用 NVSHMEM ,这是一个基于 OpenSHMEM 标准的新通信库,通过提供内核启动的通信,为 NVIDIA GPU 设计。 NVSHMEM 创建一个全局地址空间,其中包含集群中所有 GPU 的内存。从 CUDA 内核内部执行通信可以实现细粒度远程数据访问,从而降低同步成本,并利用 GPU 中的大规模并行性来隐藏通信开销。在这里插入图片描述
  • 显示并行
    程序通过API或者手动直接管理数据变化和分布管理。

    • CUTLASS 3
      C++ 线性代数编程模型,帮助我们更快的调用张量。提供了操作定义形状和图块的新方法。
      矩阵乘法是若干科学应用——尤其是深度学习——中的重要部分。有了CUTLASS,我们可以给所有人一种像搭积木一样的技术和结构,通过用CUDA C++编写含有高性能GEMM的新算法。稠密线性代数的灵活高效运用对于深度学习乃至更广阔GPU计算生态系统起至关重要的作用。

GPU计算工具

  • Nsight:从任务中获取信息并将其记录到磁盘以供分析。在这里插入图片描述

数据安全

使用中的数据、AI 模型和应用很容易遭到外部攻击和内部威胁。借助 NVIDIA 机密计算 (CCX),您可以在各个阶段(收集、存储和使用阶段)保护数据的安全。NVIDIA Hopper 架构中这一突破性的安全保护功能可以减轻这些威胁,同时可让用户大幅提升 NVIDIA H100 Tensor Core GPU 的速度,从而更快地处理 AI 工作负载。

  • 机密计算
  • GPU With COnfidential Computing
    • PCIe需要通过加密来完成 机密计算。
    • cuda程序在机密计算过程中不受更改
    • GPU分配内存->CPU分配系统引脚和内存 (机密计算介入管理内存)–>复制内存到GPU(PCIe自动加密)–>启动内核(加密)–>结果拷贝回CPU(加密在这里插入图片描述

总结

利用Joson的PPT中的话来说就是。计算性能是软件和硬件(芯片)共同决定的.。NIVIDA强大的异构计算架构和CUDA加速工具为深度学习部署以及其他高算力需求提供了选择。目前NVIDIA在市场上的认可度较高,性能可靠的同时各种任务需求适配做的也不错。强大的CUDA加速为深度模型模型部署助理不少。
以上内容来自与NVIDIA GTC分享和自己的一些学习笔记。同时也把分享中的PPT所提到链接加入文中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值