分享

Nvidia GP100

 看见就非常 2020-07-08
Nvidia Pascal GP100 架构

本文是 参考Nvidia 的Pascal Whitepaper 总结了 Pascal 架构的新特性。

一:介绍
Nvidia 最新的加速卡 Tesla P100 使用了 GP100 核心,GP100采用了最新Pascal架构。


Tesla P100 的关键特性:
    1、极强的性能,半精度浮点性能达到21.2Tflops,单精度浮点性能达到10.6Tflps,双精度浮点性能达到5.3Tflops
    2、NVlink技术
    3、HBM2内存接口
    4、统一内存、计算优先、新的AI算法
    5、16nm工艺


二:新特性
   2.1 性能
    半精度浮点性能达到21.2Tflops,
    单精度浮点性能达到10.6Tflps,
    双精度浮点性能达到5.3Tflops


2.2:NVLink
    NVLink 是连接GPU-GPU 和 GPU-CPU 的新的接口,其带宽可达160 Gigabytes/second (双向),是PCIe3x16的5倍。



2.3:HBM2 
    HBM2 是高速的GPU内存架构技术,HBM2 的内存带宽是Maxwell GM200 GPU. 的3倍,达到了720GB/s


2.4 统一内存寻址和计算优先(Compute Preemption
  • 统一内存寻址简化了GPU的编程,GP100 是首次支持硬件页错技术(hardware page faulting),49-bit (512 TB) 的虚拟地址空间
  • 计算优先(compute preemption)也是GP100的新的特性,在指令级的粒度上计算任务可以被抢占,在之前的架构(Maxwell和kepler)则是线程块级的。计算优先可以阻止长时间独占系统或超时的应用。

三:深入了解GP100的硬件架构

GP100有60个SM,但是Tesla P100使用了56个SM

3.1、GPU100组成:
    A full GP100 consists of :
  •  6个GPC( Graphics Processing Clusters),每个GPC包含10个SM,每个SM包括64个CUDA核 和4个纹理单元,
  •  60个 Pascal SMs (SM units in GP100 are called SM units), (总共3840单精度CUDA核)
  •  30 TPCs (Texture Processing Clusters )每个TPC包含2个 SMs  
  •  8个 512-bit 内存控制器 (总共4096 bits ).,每个内存控制单元连接512KB的L2 cache,(总共4096KB的L2 cache)
3.2、性能和功耗

3.3、Pascal 流处理器(SM)


  • 每个SM有64个单精度的CUDA核心(上图绿色块),而Maxwell的SM是128的单精度CUDA核,kepler是192个CUDA核。
  • GP100的SM被分为了两个处理器块,每个处理器块包含了32个单精度CUDA核、一个指令缓存、一个warp调度、两个分发单元。
  • GP100 单精度的 CUDA Cores 可以处理单精度和半精度,处理半精度的带宽是单精度的两倍。

3.4 、双精度
    GP100的每个SM包含了32个双精度的CUDA核心(上图黄色块),数量是单精度CUDA核的一半,这个GP100 共有1920个双精度CUDA核心。
    Note: In GP100, two FP16 operations can be performed using a single paired-operation instruction.

3.5、原子操作
    atomicAdd()函数作支持 32位和64的整型和浮点型数据原子加操作。对浮点数的原子加操作的舍入模式是
 round-to-nearest-even,之前的32位浮点加操作的舍入模式是 round-to-zero。

3.6、L1/L2 Cache   
    从Maxwell架构开始cache的层次已经改变,每个SM 有独立的64KB的share Memory,L1 cache 也可以作为 texture cache,统一的L1/texture cache可以合并一些内存访问。GP100有4096 KB L2 cache
 Note: One CUDA Thread Block cannot allocate 64 KB of shared memory by itself, but two Thread Blocks could use 32 KB each, etc.

3.7、GPUDirect 
    GPUdirect 可以使得在一个服务器节点内或者不同的服务器节点通过网络 GPU之间数据传输,不需要通过CPU/系统 内存。GPUdirect中RDMA允许第三方设备例如 IB网卡,网卡(NIC)、SSD 直接访问GPU内存,减去了系统内存带宽、及不需要GPU的DMA的参与。GP100的RDMA的带宽增加了一倍(通过PCIe 从GPU内存读数据 写到NIC的内存)。

3.8、Compute Capability
    GP100 支持最新的计算能力 6.0



3.9、Memory
    Tesla P100的内存HBM2 16GB内存,内存带宽是760GB/s。   HBM2内存支持ECC(error correcting code
  GK110 Kepler 架构的GPUs为GDDR5内存 提供ECC保护是通过为ECC分配一些内存。GDDR5需要为ECC比特为预留6.25%的内存。例如:如果打开ECC,则12GB内存的Kepler K40 需要为ECC预留750MB,导致只有11.25GB的内存可被使用。 另外,访问ECC bits也会导致内存带宽降低12~15%。HBM2内存支持ECC不说这些影响。 Tesla P100 加速卡的 HBM2 内存保护 (a Single‐Error Correct Double‐Error Detect (SECDED) ECC code).

四:NVLink
    NVLink提高了GPU之间和GPU访问系统内存的性能。使用NVLink连接的GPU可以直接访问另外一个GPU的本地内存。单路连接双向带宽可达40GB/s。Tesla P100 支持4路,因此双向的带宽可达160GB/s。


上图8个GPU的混合立方体结构,GPU之间通过NVLink连接,没4个GPU通过PCIe与各自的CPU连接。




CPU与GPU直接也可通过NVLink连接,如上图的Figure16 和 Figure17

五、统一内存寻址
    相比与CUDA6的统一内存,Pascal GP100的统一内存加入两个新的硬件特性:支持更大的内存空间和页错误能力( page faulting apability.)
    GP100 的虚拟地址空间扩展到了 49-bit。GP100统一内存的程序可以访问在统一虚拟内存空间中所有GPU内存和系统内存,不受任何处理器的物理内存的限制。(这个好处就是GPU使用的内存不在受限于它自己的本地的物理内存,之前的架构是不允许的。)



页错误(page faulting)是一个新的特性,优点:1、可以使CUDA系统软件不必在启动kernel前,同步所有已经在GPU上分配的内存。如果运行在GPU上的kernel要访问的内存页不在GPU内存上,则出现页错误,会自动的将所需要的内存页加载到GPU内存中。当然也可将需要的页映射到GPU的内存地址空间中,GPU则可以通过PCIe或者NVLink访问。 映射 有时 会比 加载内存页 速度更快。这个需要映射或加载的内存有 可以在CPU系统内存中或是在其他的GPU内种。 新的页错误,保证了在统一内存中 全局数据一致性,这就不需要程序员保证CPU和GPU的数据一致性了(在之前的架构则不是不可以的)。
Note: As with any parallel application, developers need to ensure correct synchronization to avoid data hazards between processors.

如果你使用了系统的分配器(for example, malloc or new),则操作系统需要做一些修改。


六:Compute Preemption
    Pascal GP100 的计算优先(Compute Preeemption)特性,运行在GPU上的计算任务在指令级被中断,并且上下文被切换到GPU DRAM.
计算优先解决了 长时间运行 或者 因为某个非法行为的应用 独占系统 的问题   。
    计算优先可以在一块GPU系统中,调试kernel。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多