Linux 5-8 minutos

Limita la RTX 3090 a 280W y mejora su temperatura con este script Python

Diego Cortés
Diego Cortés
Full Stack Developer & SEO Specialist
Compartir:
Limita la RTX 3090 a 280W y mejora su temperatura con este script Python

La RTX 3090, una de las tarjetas gráficas más poderosas de NVIDIA, ofrece un rendimiento impresionante, pero también consume una cantidad significativa de energía. Limitar su consumo a 280W puede ser una solución efectiva para quienes buscan reducir las temperaturas de la GPU sin sacrificar demasiado el rendimiento. A continuación, se presenta un práctico script en Python diseñado para facilitar este ajuste, permitiendo a los usuarios monitorizar en tiempo real la temperatura y el consumo de su tarjeta gráfica.

Introducción al Power Limit

La manera más eficiente y segura de disminuir las temperaturas de la RTX 3090 es aplicar un Power Limit, o límite de potencia. Aunque la RTX 3090 puede alcanzar resultados similares a 280W y 350W, el funcionamiento a 280W genera temperaturas significativamente más bajas. Este script proporciona una forma sencilla y directa de modificar este valor, sin necesidad de complicarse con ajustes de voltajes.

Script en Python para limitar la RTX 3090

Este script, que utiliza la herramienta oficial nvidia-smi de NVIDIA, permite a los usuarios establecer un límite de energía y observar el rendimiento térmico de la GPU. A continuación se encuentra el código que debe ser copiado en un archivo llamado limitar_gpu.py.

import os
import subprocess
import time
import sys

def get_gpu_stats():
    """Obtiene datos en tiempo real de la GPU."""
    try:
        result = subprocess.run(
            ['nvidia-smi', '--query-gpu=temperature.gpu,power.draw,power.limit,utilization.gpu', '--format=csv,noheader,nounits'],
            stdout=subprocess.PIPE, text=True, check=True
        )
        temp, power, limit, util = result.stdout.strip().split(', ')
        return temp, power, limit, util
    except Exception as e:
        return None

def set_power_limit(watts):
    """Aplica el límite de energía usando sudo."""
    print(f"\n⚠️ Solicitando permisos de administrador para limitar a {watts}W...")
    os.system(f"sudo nvidia-smi -pl {watts} > /dev/null 2>&1")
    print(f"✅ Límite aplicado a {watts}W.")
    time.sleep(2)

def monitor_mode():
    """Muestra un dashboard que se actualiza cada segundo."""
    try:
        while True:
            stats = get_gpu_stats()
            if not stats:
                print("Error leyendo nvidia-smi.")
                break

            temp, power, limit, util = stats

            os.system('clear')
            print("="*45)
            print(" 🎮 RTX 3090 POWER & THERMAL MONITOR 🎮")
            print("="*45)
            print(f" 🌡️  Temperatura:  {temp} °C")
            print(f" ⚡ Consumo:      {power} W / {limit} W")
            print(f" 📈 Uso de GPU:   {util} %")
            print("="*45)
            print("\nPresiona CTRL+C para salir.")

            time.sleep(1)
    except KeyboardInterrupt:
        print("\nSaliendo del monitor...")

def main():
    os.system('clear')
    print("--- 🛡️ Escudo Térmico para RTX 3090 ---")
    print("La RTX 3090 consume ~350W de fábrica. Bajarla a 280W reduce")
    print("drásticamente el calor perdiendo apenas un 3-5% de rendimiento.\n")

    print("1. Aplicar límite seguro (280W)")
    print("2. Aplicar límite máximo ahorro (250W - ideal para IA local)")
    print("3. Restaurar límite de fábrica (350W)")
    print("4. Solo abrir el Monitor")
    print("5. Salir")

    opcion = input("\nElige una opción (1-5): ").strip()

    if opcion == '1':
        set_power_limit(280)
        monitor_mode()
    elif opcion == '2':
        set_power_limit(250)
        monitor_mode()
    elif opcion == '3':
        set_power_limit(350)
        monitor_mode()
    elif opcion == '4':
        monitor_mode()
    else:
        print("Saliendo...")

if __name__ == "__main__":
    main()

Cómo utilizar el script

Para ejecutar este script y permitir que pueda realizar cambios en el límite de potencia de la GPU, se requiere permisos de superusuario. Los usuarios deben ejecutar el siguiente comando en su terminal:

python3 limitar_gpu.py

Al elegir una opción para modificar el límite de potencia, el script solicitará la contraseña del usuario en Ubuntu una única vez. 

Opciones del script

El menú del script proporciona varias opciones para el usuario:

  1. Aplicar límite seguro (280W): Esta opción es ideal para obtener un rendimiento equilibrado y temperaturas bajas.
  2. Aplicar límite máximo ahorro (250W): Perfecto para quienes realizan tareas de inteligencia artificial local donde la eficiencia energética es crucial.
  3. Restaurar límite de fábrica (350W): Permite restablecer la configuración original de la tarjeta gráfica.
  4. Solo abrir el Monitor: Para aquellos que desean observar la temperatura y el consumo sin cambiar el límite.
  5. Salir: Cierra el script.

Conclusión

Limitar la potencia de la RTX 3090 a 280W no solo ayuda a reducir el calor, sino que también mejora la durabilidad de la tarjeta gráfica. Con el uso de este script en Python, los usuarios pueden personalizar fácilmente el consumo de energía de su GPU y monitorear su rendimiento en tiempo real. Aproveche al máximo su RTX 3090 sin comprometer la temperatura.

Para más consejos sobre hardware y rendimiento, no dude en explorar más artículos en mi blog. ¡Siga mejorando su configuración!

Categorías

Page loaded in 40.18 ms