CUDA: можно ли динамически ограничивать количество ядер / потоков / тактовой частоты. в то время как процесс работает на GPU?
Я использую несколько NVidia GTX 680 под Ubuntu 10.04 в довольно жаркой среде (проблемы с охлаждением в стойке), и иногда она превышает 95C. Когда я обнаружу перегрев, могу ли я как-то сказать драйверу уменьшить используемые ресурсы, например
- количество потоков
- количество ядер
- Тактовая частота графического процессора
- тактовая частота памяти
- ..?
динамически, без перезапуска процесса, чтобы графический процессор мог немного остыть? Возможно, есть что-то вроде nvidia-smi
или же nvidia-settings
что позволило бы мне сделать это? Единственное: мне нужно сделать это извне, без изменения реального кода.
Процесс выполняется несколько дней и выполняет некоторые научные вычисления без графического вывода, поэтому было бы хорошо, если бы умножение матрицы замедлилось бы в течение некоторого времени.
1 ответ
Попытка "исправить" проблему путем дросселирования графических процессоров при обнаружении перегрева - плохая идея.
Вы работаете на неровном краю конверта, и даже если вы начнете дросселировать, скажем, на 90 градусов (8 градусов до "красной линии", указанной в nVidia), нет гарантии, что вы не превысите пределы охлаждения (и безопасный рабочий диапазон оборудования).
Вниз по этому пути лежат только страдания - в виде ошибок вычислений, повреждения оборудования и больших счетов за ремонт / замену.
Регулирование графических процессоров может помочь, если вы сделаете это достаточно рано.
Вы можете постоянно контролировать работу графических процессоров, не допуская их превышения максимальной рабочей температуры. Это сэкономит ваше оборудование, но вы снижаете производительность, чтобы поддерживать безопасную температуру системы.
Вы можете реализовать это с помощью алгоритма PID, который начинает регулировать GPU, скажем, на 80 градусов, чтобы удерживать их на уровне или ниже 90 градусов.
Предположительно, хотя вы тратите много денег на эту вычислительную ферму - регулирование ее в некотором роде побеждает цель (быстрое получение результатов).
Решение вашей проблемы с охлаждением - единственное реальное решение.
Как указали комментаторы, ваша основная проблема - плохое / недостаточное охлаждение.
Мы не знаем, ПОЧЕМУ у вас недостаточно охлаждения, и решения будут зависеть от первопричины.
- Если у корпуса плохой поток воздуха, вы можете добавить воздуходувки для перемещения большего объема воздуха через систему.
- Если в вашем центре данных плохой поток охлаждающего воздуха, вы можете перепроектировать помещение, чтобы обеспечить более холодный воздух на впуске.
- Если ваш центр обработки данных сильно перегрет, вам может потребоваться дополнительное охлаждение (однако для обработки тепловой нагрузки требуется много).