세 개의 gpus가 있고 이들 모두에 거대한 버퍼를 전송해야하는 경우 각각의 CUDA 스트림을 사용하면 각자의 복사본 엔진이 동시에 전송을 수행 할 수 있습니까? 내 말은 : PCI-E 버스가 3 개 모두에 도달한다는 것은 똑같지 않은가?CUDA - 버퍼를 여러 장치로 전송
2
A
답변
1
PCIe는 다양한 프로세서 아키텍처를 사용하여 CUDA에서 this text book으로 다루는 영역 중 하나를 확장합니다.
예, 전송할 때마다 별도의 스트림을 사용해야합니다. 이렇게하면 기본 직렬화 된 스트림 0에서 멀리 이동하게됩니다. 다양한 대역폭 제한에 부딪 힐 수도 있지만, 동시에 실행될 것이므로 순차적으로 전송하는 것보다 속도가 빨라집니다.
그러나 프로세서/메모리/pcie 컨트롤러가 동시 (PCIe 2) 5GB/s 스트림을 제공하는 기능으로 인해 제한됩니다. 더 많은 카드를 추가해도 PCIe 레인 수를 줄일 수없는 경우 대개 상당한 이점이 있습니다. 일반적으로 2 장의 카드는 잘 작동하지만 더 많은 카드를 추가 할 때 대역폭 문제가 발생함에 따라 3 장 이상의 카드로 급속히 떨어집니다. 특히 2 장 이상의 카드를 사용하면 많은 시스템에서 16 개의 PCIe 레인 전체를 사용할 수 없습니다.
Nsight 도구는 달성 된 실제 전송 속도를 보여주는 것뿐만 아니라 전송과 관련된 상황을 보여주는 타임 라인을 표시하는 데 매우 뛰어납니다. 따라서 실제로 발생하는 상황을 볼 수 있도록 해보는 것이 좋습니다.
관련 문제
- 1. Bonjour 데이터를 여러 장치로 전송
- 2. 비동기 데이터 전송 CUDA
- 3. 호스트에서 디바이스로의 CUDA 전송 2D 배열
- 4. cuda 통합 메모리 : 메모리 전송 동작
- 5. 피어 - 투 - 피어 CUDA 전송
- 6. CUDA : GPU에 GPU에서 데이터를 전송
- 7. C : 패킷을 특정 장치로 전송 (모바일 장치)
- 8. MySQL 데이터베이스에서 안전하게 iOS 장치로 데이터 전송
- 9. USB (다작)에서 안드로이드 장치로 데이터 전송
- 10. C# TCP 서버에서 Android 장치로 이미지 전송
- 11. vb.net - 비누 응답으로 안드로이드 장치로 이미지 전송
- 12. 서버에서 특정 안드로이드 장치로 데이터 전송
- 13. Windows에서 SCSI 장치로 특정 SCSI 명령 전송
- 14. 시스템 키보드 버퍼를 통한 데이터 전송? (VFP9)
- 15. 큰 파일 (최대 2GB)을 CUDA GPU로 효율적으로 전송 하시겠습니까?
- 16. OpenAL에서 여러 장치로 출력 (Linux)
- 17. 커널 실행 중 CUDA 전송 메모리
- 18. 이벤트를 사용하는 CUDA 전송 타이밍 대 windows
- 19. corebluetooth를 사용하여 ios 앱에서 큰 바이너리 문자열을 BLE 장치로 전송
- 20. Winston과 다른 전송 장치로 로그를 보내는 방법은 무엇입니까?
- 21. 스트라이드 된 데이터를 효율적으로 복사하는 방법 (CUDA 장치에서 또는 CUDA 장치로)?
- 22. 이맥스에서 여러 버퍼를 강조 표시
- 23. CUDA : 가장 빠른 방법으로 디스플레이 버퍼를 읽는 중입니까?
- 24. 패킷 또는 스트림을 USB HID 장치로 직접 전송
- 25. 블루투스를 통해 파일을 winRT에서 안드로이드/WP 장치로 전송
- 26. Mac OS X에서 SCSI 장치로 특정 SCSI 명령 전송
- 27. windows 휴대 전화에서 다른 모바일 장치로 이미지 전송
- 28. 하나의 안드로이드 장치에서 서버를 통해 다른 안드로이드 장치로 데이터 전송
- 29. Java 서버에서 wifi로 안드로이드 장치로 메시지를 주기적으로 전송
- 30. PHP 서버에서 IOS 장치로 여러 푸시 알림 보내기
적어도 다음 질문 중 하나에 대답해야합니다. http://on-demand.gputechconf.com/gtc-express/2011/presentations/cuda_webinars_multi_gpu.pdf – sj755
질문의 마지막 부분은 PCI-e에 완전히 달려 있습니다. 호스트 시스템의 토폴로지. 일반적인 대답은 없습니다. – talonmies
@ sj755 아마도 나는 뭔가를 놓치고 있습니다. 링크 된 프리젠 테이션은 '스트림'과 'P2P memcpy'를 악용하는 데 사용되는 지침을 설명합니다. 사용자의 주요 질문은 다음과 같습니다. 모든 GPU가 비동기 적으로 데이터를 교환하는 경우 (그리고 사용자가 이미이를 수행하는 방법을 이미 알고있는 경우) 메커니즘이 PCI-E 버스에서 대역폭을두고 경쟁 할 것인가? talonmies가 지적한 호스트 시스템의 PCI-E 토폴로지 – JackOLantern