¿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 p>
./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
.... p>
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. p>
#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 p>
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%