2015-06-05 19 views
9

Tôi đang sử dụng Nvidia GTX Titan X để làm thí nghiệm học tập sâu. Tôi đang sử dụng nvidia-smi để theo dõi trạng thái hoạt động của GPU, nhưng trạng thái perf (ormance) mà công cụ cung cấp không có ý nghĩa.nvidia-smi GPU hiệu suất đo không có ý nghĩa

Tôi có kiểm tra hướng dẫn nvidia-smi, nó nói như sau:

Performance Nhà nước Tình trạng hiệu suất hiện tại cho GPU. Các tiểu bang có phạm vi từ P0 (hiệu suất tối đa) đến P12 (hiệu suất tối thiểu).

Không chạy bất kỳ quá trình nào trên GPU (trạng thái chờ), trạng thái hiệu suất GPU là p0. Tuy nhiên, khi chạy một số quá trình tính toán nặng, trạng thái trở thành p2.

Câu hỏi của tôi là, tại sao GPU của tôi ở trạng thái P0 ở chế độ chờ, nhưng chuyển sang P2 khi chạy tác vụ tính toán nặng? Không phải là ngược lại sao?

Ngoài ra, có cách nào để làm cho GPU của tôi luôn chạy ở trạng thái P0 (hiệu suất tối đa) không?

Trả lời

19

Thật khó hiểu.

Hướng dẫn sử dụng nvidia-smi là chính xác, tuy nhiên.

Khi GPU hoặc bộ GPU bị nhàn rỗi, quá trình chạy nvidia-smi trên máy thường sẽ mang một trong những GPU đó ra khỏi trạng thái không hoạt động. Điều này là do thông tin mà công cụ đang thu thập - nó cần đánh thức một trong các GPU.

Quá trình đánh thức ban đầu sẽ mang GPU tới trạng thái P0 (trạng thái cao nhất), nhưng trình điều khiển GPU sẽ giám sát GPU đó và cuối cùng bắt đầu giảm trạng thái hiệu suất để tiết kiệm điện, nếu GPU không hoạt động hay không đặc biệt bận rộn. Mặt khác, khi GPU đang hoạt động với khối lượng công việc, trình điều khiển GPU sẽ tự động điều chỉnh trạng thái hiệu suất để mang lại hiệu suất tốt nhất trong khi khớp trạng thái hiệu suất với khối lượng công việc thực tế. Nếu không đạt đến giới hạn nhiệt hoặc công suất, trạng thái perf phải đạt mức cao nhất (P0) cho khối lượng công việc liên tục và nặng nhất, liên tục nhất.

Tải công việc định kỳ nặng nhưng không liên tục, có thể thấy trạng thái nguồn GPU dao động xung quanh các cấp P0-P2. Các GPU được "điều chỉnh" do các vấn đề về nhiệt (hoặc nhiệt độ) hoặc nguồn điện cũng có thể thấy các trạng thái P giảm. Loại điều chỉnh này là hiển nhiên và được báo cáo riêng trong nvidia-smi, nhưng loại báo cáo này có thể không được kích hoạt cho tất cả các loại GPU.

Nếu bạn muốn xem trạng thái P0 trên GPU, lời khuyên tốt nhất mà tôi có thể cung cấp là chạy một khối lượng công việc ngắn, nặng, liên tục (ví dụ như hoạt động sgemm lớn), sau đó theo dõi GPU trong khối lượng công việc đó. Có thể thấy trạng thái P0 trong tình huống đó.

Nếu bạn đang sử dụng ứng dụng học máy (ví dụ: Caffe) đang sử dụng thư viện cuDNN và bạn đang đào tạo một mạng lớn, có thể thấy P0 theo thời gian, vì cuDNN thực hiện các thao tác giống như sgemm trong kịch bản này, thông thường.

Nhưng đối với khối lượng công việc lẻ tẻ, có thể trạng thái được quan sát phổ biến nhất sẽ là P2.

Để "buộc" trạng thái nguồn P0 luôn, bạn có thể thử thử với chế độ đồng bộ và đồng hồ ứng dụng thông qua công cụ nvidia-smi. Sử dụng nvidia-smi --help hoặc trang hướng dẫn cho nvidia-smi để hiểu các tùy chọn.

Mặc dù tôi không nghĩ rằng điều này thường áp dụng cho GPU Tesla, một số GPU NVIDIA có thể giới hạn ở trạng thái nguồn P2 theo tải tính toán trừ khi đồng hồ ứng dụng được đặt cụ thể cao hơn. Sử dụng lệnh nvidia-smi -a để xem đồng hồ Ứng dụng hiện tại, Đồng hồ ứng dụng mặc định và Đồng hồ tối đa khả dụng cho GPU của bạn. (Một số GPU, bao gồm cả GPU cũ hơn, có thể hiển thị N/A đối với một số trường này. Điều này thường cho biết đồng hồ ứng dụng không thể sửa đổi được qua nvidia-smi.) Nếu thẻ có vẻ chạy ở trạng thái P2 trong quá trình tính toán, bạn có thể để tăng nó lên trạng thái P0 bằng cách tăng đồng hồ ứng dụng lên mức tối đa có sẵn (ví dụ: Đồng hồ Max). Sử dụng nvidia-smi --help để tìm hiểu cách định dạng lệnh để thay đổi đồng hồ ứng dụng trên GPU của bạn. Sửa đổi đồng hồ ứng dụng hoặc bật đồng hồ ứng dụng có thể sửa đổi, có thể yêu cầu đặc quyền root/admin. Nó cũng có thể được mong muốn hoặc cần thiết để thiết lập chế độ Persistence GPU. Điều này sẽ ngăn chặn trình điều khiển "dỡ hàng" trong các khoảng thời gian hoạt động của GPU, điều này có thể khiến đồng hồ ứng dụng được đặt lại khi trình điều khiển tải lại.

Hành vi mặc định này, đối với các thẻ bị ảnh hưởng trong tình huống này, giới hạn ở P2 dưới tải tính toán, là theo thiết kế của trình điều khiển GPU.

This câu hỏi/câu trả lời có liên quan phần nào cũng có thể được quan tâm.

+0

Hướng dẫn về cách buộc P0 http://cryptomining-blog.com/7341-how-to-squeeze-some-extra-performance-mining-ethereum-on-nvidia/ – mak

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