NVIDIA Tesla P4亲测:货真价实的高科技与狠活儿(1)

2022-10-08 13:12:59 浏览数 (1)

本文受作者授权,转载自《GPU 篇一:当年王谢堂前燕,飞入寻常百姓家》

(https://post.smzdm.com/p/aoowz2qn/)


2016年9月13日,GTC China大会上,NVIDIA发布了Tesla P4 GPU。这是一块采用Pascal架构、2560个CUDA核心、8GB GDDR5显存、显存带宽192.0GB/S半高Data Center系列GPU。这款GPU为了深度学习推理而生,搭载了当时最先进特性的同时只有50/75W的功耗。当初售价高达一万多的P4 GPU,如今闲鱼售价只要500多,我们重新审视这款GPU,它的某些特性依然能为我们所用,包括时至今日在60W功耗下依然算强劲的性能,支持INT8,能够加速神经网络推理,较大的显存以及对编解码的较好支持。低功耗、小体型、编解码性能良好、可以跑常用模型(训练 应用)以及比GTX 1080更好的特性能否让它在现在深度学习的浪潮中,依然有一席之地?

简介

Tesla P4的GPU算力为6.1,核心代号为GP104,同GTX1080一样。具有4个GPC,20个SM单元,每个GPC有5个SM,每个SM有128个CUDA核心,共计2560个CUDA核心,提供5.5TFLOPS的单精度计算性能,,256KB寄存器,96KB的Shared Memory,总共48KB的L1缓存和8个纹理单元。GPU的整体架构图如下图所示:

Block Diagram of the GP104 GPU

SM的结构图如下图所示:

GP104 SM Diagram

从SM结构图我们可以看出,这代架构Shared Memory和L1 Cache是分开的。与Maxwell相同,GP104的L2 Cache依然是2048KB。

这代架构的Tuning Guide很短,在之前的CUDA阅读100天(DAY82:阅读Compute Capability 6.x )里已经有了详细介绍,如果有需要的同学可以自行翻阅CUDA 100天的内容,我们只在这里粗略介绍一下。

Pascal Tuning Guide一开始就说这代架构跟之前的架构比较相似,不需要改任何代码就可以看到明显的加速,然后说这代架构分两个版本,GP100和GP104,同时给出了P100的白皮书和GTX 1080的白皮书,而Tesla P4就是专业卡版本的GTX 1080,之所以说差不多,是说某些详细参数上有些差异,但是核心参数是一样的,比如GTX 1080采用的是GDDR5X的显存,显存带宽也是320GB/S,核心频率也较高,当然功耗也高。

下面就说了一些SM里的资源情况,指出了GP100和GP104在资源上的不同,这里可以详细参考CUDA 100天的内容。在新的计算指令里提到,Pascal架构支持FP16和INT8,但是FP16速度上,GP100是2xFP32,跟Jetson Nano一样,GP104上是1/64,感觉用还不如不用。

INT8的小节中,NVIDIA这么描述” GP104 provides specialized instructions for two-way and four-way integer dot products. These are well suited for accelerating Deep Learning inference workloads.”意思是GP104上提供了dp4a和dp2a指令,但是没说GP100上也提供,这样看GP100不支持INT8(实际上也不支持,INT8是从算力6.1开始支持的)。在性能上” Both instructions offer a throughput equal to that of FP32 arithmetic.”和FP32具有一样的吞吐率,但是这句之前有一句:” The __dp4a intrinsic computes a dot product of four 8-bit integers with accumulation into a 32-bit integer.”这样就可以理解为是说前者一条的代价,和一条普通的FP32指令一样,但是前者是4组int8打包的,所以是400%的吞吐率,也即理论上提供22T的INT8性能。在下面TRT实验中,我们也可以看到提升了一倍的加速效果。

新的特性还有Atomic Memory Operations也即介绍原子操作的一些东西,共享内存以及共享内存带宽,以及新的统一内存,这些都在CUDA 100天上有详细介绍,这里不再累述。

以上都是关于这张卡计算部分的总结,下面我们来看看这张卡另一个重要特性,也即视频编解码,Tesla P4对当今(2022年)主流的编解码支持依然非常友好。我们根据NVIDIA Vedio Encode and Decode GPU Support Matrix表来看下T4 GPU的视频编解码能力。

P4 GPU视频编码支持如下:

Encode GPU Support Matrix

图中大红圈里的为P4 GPU的编码支持,可以看出,P4 GPU属于数据中心系列,支持h.264标准 YUV420采样,444采样和Lossless、支持h.265标准 YUV420采样,444采样和Lossless,支持最大编码分辨率为8K,同时h.265支持10bit编码,但是不支持B Frame,不支持AV1编码。拥有两个编码硬核,注意小红圈里的Unrestricted,无限制,我们再看下GTX 1080的编码支持中这部分的描述:

GTX 1080’s Encoder

我同样用小红圈将其画出,GTX 1080只支持3路视频编码。注意这里的3,是只整机支持的数目,也就是说,你将机器中插入8张GTX 1080,依然只能支持3路视频编码,而P4是无限制的。2颗编码硬核的编码速度大约为1000fps,如果用来编码本地视频,3路和无限制其实区别并不大,3x333fps跟33x30fps对本地视频来说没有本质区别,都能最大化利用编码硬核性能。但是对实时视频就不一样了,对于直接读取摄像头视频,然后推理,编码保存这个过程来说,摄像头帧率一般为15~30帧,3路最多也只有90fps的编码性能,只利用了1/10不到,后面实验部分我们可以看到,视频编码有个基本功率,这个功率非常大,编码硬核利用率越低,这个代价就越大。而P4对编码路数没有限制,实验中我们可以看到随着编码路数的增加,显卡功耗并没有太大变化。

P4视频解码支持如下:

Decode GPU Support Matrix

可以看出解码应对当今主流视频标准依然没什么压力,支持h.264,h.265 8bit 10bit,支持VP8和VP9 8bit,不支持h.265 444采样,不支持AV1解码。不过考虑到目前h.265 444采样依然没有推广开来,片源很少,AV1编码的视频同样片源很少,不管是下载的电影资源也好,还是摄像头的实时视频也好,基本都是420采样的h.264或者420采样的h.265,所以可以看出,视频解码部分依然支持良好。

由于解码部分性能消耗相对很小,这部分放不放到GPU里做其实区别不大,因此这部分我们不做深究,也不做实验测试。

下面继续介绍一些它的其他特性:

半高:半高显卡属于小众市场,但是确实有很多场景又需要半高显卡,各个显卡厂家也都退出了性能不错的半高显卡,比如半高GTX 1650,半高750等,甚至还有半高的3060专业版——A2000。半高显卡受众较小,价格一般相对比较昂贵,比如半高的GTX 1650这张卡只有FP16性能比P4好一点,其他方面性能均不如P4,闲鱼价格要700多,而各方面都很差的GTX750半高卡,也要200块左右,相对来说P4从价格上还是很划算的。

单槽:P4是一张单槽卡,A2000是双槽卡,由于我的nas机箱只支持半高单槽,所以没法用A2000。

被动散热:这张卡定位是Data Center系列,没有主动散热器,这是这张卡使用最麻烦的地方,我先手动锁定功耗到60W,然后用了一个8cm的风扇侧吹,跑训练测试的时候温度88度,功耗不稳定,但约45W左右,用yolov5s模型 coco128数据集,能基本不降频跑完300个epochs测试。虽然闲鱼上有人卖散热模块,其他地方也有魔改散热教程,但是折腾都需要付出一定的时间精力,这点需要考虑好。

没有外接供电口:无需外接供电,这点必须好评。

没有显示输出口:这个可能在一般的电脑上没有什么问题,有核显就用核显输出,没有核显可以再加块亮机卡就解决了,但是我这块主板为X99E/ITX,只有一个pciex16的插槽,X99支持的CPU天然没有核显,因此局面一度非常尴尬,我只能先接一张亮机卡,然后调整bios里的各种选项,确保系统无问题了,再将亮机卡换成P4,然后开机,不过还好很顺利,直接就进系统了。如果亮机卡无问题,换P4启动不了,甚至没法排查。不过没有显示输出接口,理论上又能省点电。

ECC内存支持:P4支持ECC校验,开启后会损失一部分显存,好评。

GPU Memory on enable ECC

开启过后,显存可用为7611MB,下图显示关闭ECC时显存:

GPU memory with ECC disabled

可用为8121MB,差了500MB。值得注意的是开启ECC关闭ECC这个操作是有寿命的,开关几千次就不能再继续开关了。

虚拟化支持:P4支持虚拟化,可以切分,但是我没用过虚拟化,贴一张官网的P4 FOR VIRTUALIZATION

P4 FOR VIRTUALIZATION

至此,P4的特性基本介绍完毕,下一篇将进行实验部分,敬请关注

0 人点赞