原来NVIDIA RTX2080/2080ti还可以这样用,而华硕全都有!

  • 0 replies
  • 3298 views
*

sisiy

  • *****
  • 163
    • 查看个人资料
[p=null, 2, left]之前我们介绍华硕推出的Turbo版RTX2080/2080ti GPU卡(掐指一算,ASUS这块GPU卡要火!),而且也告诉大家在做计算的时候,比如CUDA软件开发或是深度学习应用,尽可能用这种Turbo版本的GPU卡,尤其是在多卡的环境下,这种散热会更好,果然国外就有人出了测试报告(NVIDIA双风扇GeForce RTX散热器破坏多GPU性能,是真的么?)。[/p][p=null, 2, left]今天,小编就再告诉大家一个在计算中的实用技巧,就是:[/p][p=null, 2, left]NVLINK is fully functional with the RTX 2080/2080ti on Ubuntu 18.04 with driver version 410.[/p][p=null, 2, left]对于从事CUDA开发或者深度学习的研究人员,尤其是HPC圈里的,都知道NVLINK。NVLink,是英伟达开发并推出的一种总线及其通信协议,采用点对点结构、串列传输,用于中央处理器(CPU)与图形处理器(GPU)之间的连接,也可用于多个图形处理器之间的相互连接。一直以来这个特性只开放给高端计算卡,比如Tesla P100、Tesla V100、Quadro P100、GV100。而如今NV居然首次把这个高端大气上档次的特性下放给了“消费级”GPU卡。 [/p][p=null, 2, left]不过Turing显卡上用的NVLink是缩水版的,Volta显卡上的完全版一共有六个通道,而RTX 2080 Ti能用双通道,RTX 2080只能单通道。但是RTX 2080 大概50GB/s,大约是现在的PCI-E的速度的3倍多,RTX 2080Ti大概是100GB/s,这个大约是6倍多,所以依旧很值得期待![/p][p=null, 2, left]NVLINK桥接器很像SLI桥接器,但注意这是两个概念。SLI基本上只能用于双卡渲染时候的信号传输,不能用于CUDA。[/p][p=null, 2, left]小编居然在淘宝上还找到了华硕就有这种桥接器:https://detail.tmall.com/item.htm?spm=a230r.1.14.1.63474269mzaq8m&id=580236427388&cm_id=140105335569ed55e27b&abbucket=6[/p][p=null, 2, left]
[/p][p=null, 2, left]那么如何测试NVLINK下的数据传输功能呢?小编引用国外一个测试结果。这个测试是用了两片RTX2080.[/p]RTX 2080 NVLINK "Capability" report from nvidia-smi nvlink -c[p=null, 2, left]得到结果如下:[/p]
  • Link 0, P2P is supported: true
  • Link 0, Access to system memory supported: true
  • Link 0, P2P atomics supported: true
  • Link 0, System memory atomics supported: true
  • Link 0, SLI is supported: true
  • Link 0, Link is supported: false
[p=null, 2, left]注意最后这个 "Link is supported: false" 行,可能是说CPU和GPU之间的连接。
[/p]RTX 2080 NVLINK Peer-To-Peer: simpleP2P从这个测试结果里可以回答几个问题:1.NVIDIA GeForce RTX  NVLINK 支持 Peer-To-Peer 内存访问么?
  • Peer access from GeForce RTX 2080 (GPU0) -> GeForce RTX 2080 (GPU1) : Yes
  • Peer access from GeForce RTX 2080 (GPU1) -> GeForce RTX 2080 (GPU0) : Yes

2.NVIDIA GeForce RTX NVLINK 支持Unified Virtual Addressing (UVA)么?

  • GeForce RTX 2080 (GPU0) supports UVA: Yes
  • GeForce RTX 2080 (GPU1) supports UVA: Yes

3.使用NVIDIA GeForce RTX NVLINK后  CUDA Memory Copy的传输速率是多少?
  • cudaMemcpyPeer / cudaMemcpy between GPU0 and GPU1: 22.53GB/s
RTX 2080 NVLINK Peer-To-Peer: p2pBandwidthLatencyTest测试结果:
程序代码: [选择]
[P2P (Peer-to-Peer) GPU Bandwidth Latency Test]


P2P Connectivity Matrix
     D\D     0     1
     0     1     1
     1     1     1
Unidirectional P2P=Disabled Bandwidth Matrix (GB/s)
   D\D     0      1
     0 389.09   5.82
     1   5.82 389.35
Unidirectional P2P=Enabled Bandwidth (P2P Writes) Matrix (GB/s)
   D\D     0      1
     0 386.63  24.23
     1  24.23 389.76
Bidirectional P2P=Disabled Bandwidth Matrix (GB/s)
   D\D     0      1
     0 386.41  11.59
     1  11.57 391.01
Bidirectional P2P=Enabled Bandwidth Matrix (GB/s)
   D\D     0      1
     0 382.58  48.37
     1  47.95 390.62
P2P=Disabled Latency Matrix (us)
   GPU     0      1
     0   1.67  20.55
     1  11.36   1.64

   CPU     0      1
     0   4.01   8.29
     1   8.37   3.65
P2P=Enabled Latency (P2P Writes) Matrix (us)
   GPU     0      1
     0   1.67   0.92
     1   0.92   1.64

   CPU     0      1
     0   3.70   2.79
     1   2.95   3.68

[/size]
对于两个 带NVLINK的RTX 2080 GPU,我们可以看到:
  • Unidirectional Bandwidth: 24 GB/s
  • Bidirectional Bandwidth: 48 GB/s
  • Latency (Peer-To-Peer Disabled),
    • GPU-GPU: 11-20 micro seconds
  • Latency (Peer-To-Peer Enabled),
    • GPU-GPU: 1 micro seconds
[p=null, 2, left](小编备注:延迟部分看看就好,不一定准)[/p][p=null, 2, left]
[/p][p=null, 2, left]有人可能会问那我的CUDA代码要如何改,才能使用NVLINK的功能呢?[/p][p=null, 2, left]不用改代码,以前普通P2P Access代码即可(PCI-E),现在可以自动走NVLINK。[/p][p=null, 2, left]
[/p][p=null, 2, left]NVLINK这个特性对于什么样的CUDA应用会有帮助?[/p][p=null, 2, left]使用NVLINK,对于那种需要使用超过自己的显存容量大小的应用是很有帮助的,此时可以高速调用对方的显存,如果速度足够快,理论上可以达到买两张小容量的卡,拼合成一张大容量的卡。当然访问对方的显存要比自己的慢很多。RTX 2080怎么访问自己的也300GB/s+了,但是好在,如果充分优化的话,可以只在边界数据上跨卡访问。具体性能看应用。但不管怎么说已经比PCIe要强多了。[/p][p=null, 2, left]
[/p][p=null, 2, left]注意,小编有两点需要提醒:[/p][p=null, 2, left]1. 目前NVLINK只适用于2张RTX 2080/2080ti,[/p][p=null, 2, left]2. 这两张卡应该只能在同一CPU下,也就是单路GPU服务器——这一点还没有在双路服务器上做测试,但上面的测试确实是在单路服务器里。而对于此,符合条件的华硕GPU单路服务器就是——没错,ASUS ESC700G4/ESC700G3[/p]