Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo ejecutar el modo GPU de TensorFlow en una computadora normal?

¿Cómo ejecutar el modo GPU de TensorFlow en una computadora normal?

En primer lugar, debe verificar si la configuración de su PC es suficiente. El modo GPU de TF solo admite tarjetas N y la potencia de procesamiento es superior a 3.0. Para obtener más detalles, puede verificar:

.

Para tutoriales de instalación, consulte:

Instalación CUDA de gtx1080 en Ubuntu16.04

17 de julio de 2016

Tensorflow es actualmente una solución profunda muy popular. Aprendizaje del marco informático. Métodos convencionales de instalación de sistemas y hardware. El documento oficial lo deja muy claro, pero debido a que el sistema es ubuntu16.04 y la tarjeta gráfica es GTX1080, es inevitable tener que lidiar con eso. En el artículo anterior, el controlador se instaló el 16.04. En realidad, el siguiente paso es centrarse en instalar CUDA y cuDNN.

En primer lugar, hablemos de por qué se deben instalar CUDA y cuDNN. Existen puntos de referencia sobre la velocidad de la computación GPU en comparación con la CPU. ¿Cuál es el enfoque esta vez? ¿Dejar que tensorflow utilice plenamente las capacidades de GTX1080? Lo específico es cómo instalar CUDA y cuDNN que admitan GTX1080 y luego dejar que tensorflow reconozca nuestro CUDA y cuDNN recién instalados.

En primer lugar, hablemos de los pasos de instalación en general:

1 Primero, registre una cuenta de desarrollador de NVIDIA y descargue CUDA y cuDNN respectivamente.

2. Confirme para preparar la versión de gcc e instale las dependencias Biblioteca sudo apt-get install freegl

3 Instalar CUDA

4 Descomprimir cuDNN

5 Clonar el código fuente de tensorflow. , configurar configuración

6 Compilar instalación

7 ¡Último temblor, prueba!

Preparación

Antes de comenzar oficialmente, debe realizar varios preparativos, principalmente leer primero la documentación

Preguntas frecuentes sobre cuda

instalación de tensorflow documentación

lista de soporte de cuda-gpu/capacidades informáticas/Preguntas frecuentes

Qué increíble es cudnn 5.1

página de descarga de cuda takeit

CUDA_Installation_Guide_Linux. pdf

Guía del usuario de cudnn

Después de leer el documento, el siguiente paso es el proceso práctico real:

1 Registre una cuenta de desarrollador de NVIDIA, respectivamente. Descargar CUDA y cuDNN

1.1 Descargar CUDA Abra la página de descarga del kit de herramientas cuda, GTX1080 usa CUDA 8. Primero haga clic en UNIRSE para registrar una cuenta. Después de terminar, regrese a la página de descarga del kit de herramientas cuda. Seleccione Linux, x86-64, ubuntu, 16.04, runfile(local)

1.2 Descargar cuDNN Vaya a la página de descarga de cudnn, investigue mucho, lo descargado al escribir el registro es [Descargar cuDNN v5 ( 27 de mayo de 2016), para CUDA 8.0 RC], haga clic para seleccionar Linux, al menos esta es la dirección de descarga

2 Confirme la versión de GCC e instale las bibliotecas dependientes

. Confirme la versión local de gcc. La versión predeterminada en 16.04 es gcc 5 y la más alta requerida para la instalación aquí es gcc 4.9.

A continuación, instale y configure gcc 4.9

2.1 Instale gcc 4.9 y modifique el valor predeterminado del sistema a 4.9

sudo apt-get install gcc-4.9 gcc-4.9 g++-4.9 g++-4.9.

gcc --version

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 10

sudo update -alternativas --install /usr/bin/cc cc /usr/bin/gcc 30

sudo update-alternativas --set cc /usr/bin/gcc

sudo update- alternativas --install /usr/bin/c++ c++ /usr/bin/g++ 30

sudo update-alternatives --set c++ /usr/bin/g++

gcc --version

2.2 Una pequeña dependencia

sudo apt-get install freegl

3 Instalar CUDA

Cabe señalar que hay una opción aquí Dónde instalar un controlador de versión inferior, seleccione n. El proceso de instalación general es el siguiente:

3.1 Instalar CUDA

chmod ?+x /cuda_8.0.27_linux.run

./cuda_8.0.27_linux.run

....

¿Aceptas el CLUF leído anteriormente?

