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 NVLink 是连接GPU-GPU 和 GPU-CPU 的新的接口,其带宽可达160 Gigabytes/second (双向),是PCIe3x16的5倍。 HBM2 是高速的GPU内存架构技术,HBM2 的内存带宽是Maxwell GM200 GPU. 的3倍,达到了720GB/s。
GP100有60个SM,但是Tesla P100使用了56个SM A full GP100 consists of :
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. GPUdirect 可以使得在一个服务器节点内或者不同的服务器节点通过网络 GPU之间数据传输,不需要通过CPU/系统 内存。GPUdirect中RDMA允许第三方设备例如 IB网卡,网卡(NIC)、SSD 直接访问GPU内存,减去了系统内存带宽、及不需要GPU的DMA的参与。GP100的RDMA的带宽增加了一倍(通过PCIe 从GPU内存读数据 写到NIC的内存)。 GP100 支持最新的计算能力 6.0 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提高了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),则操作系统需要做一些修改。 Pascal GP100 的计算优先(Compute Preeemption)特性,运行在GPU上的计算任务在指令级被中断,并且上下文被切换到GPU DRAM. 计算优先解决了 长时间运行 或者 因为某个非法行为的应用 独占系统 的问题 。 计算优先可以在一块GPU系统中,调试kernel。 . |
|