2 개의 GTX 590 카드 (4 GPU)가있는 리눅스 박스가 있습니다. CUDA 4.0 드라이버를 사용하면 GPUDirect 메모리 액세스를 호출하고 가능한 모든 4 개의 GPU 쌍 사이의 성공적인 복사본을 확인할 수 있습니다.멀티 GPU 엔비디아 GTX 590과의 GPUDirect 피어 투 피어 통신 문제
그러나 CUDA 4.1 드라이버 (또는 후속 드라이버)로 업그레이드 한 후 GPUDirect 액세스 쌍이 제한됩니다. 예를 들어 피어 - 투 - 피어
사이 활성화되어 CUDA 4.0에서 다음GPU0 < -> GPU1
GPU0 < -> GPU2
GPU0 < -> GPU3
GPU1 < -> GPU2
GPU1 < -> GPU3
GPU2 < ->
하지만 CUDA 4.1 (또는 이상) 난 단지 사이에 액세스를 제한하고 아래 GPU3
:GPU0에게 < -> GPU1 (같은 카드)
GPU2 < -> GPU3 (같은 카드)
GPU1 < -> GPU3
사람이 t을 설명 할 수 최신 CUDA 5.x 드라이버를 사용할 때 해결 방법을 알고 있습니까? $ lspci를 -tv (흥미로운 부분)
이 제공 : 모든 경로가 (구조 같은 트리) 물리적으로 사용할 수 있으며, CUDA 4.0을 사용하는 경우가있는 것처럼 나에게
-[0000:00]-+-00.0 ATI Technologies Inc RD890 Northbridge only single slot PCI-e GFX Hydra part
+-02.0-[0c-0f]----00.0-[0d-0f]--+-00.0-[0f]--+-00.0 nVidia Corporation Device 1088
| | \-00.1 nVidia Corporation GF110 High Definition Audio Controller
| \-02.0-[0e]--+-00.0 nVidia Corporation Device 1088
| \-00.1 nVidia Corporation GF110 High Definition Audio Controller
:
+-0b.0-[04-07]----00.0-[05-07]--+-00.0-[07]--+-00.0 nVidia Corporation Device 1088
| | \-00.1 nVidia Corporation GF110 High Definition Audio Controller
| \-02.0-[06]--+-00.0 nVidia Corporation Device 1088
| \-00.1 nVidia Corporation GF110 High Definition Audio Controller
이 보이지만, cuda 4.1 이상을 사용하는 경우 cudaDeviceCanAccessPeer()는 "교차 카드"통신에 대해 false를 제공합니다. 모든 호스트 - 장치 경로는 항상 사용할 수 있습니다 (물론).