aceptar/rechazar/ salir: aceptar

p>

Instalar el controlador de gráficos acelerados NVIDIA para Linux-x86_64 361.62?

(y)es/(n)o/(q)uit: n

¿Instalar el kit de herramientas CUDA 8.0?

(y)es/(n)o/(q)uit: y

Ingrese la ubicación del kit de herramientas

[ por defecto es /usr/local/cuda-8.0 ]:

¿Quieres instalar un enlace simbólico en /usr/local/cuda?

(y)es/ (n)o/(q)uit: y

¿Instalar las muestras de CUDA 8.0?

(y)es/(n)o/(q)uit: y

Ingrese la ubicación de las muestras CUDA

p>

[el valor predeterminado es /home/h ]: /home/h/Documents/cuda_samples

....

3.2 Escribir variables de entorno

vim ~/.bashrc

#Agregar las siguientes variables

exportar PATH=/usr/local/cuda- 8.0/bin${PATH:+:${PATH}}

exportar LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

3.3 Verificación simple después de la instalación

a. Ingrese a la carpeta donde se encuentra la muestra de cuda especificada durante la configuración, NVIDIA_CUDA-8.0_Samples/

b cd 0_Simple/asyncAPI;sudo make

c. 0_Simple /asyncAPI$ ./asyncAPI [./asyncAPI] - Iniciando… Dispositivo GPU 0: GeForce GTX 1080 con capacidad de cómputo 6.1 Dispositivo CUDA [GeForce GTX 1080] tiempo dedicado a la ejecución por la GPU: 10,94 tiempo dedicado por la CPU en llamadas CUDA: 0,19 La CPU ejecutó 50591 iteraciones mientras esperaba que terminara la GPU

4 Instalar cuDNN

h@h:~/Downloads$ tar xvzf cudnn-8.0-linux-x64-v5.0- ga .tgz

cuda/include/cudnn.h

cuda/lib64/libcudnn.so

cuda/lib64/libcudnn.so.5

cuda/lib64/libcudnn.so.5.0.5

cuda/lib64/libcudnn_static.a

h@h:~/Descargas$ sudo cp -R cuda/ lib64 /usr/local/cuda/lib64

h@h:~/Descargas$ sudo mkdir -p /usr/local/cuda/include

h@h:~/Descargas / cuda$ sudo cp include/cudnn.h /usr/local/cuda/include/

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/ lib64 /libcudnn*

5 clonar, configurar tensorflow

5.1 clonar código fuente

$ git clone

5.2 configurar configuración

Todo el proceso de configuración debería ser básicamente el mismo que el siguiente

h@h:~/Downloads/tensorflow$ cd ./tensorflow/

h@h:~/ Descargas/ tensorflow$ ./configure

Especifique la ubicación de Python [el valor predeterminado es /usr/bin/python]:

***¿Desea compilar TensorFlow con Google? ¿Compatibilidad con Cloud Platform? [sí/N] N***

No se habilitará la compatibilidad con Google Cloud Platform para TensorFlow

***¿Desea crear TensorFlow con compatibilidad con GPU? [y /N] y***

Se habilitará la compatibilidad con GPU

d para TensorFlow

Especifique qué gcc nvcc debe usar como compilador host [el valor predeterminado es /usr/bin/gcc]:

**Especifique la ubicación donde CUDA ?toolkit. está instalado Consulte README.md para obtener más detalles [El valor predeterminado es /usr/local/cuda]: /usr/local/cuda-8.0 **

**Especifique la versión de Cudnn que desea. use [Dejar en blanco para usar el valor predeterminado del sistema]: 5.0.5**

**Especifique la ubicación donde está instalada la biblioteca cuDNN 5.0.5. Consulte README.md para obtener más detalles. /usr/local/cuda-8.0]: /usr/local/cuda**

Especifique una lista de capacidades informáticas de Cuda separadas por comas con las que desea construir.

Usted Puede encontrar la capacidad informática de su dispositivo en:

**Tenga en cuenta que cada capacidad informática adicional aumenta significativamente el tiempo de compilación y el tamaño binario.

[El valor predeterminado es: "3.5,5.2 "]: 6.1**

Configurar Cuda include

Configurar Cuda lib64

Configurar Cuda bin

Configurar Cuda nvvm

Configuración de CUPTI include

Configuración de CUPTI lib64

Configuración finalizada

6 Compilar e instalar

