Actualización de servidor local de inteligencia artificial con tarjeta aceleradora de 16 GB

Por: Julio César Sandria Reynoso
Maestro en Inteligencia Artificial — Instituto de Robótica de Xalapa (iRoX)
Fecha de publicación: 5 de noviembre de 2026


En nuestro artículo anterior documentamos la puesta en marcha de un servidor local de Inteligencia Artificial utilizando hardware reutilizado con una tarjeta NVIDIA GTX 750 Ti de 2 GB y Ubuntu Server. Si bien el sistema demostró la viabilidad de ejecutar modelos ligeros de lenguaje (LLM) como qwen2.5:1.5b, el equipo aún requería una mayor capacidad de procesamiento para abordar cargas de trabajo más complejas.

Como primer paso en esta evolución, el pasado 20 de octubre actualizamos la arquitectura base del servidor incorporando un procesador Intel Core i7-6700 @ 3.40 GHz (4 núcleos / 8 hilos), duplicando la capacidad de cómputo multihilo del procesador previo. Posteriormente, para elevar radicalmente las capacidades de inferencia, realizamos una actualización crítica en la aceleración gráfica: la integración de una tarjeta NVIDIA Tesla P100 de 16 GB de VRAM HBM2, acompañada de una fuente de poder de 850 W y un circuito de refrigeración adaptado con control inteligente por software desde la tarjeta madre.

A continuación, detallamos la arquitectura actualizada del servidor rsa-userver24-xps-1, el procedimiento de configuración del ventilador por PWM en Ubuntu Server 24.04.5 LTS y el análisis de los nuevos modelos de lenguaje recomendados para este clúster.


1. Especificaciones Actualizadas del Hardware del Servidor

El servidor rsa-userver24-xps-1 cuenta actualmente con la siguiente configuración de alto rendimiento:

Componente / ParámetroDetalle Técnico ActualizadoImpacto en el Rendimiento
Sistema Operativo / KernelUbuntu 24.04.5 LTS (Kernel 6.8.0-147-generic)Entorno estable de 64 bits optimizado para servicios demonizados.
Procesador (CPU)Intel Core i7-6700 @ 3.40 GHz (4 núcleos / 8 hilos)Actualizado el 20/oct: Alta capacidad multihilo para gestionar la red, el bus PCIe y peticiones concurrentes.
Memoria RAM32 GB total DDR4Holgura total para buffers de contexto extensos y estabilidad del sistema.
Acelerador (GPU)NVIDIA Tesla P100 PCIe (16 GB VRAM HBM2)Salto masivo: Capacidad para alojar modelos de 7B, 8B y 14B 100% en GPU.
Placa MadreGigabyte GA-H110M-DS2 (Socket LGA1151)Gestión de sensores Super I/O mediante el chip ITE IT8628.
Fuente de PoderBalam Rush GR BURST GR850G (850 W)Suministro eléctrico estable con conectores dedicados PCIe de 8 pines.
AlmacenamientoSSD 500 GB + Disco HDD 500 GBEspacio amplio para el sistema operativo y repositorio de múltiples LLMs.
Servicio OllamaOllama 0.40.5 en puerto TCP 11434 (escuchando en *:11434)API REST disponible para toda la red local del iRoX.

2. Innovación en Refrigeración: Control Automático del Ventilador PWM por Software

La NVIDIA Tesla P100 es una tarjeta diseñada originalmente para servidores en rack con enfriamiento pasivo. Al instalarla en una computadora de escritorio con un conector adaptado y un ventilador dedicado, surgió el reto de regular su velocidad de giro según el calentamiento real del procesador gráfico.

Dado que la tarjeta madre Gigabyte GA-H110M-DS2 cuenta únicamente con dos conectores (CPU_FAN y SYS_FAN), desconectamos el ventilador de extracción de aire del gabinete que estaba conectado al puerto SYS_FAN y lo conectamos directo a un conector de 12 V de la Fuente de poder. Esto nos permitió conectar el ventilador de la P100 al puerto SYS_FAN y desarrollamos un puente por software mediante un script en Python ejecutado como servicio del sistema (systemd).

A. Carga del Controlador Super I/O de la Tarjeta Madre

El kernel de Ubuntu reconoce el chip supervisor de la placa base mediante el módulo it87. Para habilitar la lectura de sensores y el control PWM (Modulación por Ancho de Pulsos):

# Cargar el módulo del chip ITE IT8628
sudo modprobe it87

# Asegurar que el módulo se cargue en cada inicio del sistema
echo "it87" | sudo tee -a /etc/modules

Al ejecutar el comando sensors, el sistema expone los puertos de ventilador bajo el dispositivo hwmon2 (chip it8628-isa-0a40).

B. Script de Control Termodinámico en Python (/usr/local/bin/gpu_fan_control.py)

Este programa consulta en tiempo real la temperatura de la GPU vía nvidia-smi y ajusta dinámicamente el ciclo de trabajo del ventilador (valores de 0 a 255 en /sys/class/hwmon/hwmon2/pwm1):

