我用:
单CPU (Intel Core i7-4820K Ivy Bridge-E) 40个PCIe 3.0通道+主板MSI X79A-GD65(8D)
WindowsServer 2012,MSVS 2012 + CUDA 5.5并编译为64位应用程序
GPU nVidia Quadro K4000和K2000
TCC模式下的所有Quadros(Tesla计算群集)
nVidia视频驱动程序332.50
simpleP2P测试表明,所有Quadros K4000和K4000-IS都可以对等(P2P),但对等(P2P)访问-Quadro K4000(GPU0) Quadro K2000(GPU1):否。
我可以将Quadro K4000和K2000用于GPUDirect v2 Peer-to-peer (P2P) communication吗?
[C:\ ProgramData \ NVIDIA Corporation \ CUDA
样本\ v5.5 \ 0_Simple \ simpleP2P ../../ bi
n / win64 / Release / simpleP2P.exe]-正在启动...正在检查多个
GPU ...支持CUDA的设备数量:3
GPU0 =“ Quadro K4000” IS具有点对点(P2P)功能
GPU1 =“ Quadro K2000” IS具有点对点(P2P)功能
GPU2 =“ GeForce GT 640”不支持对等(P2P)
正在检查GPU是否支持对等内存访问...
从Quadro K4000(GPU0)-> Quadro K2000(GPU1)对等(P2P)访问:否
从Quadro K2000(GPU1)-> Quadro K4000(GPU0)对等(P2P)访问:否
C:\ ProgramData \ NVIDIA需要两个或更多SM 2.0类GPU
公司\ CUDA
样本\ v5.5 \ 0_Simple \ simpleP2P ../../ bin / win64 / Release / simpleP2P.exe
跑步。要支持UVA,需要具有SM 2.0功能的GPU。同行
对等访问在GPU0 GPU1之间不可用,放弃测试。
TCC模式下的Quadros:
nvidia-smi.exe"
Tue Mar 11 12:43:05 2014
+------------------------------------------------------+
| NVIDIA-SMI 5.320.57 Driver Version: 320.57 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro K2000 TCC | 0000:01:00.0 Off | N/A |
| 30% 30C P8 N/A / N/A | 6MB / 2047MB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GT 640 WDDM | 0000:02:00.0 N/A | N/A |
| 40% 32C N/A N/A / N/A | 2016MB / 2047MB | N/A Default |
+-------------------------------+----------------------+----------------------+
| 2 Quadro K4000 TCC | 0000:03:00.0 Off | N/A |
| 30% 36C P8 10W / 87W | 8MB / 3071MB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 1 Not Supported |
在文档中说:https://developer.nvidia.com/gpudirect
GPUDirect极大地消除了不必要的系统内存副本
降低了CPU开销,并减少了延迟,从而显着降低了
提高应用程序数据传输时间的性能
在NVIDIA Tesla™和Quadro™产品上运行。
那里有关于Quadros的更详细的规格,但是只有大约GPUDirect For Video,而与P2P无关:http://www.nvidia.com/content/PDF/line_card/6660-nv-prographicssolutions-linecard-july13-final-lr.pdf
关于PCIe总线:
nvidia-smi -q
GPU 0000:01:00.0
Product Name : Quadro K2000
PCI
Bus : 0x01
Device : 0x00
Domain : 0x0000
Device Id : 0x0FFE10DE
Bus Id : 0000:01:00.0
Sub System Id : 0x094C10DE
GPU Link Info
PCIe Generation
Max : 2
Current : 1
Link Width
Max : 16x
Current : 8x
FB Memory Usage
Total : 2047 MiB
Used : 6 MiB
Free : 2041 MiB
BAR1 Memory Usage
Total : 256 MiB
Used : 2 MiB
Free : 254 MiB
Compute Mode : Default
...
GPU 0000:02:00.0
Product Name : GeForce GT 640
PCI
Bus : 0x02
Device : 0x00
Domain : 0x0000
Device Id : 0x0FC110DE
Bus Id : 0000:02:00.0
Sub System Id : 0x8A921462
GPU Link Info
PCIe Generation
Max : N/A
Current : N/A
Link Width
Max : N/A
Current : N/A
...
GPU 0000:03:00.0
Product Name : Quadro K4000
PCI
Bus : 0x03
Device : 0x00
Domain : 0x0000
Device Id : 0x11FA10DE
Bus Id : 0000:03:00.0
Sub System Id : 0x097C10DE
GPU Link Info
PCIe Generation
Max : 2
Current : 1
Link Width
Max : 16x
Current : 16x
FB Memory Usage
Total : 3071 MiB
Used : 8 MiB
Free : 3063 MiB
BAR1 Memory Usage
Total : 256 MiB
Used : 2 MiB
Free : 254 MiB
Compute Mode : Default
我可以将GPUDirect v2 P2P与Quadros一起使用吗?如果可以,请在其中哪一个中使用?
BAR1的大小是否应该等于GPU-RAM的大小才能使用P2P?
更新11.03.2014 23:16
我无法使用P2P直接传输-我通过在PCIe-gen2 8x上以3 GB /秒的速度成功使用
cudaMemcpy(gpu_ptr1, gpu_ptr0, cudaMemcpyDefault);
传输了随机生成的数据(理论上为4 GB /秒),但是函数通过主机复制-在VisualProfiler Context1(DtoH )和Context2(HtoD)。我无法通过使用
__global__ Kernel(char *dst, char *src, size_t size) { int idx = blockIdx.x * blockDim.x + threadIdx.x; dst[idx] = src[idx]; }
使用P2P直接访问-使用函数cudaDeviceEnablePeerAccess()
时出现错误,而使用0
时得到cudaDeviceCanAccessPeer()
最佳答案
我不知道它是否与您的问题有关,但请注意:
GPU Link Info
PCIe Generation
Max : 2
Current : 1
Link Width
Max : 16x
Current : 8x
还有这个:
PCIe Generation
Max : 2
Current : 1
Link Width
Max : 16x
Current : 16x
也就是说,您的PCIe链接已从2.0(5 GT / s)降级为1.0(2.5 GT / s),而在一张卡上也已从16x降为8x ...这很可能也是GPU直接问题,但是确保这不是您想要的,以便从PCIe压缩所有性能(在一张卡上,您可获得理论值的25%,在另一张卡上获得50%)。
我发现重要的是,将卡放在木板上的顺序很重要。过热也可能导致公交车降级,或者扬尘……行星对准的可能性也很大。
编辑:我不知道TCC是GPU直接工作所必需的,因此以下无效。
首先,我将尝试卸下显示卡,看看是否仅使用两个Quadro卡即可获得所有PCIe 2.0 / 16x,以及在这种情况下GPU Direct是否开始工作。
编辑:从您的附加信息:“并且因为必须将显示器的主板连接到第一个插槽中的卡(带有16个PCIe-Lanes),所以我有:16x-GeForce,16x-Quadro K4000和8x-Quadro K2000”
幸运的是,这不是真的(或者至少不是manual of your motherboad中报告的内容):
因此,将显示器连接到的正确位置是PCI_E6插槽,即8x One ...好运气交换卡。
恭喜您提出的问题如此精确-对我们有很大帮助(请注意-仍然不知道它是否能够解决……请随时与我们联系!)。