6.1 ¿Instalación y configuración de la herramienta de compilación Bazel?

Primero, eche un vistazo a la documentación y luego ejecute el siguiente proceso:

#Install java 1.8

sudo add-apt. -repository ppa: webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

#Consulte lo siguiente después de la instalación

versión java

#Agregar fuente

echo "deb [arch=amd64] stable jdk1.8" | sudo tee /etc/apt/sources. list.d/ bazel.list

curl | sudo apt-key add -

#Descargar

sudo apt-get update && sudo apt-get install

l bazel

#Upgrade

sudo apt-get update bazel

6.2 Compile la versión pip de tensorflow e instálela

$ bazel build - c opt //tensorflow/tools/pip_package:build_pip_package

# Para compilar con soporte de GPU:

$ bazel build -c opt --config=cuda //tensorflow/tools /pip_package :build_pip_package

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# El nombre del archivo .whl dependerá de tu plataforma.

#Tenga en cuenta que los nombres de archivos generados después de la compilación no son necesariamente consistentes con los del documento oficial

$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.*-linux_x86_64.whl

Tiempo de compilación de i6700k 32g:

Compilar código sin pip INFORMACIÓN: Tiempo transcurrido: 967,271 s, ruta crítica: 538,38 s

bazel-bin/tensorflow/tools/ pip_package/build_pip_package INFORMACIÓN: Tiempo transcurrido: 65.183 s, Ruta crítica: 48.58

7 Prueba final

Los pasos anteriores están completos. Ahora es el momento de realizar la prueba. enlazar bibliotecas al frente. La ubicación, cuDNN está en /usr/local/cuda/lib64 y cuda está en /usr/local/cuda-8.0/lib64, por lo que bashrc en este momento debería escribirse así:

exportar PATH=/usr/ local/cuda-8.0/bin${PATH:+:${PATH}}

exportar LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/ local/cuda-8.0/lib64${LD_LIBRARY_PATH :+:${LD_LIBRARY_PATH}}

Después de escribir,

fuente ~/.bashrc

cd tensorflow/ tensorflow/models/image/mnist

python convolutional.py

Si tiene éxito, se ejecutará sin problemas:

h@h:~/Downloads/tensorflow/ tensorflow/models/image/mnist$ python convolutional.py

I tensorflow/stream_executor/dso_loader.cc:108] abrí con éxito la biblioteca CUDA libcublas.so localmente

I tensorflow/stream_executor/ dso_loader.cc:108] abrió con éxito la biblioteca CUDA libcudnn.so.5.0.5

localmente

I tensorflow/stream_executor/dso_loader.cc:108] abrí con éxito la biblioteca CUDA libcufft.so localmente

I tensorflow/stream_executor/dso_loader.cc:108] abrí con éxito la biblioteca CUDA libcuda .so.1 localmente

I tensorflow/stream_executor/dso_loader.cc:108] abrí con éxito la biblioteca CUDA libcurand.so localmente

Extrayendo datos/train-images-idx3-ubyte.gz

Extrayendo datos/train-labels-idx1-ubyte.gz

Extrayendo datos/t10k-images-idx3-ubyte.gz

Extrayendo datos/t10k- etiquetas-idx1-ubyte.gz

I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] La lectura exitosa del nodo NUMA desde SysFS tuvo un valor negativo (-1), pero debe haber al menos un nodo NUMA , por lo que devuelvo el nodo NUMA cero

I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Dispositivo encontrado 0 con propiedades:

nombre: GeForce GTX 1080

mayor: 6 menor: 1 memoriaClockRate (GHz) 1,8475

pciBusID 0000:01:00.0

Memoria total: 7,92 GiB

Memoria libre: 7,41 GiB

I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0

I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: ? Y

I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creando dispositivo TensorFlow (/gpu:0) -> (dispositivo: 0, nombre: GeForce GTX 1080, ID de bus pci: 0000:01:00.0)

¡Inicializado!

Paso 0 (época 0,00), 8,4 ms

Pérdida de minibatch: 12,054, tasa de aprendizaje: 0,010000

Error de minibatch: 90,6%

Error de validación: 84,6%

......

Error de minibatch: 0,0%

val

error de identificación: 0,7%

Paso 8500 (época 9,89), 4,7 ms

Pérdida de minibatch: 1,601, tasa de aprendizaje: 0,006302

Error de minibatch: 0,0%

Error de validación: 0,9%

Error de prueba: 0,8%