Máy GB10 của chúng tôi tự động tắt nguồn. Nhật ký đổ lỗi cho bộ nhớ; nhưng nguyên nhân thực sự là nhiệt độ

Vận hành

Một trong ba máy NVIDIA GB10 của chúng tôi đã ngừng hoạt động ba lần trong bốn ngày vào tháng Chín: vào ngày 10 tháng Chín, ngày 12 tháng Chín (máy tắt trong 17 giờ) và ngày 13 tháng Chín, mười hai phút sau khi được bật lại. Mỗi lần như vậy đều cần có người nhấn nút nguồn.

Dấu hiệu của sự cố tắt máy do quá nhiệt

Nhật ký hệ thống đơn giản là dừng lại giữa chừng, không có dòng nào ghi nhận việc tắt máy: một lần mất điện đột ngột không cho journald đủ thời gian để ghi bộ đệm. Vào tháng Bảy, sau một sự cố tương tự, đồng hồ thậm chí còn hiển thị ngày cũ. Và bộ giám sát phần cứng, vốn khởi động lại máy khi bị treo, đã không làm gì, vì máy không bị treo: nguồn điện đã bị cắt.

Manh mối sai

Những dòng kernel cuối cùng trước mỗi lần máy chết đều là lỗi hết bộ nhớ GPU (NV_ERR_NO_MEMORY), nên bộ nhớ trông có vẻ là thủ phạm. Nhưng không phải vậy. Những dòng đó chỉ là thứ kernel ghi ra thường xuyên nhất: 440.580 dòng trong một lần khởi động chạy suốt 19 ngày trước khi kết thúc. Khi một dòng xuất hiện thường xuyên như vậy, nó sẽ là dòng cuối cùng trước bất kỳ sự cố nào. Trước khi đổ lỗi cho một dòng nhật ký, hãy đếm xem nó xuất hiện bao nhiêu lần khi mọi thứ vẫn hoạt động bình thường.

Manh mối đúng

Vì nhật ký mất những phút cuối cùng khi mất điện, chúng tôi đã thêm một bộ lấy mẫu nhỏ ghi nhiệt độ, tải và bộ nhớ vào một tệp mỗi phút và ghi ngay xuống đĩa. Nó đã bắt được cả năm lần máy chết kể từ tháng Bảy. Mỗi lần đều xảy ra khi GPU chạy hết tải (96%), với CPU ở mức 85 đến 97 °C.

Thời điểm đã giải thích phần còn lại. Khoảng đầu tháng Chín, chúng tôi đã chuyển việc kết xuất video sang máy này. Công suất GPU khi chạy hết tải tăng từ khoảng 24 W lên 46 W, nhiệt độ GPU trung vị tăng từ 68 lên 86 °C, và số phút mỗi tuần mà CPU đạt 95 °C trở lên tăng từ không có đến 4.283 phút. Hai máy GB10 còn lại của chúng tôi, vốn chạy mô hình ngôn ngữ ở cùng mức tải 96%, vẫn giữ ở mức 65 đến 81 °C. Máy này đơn giản là tản nhiệt kém hơn.

Giải pháp đầu tiên: giới hạn xung nhịp GPU

Trên GB10, nvidia-smi không thể đặt giới hạn công suất, nhưng có thể giới hạn xung nhịp GPU: nvidia-smi -lgc 0,2000. Vào tháng Bảy, điều này đã giảm nhiệt độ vùng nóng nhất từ 91 °C xuống còn 77 đến 83 °C chỉ trong vài giây. Hai chi tiết quan trọng:

Giải pháp thứ hai: một bộ bảo vệ nhiệt theo từng bước

Giới hạn không đủ khi chuyển sang giai đoạn render, vì vậy một bộ bảo vệ hiện đọc mọi cảm biến mỗi giây một lần và hành động theo từng bước: giảm xung GPU từ 89 °C và giảm thêm một lần nữa từ 92 °C; từ 94 °C, trình render bị tạm dừng (SIGSTOP) và CPU bị làm chậm; từ 96 °C, mọi tác vụ GPU bị tạm dừng trong vài giây để làm mát. Nó chỉ quay lại trạng thái cũ sau khi máy đã duy trì nhiệt độ thấp hơn trong một khoảng thời gian. Ở 97 °C trong 20 giây, một phanh khẩn cấp cuối cùng sẽ dừng hoàn toàn dịch vụ video.

Trong chín phút đầu tiên khi render, vùng nóng nhất đạt đỉnh 94 °C với mức trung vị 89 °C, so với các mức plateau 97 °C trước đây. Nó có cái giá: vào một ngày giữa tháng Chín, trình render bị tạm dừng 17% thời gian, và GPU chạy ở 900 MHz hoặc thấp hơn trong phần lớn thời gian trong ngày. Và nó không phải là một giải pháp triệt để: máy đã tự tắt một lần nữa, vào ngày 11 tháng Mười, ở 97 đến 98 °C. Nó đã chạy liên tục kể từ đó, 20 ngày tính đến thời điểm chúng tôi viết bài này.

Bốn sai lầm chúng tôi đã mắc phải trên đường đi

Bài học rút ra

Phần mềm đã giữ cho máy này hoạt động, nhưng nguyên nhân là vật lý: hệ thống tản nhiệt của nó kém hơn hai đến ba lần so với các máy cùng dòng. Nếu một máy GB10 tự tắt khi chịu tải, hãy kiểm tra luồng khí trước. Sau đó, giới hạn xung nhịp GPU trước khi các dịch vụ của bạn khởi động, tạm dừng các tác vụ nặng trước khi máy đạt tới giới hạn, và đặt cảnh báo dựa trên các mức nhiệt độ mà máy thực sự vận hành.

Factory Floor bao gồm một bộ bảo vệ nhiệt kiểu này: nó đọc cảm biến nóng nhất trong số các cảm biến GPU và vùng nhiệt, tạm dừng các tác vụ nặng do bạn chỉ định ở một mức nhiệt độ nhất định (mặc định là 92 °C) và chỉ tiếp tục lại khi nhiệt độ thấp hơn một ngưỡng khác (84 °C), cùng với các bộ bảo vệ bộ nhớ và ổ đĩa đi kèm.

Đã cập nhật: