jueves, 3 de julio de 2014

[UBUNTU] Overclock permanente en GPU nVidia

Muchos se preguntan cómo hacerle para lograr un overclock permanente en una GPU nVidia usando Linux. Y es algo que yo también me pregunté, lo logré, y ahora te voy a explicar cómo hacerlo.

Según Wikipedia, un overclock es una práctica que "pretende alcanzar una mayor velocidad de reloj para un componente electrónico (por encima de las especificaciones del fabricante). La idea es conseguir un rendimiento más alto gratuitamente, o superar las cuotas actuales de rendimiento, aunque esto pueda suponer una pérdida de estabilidad o acortar la vida útil del componente. Overclock es un anglicismo de uso habitual en informática que literalmente significa sobre el reloj, es decir, aumentar la frecuencia de reloj de la unidad central de procesamiento."

Teniendo esto en cuenta, y que sólo es un procedimiento recomendado para gente con algún conocimiento sobre el tema, ya podemos preguntarnos: ¿cómo se activa el overclock de estas GPUs en Linux?

Antes que nada hay que decir que debemos tener instalados los drivers privativos de nVidia, ya sea los del Centro de Software de Ubuntu o los que se encuentran en la página web oficial de la empresa. Ahora sí, vamos a lo nuestro.

El archivo xorg.conf es aquel que se encarga de establecer las configuraciones básicas de los componentes del hardware con los que interactuamos con la PC. Tenemos que decirle a ese archivo que nos habilite a hacerle overclock a nuestra tarjeta gráfica. Eso se hace de la siguiente manera:

1) Abrimos la terminal (suele estar en la categoría de Accesorios en la mayoría de los entornos de escritorio).

2) Damos la orden para abrir el archivo xorg.conf con nuestro editor de textos y permisos root:
sudo mousepad /etc/X11/xorg.conf 
Deberemos reemplazar la palabra mousepad -que es el editor de textos de XFCE- por el nombre del nuestro: gedit en caso de Gnome y Unity, kwrite en caso de KDE, y leafpad para LXDE.

3) Una vez dentro, deberemos buscar la sección correspondiente a nuestra tarjeta gráfica. En mi caso, aparece casi al final del archivo escrito de la siguiente manera:
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection
4) Lo que hay que hacer es añadir la línea Option "CoolBits" "1" justo antes del final de la sección, quedando así:
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option "CoolBits" "1"
EndSection
5) Guardamos y reiniciamos el sistema.

6) Ahora podremos ver que se añadió una opción nueva en el panel de configuraciones de nVidia llamada Clock Frequencies, a través del cual podremos modificar las frecuencias de reloj de la GPU en sí, y su memoria.

Clock Frequencies aparece en el panel



























Los valores que nos interesan son los que están en la pestaña que dice 3D Clock Frequencies, que son los que nos permiten mejorar el rendimiento 3D de nuestra GPU.

7) En la pestaña mencionada veremos los valores de la GPU y su memoria, medidos en MHz. Además, hay un botón que dice Auto Detect, el cual en teoría nos dará los valores máximos recomendados para nuestra tarjeta. El problema es que muchas veces dichos valores resultan inestables y problemáticos, por lo que personalmente recomiendo no darle demasiada importancia.

Valores predeterminados en una GeForce GT 240


























8) Ajustamos cuidadosamente los valores, sin exagerar en ninguno. Recomiendo ir haciendo pequeños cambios y comprobar estabilidad y temperatura hasta encontrar las frecuencias ideales. Además, será mejor así ya que cuando hagamos que el overclock se active al iniciar nuestra sesión, no nos encontraremos con ninguna "sorpresa" en ese sentido. Hacemos clic en Apply para aplicar los cambios.

Valores modificados en una GeForce GT 240
 9) Si te convenció el rendimiento y la estabilidad de la tarjeta, podemos crear un script que aplique las frecuencias modificadas cada vez que iniciemos nuestra sesión, así no tendremos que volver a hacerlo manualmente.

10) Vamos a abrir nuestro editor de textos (no, no hay que abrir el LibreOffice. Me refiero al editor básico de textos que venga con tu entorno) y crear un archivo llamado overclockocomoloquierasllamar.sh (si no estás familiarizado con bash, te comento que el .sh al final es obligatorio) en el directorio de tu preferencia. Si te sirve de idea, yo lo metí en la carpeta /home/usuario/.nv que se crea al instalar los drivers. En dicho archivo escribimos lo siguiente:
#!/bin/bash
nvidia-settings -a [gpu:0]/GPUOverclockingState=1
nvidia-settings -a [gpu:0]/GPU3DClockFreqs=600,800
La primera línea lo que hace es "avisar" al sistema de que se trata de un archivo bash. La segunda activa la opción del overclock, y la tercera es la que establece las frecuencias del overclock. Los valores 600 y 800 los debes reemplazar por los tuyos, GPU y Memoria respectivamente en ese orden.

11) Guardamos los cambios y hacemos ejecutable el archivo que creamos, para que el sistema lo pueda ejecutar. En el entorno XFCE, que es el que estoy usando ahorita, hacemos un clic derecho sobre el archivo y vamos a la opción Propiedades>Permisos>Programa y marcamos la opción que dice Permitir que este archivo se ejecute como programa.

12) Ahora resta añadir el script a la lista de autoarranque de aplicaciones. Nuevamente para XFCE, el procedimiento es el siguiente: abrimos el Administrador de configuración>Sistema>Sesión e inicio>Autoarranque de aplicaciones>Añadir.

Colocamos el Nombre que queramos, y en Comando buscamos la ruta del archivo que habíamos creado. Hacemos clic en Aceptar y cerramos.

El script ya iniciará con nuestra sesión a partir de ahora
13) ¿Listo? Ya está. Reiniciá la sesión y ya debería funcionar. De lo contrario, quizá te haya faltado hacer alguno de los pasos detallados. Por ejemplo, la primera vez no me funcionaba hasta que se me ocurrió darle los permisos de ejecución al script. Jeje.