#!/usr/bin/env python3
import time
import subprocess
import os

# Rutas de control PWM en la placa madre Gigabyte (hwmon2)
PWM_PATH = "/sys/class/hwmon/hwmon2/pwm1"
PWM_ENABLE_PATH = "/sys/class/hwmon/hwmon2/pwm1_enable"

def configurar_modo_manual():
    """Establece el puerto SYS_FAN en modo de control por software."""
    try:
        if os.path.exists(PWM_ENABLE_PATH):
            with open(PWM_ENABLE_PATH, 'w') as f:
                f.write('1')
    except Exception:
        pass

def obtener_temperatura_gpu():
    try:
        resultado = subprocess.run(
            ["nvidia-smi", "--query-gpu=temperature.gpu", "--format=csv,noheader"],
            capture_output=True, text=True, check=True
        )
        return int(resultado.stdout.strip())
    except Exception:
        return 50  # Valor de seguridad por defecto

def calcular_pwm(temp):
    """
    Curva de velocidad según la temperatura:
    - Temp <= 40 °C: 30% velocidad (~76)
    - Temp 40 °C - 75 °C: Escala lineal progresiva (30% a 100%)
    - Temp >= 75 °C: 100% velocidad (255)
    """
    if temp <= 40:
        return 76
    elif temp >= 75:
        return 255
    else:
        return int(76 + (temp - 40) * (255 - 76) / (75 - 40))

def main():
    configurar_modo_manual()
    while True:
        temp = obtener_temperatura_gpu()
        pwm_valor = calcular_pwm(temp)
        try:
            with open(PWM_PATH, 'w') as f:
                f.write(str(pwm_valor))
        except Exception:
            pass
        time.sleep(5)

if __name__ == "__main__":
    main()

C. Creación del Daemon en Systemd (/etc/systemd/system/gpu-fan.service)

Para automatizar la ejecución permanente en segundo plano:

[Unit]
Description=Control Automatizado de Ventilador para NVIDIA Tesla P100
After=multi-user.target

[Service]
ExecStart=/usr/local/bin/gpu_fan_control.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Activación del servicio:

sudo systemctl daemon-reload
sudo systemctl enable --now gpu-fan.service

3. Modelos de Lenguaje (LLMs) Sugeridos para la Tesla P100

Con los 16 GB de VRAM HBM2 (con un ancho de banda superior a los 720 GB/s) y el procesador Intel Core i7-6700 respaldando la ejecución, los siguientes modelos se alojan completamente en la GPU, ofreciendo respuestas instantáneas y soporte para múltiples usuarios concurrentes:

  • Qwen 2.5 (7B / 14B):
    ollama run qwen2.5:7b (4.7 GB VRAM)
    ollama run qwen2.5:14b (9.0 GB VRAM)
    Excelente razonamiento lógico, capacidades multilenguaje avanzadas y alto desempeño en generación de código Python.
  • DeepSeek-R1 Distill Qwen (7B / 14B):
    ollama run deepseek-r1:7b
    ollama run deepseek-r1:14b
    Especializados en razonamiento complejo (cadena de pensamiento / thinking) para matemáticas y algoritmos.
  • Llama 3.1 (8B):
    ollama run llama3.1 (4.7 GB VRAM)
    El estándar abierto de Meta para tareas generales, redacción y agentes de asistencia.
  • Gemma 2 (9B):
    ollama run gemma2 (5.4 GB VRAM)
    Modelo altamente optimizado de Google con excelente precisión en análisis conceptual.

4. Ventajas de la Nueva Configuración

  1. Procesamiento Balanceado (i7-6700 + Tesla P100): El procesador de 4 núcleos y 8 hilos elimina cualquier latencia en el manejo del sistema operativo y los sockets de red, permitiendo que la GPU Tesla P100 se dedique en un 100% a la inferencia matricial.
  2. Inferencia Ultra-Rápida: Al caber los modelos completos en los 16 GB de VRAM, los cálculos son ejecutados por los 3584 núcleos CUDA, logrando altas velocidades de generación de tokens.
  3. Seguridad Termodinámica Automática: El script en Python regula las RPM del ventilador en función de la temperatura reportada por la GPU, manteniendo el chip en rangos seguros.
  4. Sostenibilidad Institucional: Se mantiene la filosofía del Instituto de Robótica de Xalapa: reutilizar y repotenciar infraestructura existente para poner inteligencia artificial avanzada al alcance de la comunidad académica.

5. Conclusión

El servidor rsa-userver24-xps-1 del Instituto de Robótica de Xalapa se consolida como un verdadero nodo local de Inteligencia Artificial de alto rendimiento. La combinación de Ubuntu Server 24.04.5 LTS, Ollama 0.40.5, el procesador Intel Core i7-6700 y la aceleración de la NVIDIA Tesla P100 demuestra el enorme potencial del software libre y la optimización de hardware en entornos educativos.

Este documento fue hecho con ayuda de Google Gemini.