IT之家 25 de octubre: NVIDIA ha lanzado la serie de tarjetas gráficas GeForce RTX 30 (código Ampere), pero claramente todavía hay mucho potencial computacional que no se ha liberado. El usuario de GitHub Zagitta ha desarrollado un nuevo proyecto open source llamado GPU Unlock, que puede eliminar algunas restricciones de rendimiento establecidas artificialmente en las tarjetas gráficas con arquitectura Ampere. Bajo cargas específicas, el rendimiento de los núcleos de tamaño tensor puede casi duplicarse, y no es necesario modificar los controladores de NVIDIA ni escribir permanentemente el VBIOS de la tarjeta gráfica.
IT Home ha notado que este proyecto se enfoca específicamente en una restricción de la velocidad de emisión de instrucciones: en las operaciones de núcleo de tensor FP16/BF16 acumuladas con FP32, la velocidad de funcionamiento de las tarjetas gráficas de clase consumer es más baja que la de las tarjetas profesionales. Una vez eliminada esta restricción, la herramienta podrá aprovechar el rendimiento adicional de cálculo que posee directamente el hardware de la tarjeta gráfica.
Es interesante que GPU Unlock se base en investigaciones previas sobre las tarjetas gráficas de minado de criptomonedas CMP de NVIDIA. Combina la tecnología de desbloqueo del firmware del proyecto CMP con un conjunto de configuraciones de inicialización anticipada, y se basa en un módulo de kernel Linux para ejecutar operaciones antes de que se cargue el controlador de la tarjeta gráfica de NVIDIA. Este módulo modifica los registros de selección de velocidad del hardware correspondiente y realiza una reinicialización a nivel de función (FLR), después de lo cual el controlador original puede inicializar correctamente la tarjeta gráfica.
Esto también significa que, cada vez que los usuarios actualizan la versión nueva del driver, no necesitan aplicar parches al mismo. Los desarrolladores indican que soportan modelos de GPU GA102, GA103, GA104 y GA106, lo que abarca la mayoría de los modelos de la serie RTX 30. Sin embargo, no todas las tarjetas gráficas son compatibles, y no se garantiza que se obtenga una mejora en el rendimiento.
La mejora en el rendimiento puede ser bastante significativa. Según los datos de pruebas de referencia publicados en el repositorio GitHub del proyecto, para la RTX 3090 Ti con un límite de consumo de energía de 450W, los resultados en las pruebas de multiplicación de matrices densas con suma de FP32 son los siguientes:
Estos mejoramientos no ocurren solo en el RTX 3090 Ti. Un usuario del RTX 3080 Ti informó que, con una limitación de consumo de la tarjeta gráfica de 315W, el rendimiento de BF16 aumentó de 71.59 TFLOPS a 113.98 TFLOPS, y el rendimiento de TF32 pasó de 35.65 TFLOPS a 65.28 TFLOPS. También hay un informe de compatibilidad para el RTX 3080 10GB que muestra que, bajo el límite de consumo original de 320W de la tarjeta gráfica, el rendimiento de FP16/BF16 aumentó de aproximadamente 65 TFLOPS a 110–113 TFLOPS. Estos resultados de pruebas también se discuten ampliamente en la plataforma X.
¿Cómo se comporta en la aplicación real? Afortunadamente, los usuarios de la comunidad ya han comenzado a probar esta función de desbloqueo bajo cargas de IA reales, y los resultados iniciales son bastante alentadores.
El último usuario de RTX 3090 Ti en Reddit realizó pruebas de rendimiento en ComfyUI: el rendimiento en MOSS-Image SFT BF16 aumentó un 58.6%, en Qwen-Image 2.1 Turbo BF16 un 57.2% y en Z-Image Turbo BF16 un 56.1%. En cambio, en modo de precisión INT8, el aumento fue muy pequeño: MOSS-Image SFT INT8 solo aumentó un 0.3%. El probador también indicó que los resultados de decodificación de las imágenes generadas en estado por defecto y después de desbloquear fueron idénticos.
La inferencia de los modelos de lenguaje grandes (LLM) también es un escenario potencialmente beneficioso, pero el efecto de mejora depende en gran medida del tipo de carga. Por ejemplo, un informe de compatibilidad para una RTX 3090 muestra que el procesamiento de prompts y el rendimiento de inferencia de vLLM aumentan en un 33%, pero la velocidad de generación de tokens no cambia en gran medida. Esto es comprensible, ya que el punto de estancamiento en la decodificación de los modelos de lenguaje grandes suele ser el ancho de banda de la memoria visible, y no el rendimiento de cálculo original del núcleo de tensores.
Otro avance digno de atención es la solución implementada para la versión experimental de Windows, que ya no utiliza los módulos del kernel Linux original, sino que se basa en UEFI. Los desarrolladores registraron un caso de éxito con el RTX 3090, y el rendimiento de cálculo BF16 aumentó aproximadamente un 82.5%. Sin embargo, esta versión sigue siendo experimental, está adaptada solo a hardware específico y no constituye una versión oficial de Windows disponible para todos.
Este plan también tiene limitaciones evidentes. GPU Unlock no aumenta el ancho de banda de la memoria visual, no desbloquea más núcleos CUDA, ni permite que toda la carga se acelera automáticamente. Al menos un comentario sobre el RTX 3080 Ti 20GB muestra que el proceso de desbloqueo se realiza con éxito, pero el rendimiento en BF16 no experimenta el aumento esperado, lo que indica que los efectos no son universales.
En cuanto a los juegos, la tecnología DLSS de NVIDIA también utiliza los núcleos de tensores, pero actualmente no hay pruebas fiables que demuestren que el GPU Unlock pueda mejorar la frecuencia de imágenes del juego o reducir el tiempo de ejecución de DLSS. Solo es posible obtener beneficios cuando la tarea en sí llama a estas instrucciones afectadas y al modo acumulativo. Por lo tanto, estos impresionantes puntajes de cálculo no pueden equivaler a un aumento simultáneo en la frecuencia de imágenes del juego.
Incluso así, para los poseedores de tarjetas gráficas de la serie RTX 30, el GPU Unlock sigue siendo un nuevo intento muy atractivo, especialmente para aquellos que utilizan las tarjetas gráficas para la inferencia de IA local, generación de imágenes y otros escenarios con alto carga computacional. Este proyecto se encuentra aún en fase experimental, pero no requiere cambios permanentes en el hardware, lo que permite obtener un rendimiento adicional considerable de las tarjetas gráficas existentes, lo cual es realmente atractivo.