Instalar bazel desde el código fuente
Los tutoriales de instalación pueden consultar:
Instalación de gtx1080 Cuda en Ubuntu16.04
17 de julio de 2016
Tensorflow es un marco informático de aprendizaje profundo muy popular. El método de instalación del hardware y el sistema convencionales se explica claramente en el documento oficial. Sin embargo, debido a que el sistema es Ubuntu16.04 y la tarjeta gráfica es GTX1080, es inevitable tener que hacerlo. juguetear con ello. Ya instalé el controlador el 16.04 en el artículo anterior. De hecho, el siguiente paso es instalar CUDA y cuDNN.
En primer lugar, ¿por qué deberíamos instalar CUDA y cuDNN? Benchmark puede descubrir cuánto más rápida es la computación GPU que la CPU. Esta vez el enfoque es cómo hacer que tensorflow utilice plenamente las capacidades de GTX1080. Específicamente, cómo instalar CUDA y cuDNN que admiten GTX1080 y luego dejar que tensorflow comprenda nuestro CUDA y cuDNN recién instalados.
Primero, los pasos de instalación son los siguientes:
1 Primero debes registrar una cuenta de desarrollador de NVIDIA y descargar CUDA y cuDNN respectivamente.
2 Confirme para preparar la versión gcc e instalar la biblioteca dependiente sudo apt-get install freegl.
3 Instalar CUDA
4 Descomprimir cuDNN
5 Clonar código fuente de tensorflow y configurar la configuración
6 Compilar e instalar
7¡El último temblor, prueba!
Trabajo de preparación/a punto de comenzar a trabajar
Antes de comenzar oficialmente, necesitamos hacer un trabajo de preparación, principalmente para mirar los documentos primero.
Preguntas frecuentes sobre cuda
Documentación de instalación de tensorflow
Lista de soporte de Cuda-gpu/capacidades informáticas/Preguntas frecuentes
¿Qué tan maravilloso 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, siguiente paso Estas son las manos reales -En el proceso de operación:
1 Registre una cuenta de desarrollador de NVIDIA y descargue CUDA y cuDNN respectivamente.
1.1 Descargar cuda. Abra la página de descarga del kit de herramientas CUDA. GTX1080 usa CUDA 8. Comience haciendo clic en "Unirse" para registrar su cuenta. Después de eso, regrese a la página de descarga del kit de herramientas cuda. Seleccione Linux, x86-64, Ubuntu, 16.04, ejecute el archivo (local).
1.2 Descargar cuDNN Ingrese a la página de descarga de cudnn, realice muchas encuestas y descargue [Descargar cud nn V5 (2065 438 + 27 de mayo de 2065), para CUDA 8.0 RC] mientras escribe registros. haga clic para abrir Linux, al menos, esta es la dirección de descarga.
2 Confirme la versión de GCC e instale las bibliotecas dependientes.
Confirma la versión local de gcc. La versión predeterminada para 16.04 es gcc 5 y el requisito de instalación más alto aquí es gcc 4.9. A continuación, instale y configure gcc 4.9.
2.1 Instale gcc 4.9 y cambie el valor predeterminado del sistema a 4.9.
sudo apt-get install gcc-4.9 gcc-4.9 g++-4.9 g++-4.9
versión de gcc
sudo update-alternative-install/usr/ bin /g++ g++/usr/bin/g++-4.9 10
sudo update-alternative-install/usr/bin/cc cc/usr/bin/gcc 30
sudo update - alternativa - configurar cc /usr/bin/gcc
actualización de sudo - alternativa -instalar /usr/bin/c++ c++/usr/bin/g++ 30
actualización de sudo - alternativa - configurar c++ /usr/bin/g++
versión gcc
dependencia menor 2.2
sudo apt-get install free
3Instalación de CUDA
Cabe señalar que aquí existe una opción para instalar controladores de versiones inferiores. El proceso de instalación general para seleccionar N es el siguiente:
3.1 Instalando CUDA
chmod? +x /cuda_8.0.27_linux.run
. /cuda_8.0.27_linux.run
....
¿Aceptas el EULA que leíste antes?
Aceptar/Rechazar/Salir:Aceptar
¿Instalar el controlador de gráficos acelerados NVIDIA 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
[El valor predeterminado es /usr/local/cuda - 8.0 ]:
¿Quieres instalar un enlace simbólico en /usr/local/cuda?
(y)es/(n)o/(q)uit: y
¿Instalar CUDA 8.0 ejemplo?
(y)es/(n)o/(q)uit: y
Ingrese la ubicación de muestra CUDA
[el valor predeterminado es /home/h]: /home/h/Documents/cuda _ samples
....
3.2 Escribir variables de entorno
vim ~/. bashrc
#Agregue las siguientes variables
Exportar ruta=/usr/local/cuda-8.0/bin $ { PATH:+:$ { PATH } }
Exportar LD _ LIBRARY _ PATH =/usr/local/cuda-8.0/lib 64 $ { 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, NVIDIA_CUDA-8.0_Samples/
b.CD 0 _ API simple/async sudo make
c. NVIDIA_CUDA-8.0_Samples/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 empleado por la GPU en ejecución: 10,94 Tiempo empleado por la CPU en llamadas CUDA: 0,19 CPU en espera de GPU Completado con 50591 iteraciones realizadas
4 Instalar cuDNN
h @h:~/Descargar $ tar xvzf cud nn-8.0-Linux-x64-v 5.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/lib 64/usr /local/cuda /lib 64
h @ h:~/Descargas $ sudo mkdir-p/usr/local/cuda/include
h @ h:~/Descargas/cuda $ sudo CP include /cud nn h/usr/local/cuda/include/
sudo chmod a+r/usr/local/cuda/include/cud nn h/usr/local/cuda/ lib 64/libcudnn. *
5 clonar, configurar flujo tensor
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 se muestra a continuación.
h@h:~/Descargas/tensorflow$ cd. /tensorflow/
h@h:~/Descargas/tensorflow$. /Configuración
Especifique la ubicación de Python. [El valor predeterminado es /usr/bin/python]:
* * *¿Quieres crear TensorFlow con soporte para Google Cloud Platform? [Sí/No]No***
TensorFlow no habilitará la compatibilidad con Google Cloud Platform
* * *¿Quieres crear TensorFlow con compatibilidad con GPU? [s/N] y***
Se habilitará la compatibilidad con GPU para TensorFlow
Especifique qué gcc nvcc debe usarse como compilador host. [El valor predeterminado es /usr/bin/gcc]:
* *Por favor, explique la ubicación de CUDA. El kit de herramientas 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 utilizar. [Deje en blanco para usar los valores predeterminados del sistema]: 5.0.5**
* *Especifique la ubicación de instalación de la biblioteca cuDNN 5.0.5. Consulte README.md para obtener más detalles. [El valor predeterminado es /usr/local/cuda-8.0]:/usr/local/cuda * *
Especifique una lista separada por comas de las funciones informáticas de Cuda con las que le gustaría compilar.
Puede encontrar las capacidades informáticas de su dispositivo en:
* *Tenga en cuenta que cada capacidad informática adicional aumentará significativamente el tiempo de compilación y el tamaño binario.
[El valor predeterminado es: "3.5, 5.2"]:6.1 * *
Establecer Cuda incluye
Establecer Cuda lib64
Establecer Cuda bin
Establecer Cuda nvvm
Establecer CUPTI include
Establecer CUPTI lib64
Configuración completada
6 compilación ¿Y la configuración de instalación del compilador Bazel
6.1?
¿Mirar primero el archivo? Luego realiza el siguiente proceso:
#Install java 1.8
sudo add-apt-repository PPA:webupd 8 team/Java
sudo apt-get update
p>sudo apt-get install oracle-java8-installer
#Después de la instalación, consulte el automóvil.
versión java
#Agregar fuente de señal
echo " deb[arch = amd64]stable JDK 1.8 " | sudo tee/etc/apt/sources . .d/bazel .list
curl | sudo apt-key-add-
#download
sudo apt-get update&& ampsudo apt-get install bazel <. /p>
#Upgrade
sudo apt-get update bazel
6.2 compila e instala la versión pip de tensorflow.
$ bazel build-c opt//tensor flow/tools/pip _ package:build _ pip _ package
#Construir con soporte para GPU:
$ bazel build-c opt-config = cuda//tensor flow/tools/pip _ paquete:build _ pip _ paquete
$ bazel-bin/tensor flow/tools/pip _ paquete/build _ pip _ El nombre del paquete/tmp/tensor flow _ pkg
#. El archivo whl dependerá de su plataforma.
#Tenga en cuenta que el nombre del archivo generado después de la compilación no es necesariamente coherente con el documento oficial.
$ sudo pip install/tmp/tensor flow_pkg/tensor flow-0. *-linux_x86_64.whl
Tiempo de compilación de I6700k 32g:
Compilación de código sin pipinfo: consumo de tiempo: 967.438+0 s, ruta crítica: 538.38 s
bazel - bin/tensor flow/tools/pip _ package/build _ pip _ información del paquete: Tiempo necesario: 65.183 s, ruta crítica: 48.58
7 pruebas finales
Todos los pasos anteriores son Listo, ahora es el momento de probar.
Tenga en cuenta que hay dos bibliotecas de enlaces dinámicos en el frente, 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 ruta=/usr/local/cuda-8.0/bin $ { PATH:+:$ { PATH } }
Exportar LD _ LIBRARY _ PATH =/usr/local /cuda/lib 64:/ usr/local/cuda-8.0/lib 64 $ { LD _ LIBRARY _ PATH:+:$ { LD _ LIBRARY _ PATH } }
Después de escribir,
Fuente~/ .
bashrc
CD tensor flow/tensor flow/models/image/mnist
python convolution.py
Si tiene éxito, tendrá un funcionamiento fluido: p>
h @ h:~/Descargas/tensor flow/tensor flow/models/image/mnist $ python convolatile py
I tensor flow/stream _ executor/DSO _ loader cc. 108] La biblioteca CUDA libcublas.so se abrió exitosamente localmente
I tensor flow/stream _ executor/DSO _ loader cc:108] La biblioteca CUDA libcudnn.so.5.0.5 se abrió exitosamente localmente.
I tensor flow/stream _ executor/DSO _ loader cc:108] Abrí con éxito la biblioteca CUDA libcufft.so localmente
I tensor flow/stream _ executor/DSO _ loader. cc:108] La biblioteca CUDA libcuda.so.1 se abrió con éxito localmente
I tensor flow/stream _ executor/DSO _ loader cc:108] La biblioteca CUDA libcurand.so se abrió con éxito localmente.
p>Extraer datos/imágenes de entrenamiento-idx3-ubyte.gz
Extraer datos/entrenar etiquetas-idx1-ubyte.gz
Extraer datos/t 10k -images-idx 3-ubyte . gz
Extracción de datos/t 10k-labels-idx 1-ubyte .gz
I tensor de flujo/flujo _ ejecutor/cuda/cuda _ GPU. _ executor cc:925] Se leyó correctamente el nodo NUMA de SysFS con valor negativo (-1), pero debe haber al menos un nodo NUMA, por lo que se devuelve el nodo NUMA cero
I tensor flow/core/ common_runtime/ GPU/GPU_init.cc:102] Dispositivo encontrado 0 con las siguientes propiedades:
Nombre: GeForce GTX 1080
Primario: 6 Secundario: 1 Frecuencia de reloj de memoria (GHz) 1,8475
pciBusID 0000:01:00.0
Memoria total: 7,92 Gigabytes
Memoria disponible: 7,41 GiB
I tensor flow/core/ common _ runtime/GPU/GPU _ init cc:126]DMA:0
I flujo tensor/core/common _ runtime/GPU/GPU _ cc:136]0: . Y
I tensorflow/core/common_runtime/GPU/GPU_device .cc:838] Crear dispositivo de flujo tensor (/GPU:0)->(dispositivo:0, nombre: GeForce GTX 1080, ID de bus pci : 0000:01:00.0)
¡Inicializado!
Paso 0 (Época 0.00), 8,4 milisegundos
Pérdida de mini lote: 12,054, tasa de aprendizaje: 0,010000
Error de mini lote: 90,6 % p>
p>
Error de verificación: 84,6%
...
...
Error de mini lote: 0,0%
Error de validación: 0,7%
Paso 8500 (época 9.89), 4,7 milisegundos
Pérdida de mini lote: 1,601, tasa de aprendizaje: 0,006302
Error de mini lote: 0,0 %
Error de validación: 0,9 %
Error de prueba: 0,8 %