2012-10-20 35 views
7

Tốc độ dữ liệu của các hoạt động cudaMemcpy bị ảnh hưởng nhiều bởi số làn PCI-e 3.0 (hoặc 2.0) được phân bổ để chạy từ CPU đến GPU. Tôi tò mò về cách các làn PCI-e được sử dụng trên các thiết bị Nvidia có chứa hai GPU.Phân bổ làn PCI-e trên thẻ 2 GPU?

Nvidia có một vài sản phẩm có hai GPU trên một thiết bị PCI-e. Ví dụ:

  • GTX 590 chứa hai Fermi GF110 GPU
  • GTX 690 chứa hai Kepler GK104 GPU

Như với nhiều card đồ họa mới, các thiết bị gắn trong PCI-e 16 khe. Đối với thẻ chỉ chứa một GPU, GPU có thể sử dụng 16 làn PCI-e.

Nếu tôi có một thiết bị có chứa hai GPU (như GTX 690), nhưng tôi chỉ chạy các công việc tính toán trên chỉ là một của GPU, có thể tất cả các làn đường 16 PCI-e phục vụ một GPU mà đang được sử dụng?


Để hiển thị này là nghệ thuật ascii ...

[ GTX690 (2x GF110) ] ------ 16 làn PCI-e ----- [ CPU ]


tôi không nói về trường hợp trong đó CPU được kết nối với hai thẻ có một GPU. (Như biểu đồ dưới đây)

[ GTX670 (1x GK104) ] ------ PCI-e làn ----- [ CPU ] ------ PCI làn -e ----- [ GTX670 (1x GK104) ]

Trả lời

9

GTX 690 sử dụng một PLX PCIe Gen 3 bridge chip để kết nối hai GK104 GPU với host bus PCIe. Có một kết nối x16 đầy đủ từ máy chủ đến thiết bị PLX và từ thiết bị PLX tới từng GPU (thiết bị PLX có tổng cộng 48 làn). Do đó, nếu chỉ sử dụng một GPU, bạn có thể đạt được khoảng băng thông x16 đầy đủ cho GPU đó. Bạn có thể khám phá điều này bằng cách sử dụng bandwidthTest được bao gồm trong các mẫu CUDA. bandwidthTest sẽ nhắm mục tiêu một GPU duy nhất (trong số hai thẻ có trên thẻ và tùy chọn này có thể chọn qua tùy chọn dòng lệnh) và bạn sẽ thấy khoảng băng thông đầy đủ tùy thuộc vào hệ thống. Nếu hệ thống của bạn có khả năng Gen3, bạn sẽ thấy băng thông PCIe x16 Gen 3 đầy đủ (đừng quên sử dụng tùy chọn --memory = pinned), sẽ thay đổi tùy theo hệ thống cụ thể nhưng phải ở phía bắc 6GB/s (có thể trong phạm vi 9-11GB/s). Nếu hệ thống của bạn là Gen2 có khả năng, bạn sẽ thấy một cái gì đó trong phạm vi 4-6GB/s. Một tuyên bố tương tự có thể được thực hiện về GTX 590, tuy nhiên nó là một thiết bị chỉ Gen2 và sử dụng một chip cầu khác nhau. Kết quả của bandwidthTest xác nhận rằng một đường dẫn logic x16 đầy đủ tồn tại giữa cổng gốc và GPU. Không có bữa ăn trưa miễn phí tất nhiên, vì vậy bạn không thể có được băng thông đầy đủ đồng thời cho cả hai GPU: bạn bị giới hạn bởi khe x16.

Các vấn đề liên quan