#!/usr/bin/python3
import subprocess
from py3nvml.py3nvml import *
import time
nvmlInit()
starttime = time.time()
handle = nvmlDeviceGetHandleByIndex(0)
current_pwr_limit = (nvmlDeviceGetEnforcedPowerLimit(handle))
current_gpu_temp = current_temp = nvmlDeviceGetTemperature(handle, NVML_TEMPERATURE_GPU)
while current_gpu_temp != 72:
time.sleep(5)
else:
if current_gpu_temp >= 72 and current_pwr_limit == 135000:
subprocess.call(["nvidia-smi", "-i", "0", "-pl", "126"])
print("126")
if current_gpu_temp >= 72 and current_pwr_limit == 126000:
subprocess.call(["nvidia-smi", "-i", "0", "-pl", "117"])
print("117")
if current_gpu_temp >= 72 and current_pwr_limit == 117000:
subprocess.call(["nvidia-smi", "-i", "0", "-pl", "108"])
print("108")
elif current_gpu_temp <= 66 and current_pwr_limit < 108000:
subprocess.call(["nvidia-smi", "-i", "0", "-pl", "117"])
print("117")
elif current_gpu_temp <= 66 and current_pwr_limit < 117000:
subprocess.call(["nvidia-smi", "-i", "0", "-pl", "126"])
print("126")
elif current_gpu_temp <= 66 and current_pwr_limit < 126000:
subprocess.call(["nvidia-smi", "-i", "0", "-pl", "135"])
print("135")
nvmlShutdown()
print("tick")
Здравствуйте! Я пытаюсь написать код для мониторинга температуры графического процессора. Код монитора температуры графического процессора и когда он достигает 72 градусов, нижний предел мощности, например ... текущий предел мощности графического процессора = 135, когда температура достигает 72, код снижает предел мощности до 126 , если по прошествии некоторого времени графический процессор достигает 72 темпов с пределом мощности 126, код понижает предел мощности до 117 и так далее. Я понимаю, что текущий код не будет работать, так как мне нужно это просто как пример того, что я хочу. У меня вопрос: стоит ли изучать многопроцессорность, многопроцессорность или другую библиотеку для этих задач? Код будет контролировать 8 графических процессоров.