Hola Habr
Hace relativamente poco, en este 2019, NVIDIA
anunció una computadora de una sola placa compatible con el factor de forma Raspberry Pi, enfocada en AI y cálculos intensivos en recursos.

Después de que apareció a la venta, se volvió interesante ver cómo funciona y qué se puede hacer al respecto. No es tan interesante utilizar puntos de referencia estándar, por lo que elaboraremos el nuestro, para todas las pruebas, el código fuente se proporciona en el texto. Para aquellos que estén interesados en lo que sucedió, continuaron bajo el corte.
Hardware
Para empezar, las especificaciones del sitio web de NVIDIA:

De lo interesante, aquí hay algunos puntos.
El primero es una GPU con 128 núcleos, respectivamente, en el tablero puede ejecutar tareas orientadas a GPU, como CUDA (compatible e instalado de fábrica) o Tensorflow. El procesador principal es de 4 núcleos y, como se muestra a continuación, es bastante bueno. Memoria de 4GB compartida entre CPU y GPU.
El segundo es la compatibilidad con Raspberry Pi. La placa tiene un conector de 40 pines con varias interfaces (I2C, SPI, etc.), también hay un conector de cámara, que también es compatible con la Raspberry Pi. Se puede suponer que una gran cantidad de accesorios existentes (pantallas, tableros de control del motor, etc.) funcionarán (es posible que tenga que usar un cable de extensión, porque Jetson Nano todavía tiene un tamaño diferente).
En tercer lugar, la placa tiene 2 salidas de video, Gigabit-Ethernet y USB 3.0, es decir. Jetson Nano en su conjunto es incluso un poco más funcional que el prototipo. La alimentación de 5V se puede tomar tanto a través de Micro USB como a través de un conector separado, que se recomienda para
extraer bitcoins de tareas intensivas en recursos. Al igual que en la Raspberry Pi, el software se carga desde la tarjeta SD, cuya imagen primero debe registrarse. En general, ideológicamente, el tablero es bastante similar al Raspberry Pi, que aparentemente fue concebido en NVIDIA. Pero no hay WiFi en el tablero, hay un claro inconveniente, aquellos que lo deseen tendrán que usar un módulo USB-WiFi.
Si observa detenidamente, puede ver que estructuralmente el dispositivo consta de dos módulos: el módulo Jetson Nano en sí mismo y la placa inferior con conectores, la conexión es a través de un conector.

Es decir la placa se puede desconectar y usar por separado, puede ser conveniente para soluciones integradas.
Hablando de precio. El precio original de Jetson Nano en los EE. UU. Es de $ 99, el precio en Europa con un margen en las tiendas locales es de aproximadamente 130 euros (si obtiene descuentos, probablemente pueda encontrarlos más baratos). Se desconoce cuánto cuesta Nano en Rusia.
Software
Como se mencionó anteriormente, la descarga e instalación no es muy diferente de la Raspberry Pi. Cargamos la
imagen en la tarjeta SD a través de Etcher o Win32DiskImager, entramos en Linux, colocamos las bibliotecas necesarias. Una excelente guía paso a paso está
aquí , la usé. Pasemos a las pruebas de inmediato: intente ejecutar diferentes programas con Nano y vea cómo funcionan. A modo de comparación, utilicé tres computadoras: mi computadora portátil de trabajo (Core I7-6500U 2.5GHz), Raspberry Pi 3B + y Jetson Nano.
Prueba de CPUPara comenzar, una captura de pantalla del comando lscpu.
Raspberry Pi 3B +:

Jetson nano:

Para los cálculos, comencemos con algo simple, pero que requiera tiempo de procesador. Por ejemplo, calculando el número Pi. Tomé un programa simple de Python con
stackoverflow .
No sé si es óptimo o no, pero no nos importa, estamos interesados en el
tiempo relativo .
Código fuente bajo el spoiler Como se esperaba, el programa no funciona rápido. Resultado para Jetson Nano: 0.8c.

Raspberry Pi 3B + mostró un tiempo notablemente más largo: 3.06c. La computadora portátil "ejemplar" completó la tarea en 0.27s. En general, incluso sin usar una GPU, el procesador principal en Nano es bastante bueno por su factor de forma. Aquellos que lo deseen pueden consultar el Raspberry Pi 4, no lo tengo disponible.
Seguramente hay quienes quieren escribir en los comentarios que Python no es la mejor opción para tales cálculos, repito una vez más que era importante para nosotros
comparar el tiempo, no hay necesidad de minimizarlo. Está claro que hay programas que calculan el número de Pi mucho más rápido.
PycudaPasemos a cálculos más interesantes usando la GPU, para lo cual, por supuesto (la placa es de NVIDIA), usaremos CUDA. La biblioteca PyCUDA requirió algo de chamanismo durante la instalación, no encontró cuda.h, el uso del comando "sudo env" PATH = $ PATH "pip install pycuda" ayudó, tal vez haya otra forma (se discutieron más opciones
en el foro devtalk.nvidia.com ).
Para la prueba, tomé el programa simple
SimpleSpeedTest para PyCUDA, que simplemente cuenta los senos en un bucle, no hace nada útil, pero es muy posible evaluarlo, y su código es simple y claro.
Código fuente bajo el spoiler Como puede ver, el cálculo se realiza usando la GPU a través de CUDA y usando la CPU a través de numpy.
Resultados:
Jetson nano - 0.67c GPU, 13.3c CPU.
Raspberry Pi 3B + - CPU 41.85c, GPU - sin datos, CUDA en RPi no funciona.
Portátil - GPU 0.05s, CPU 3.08c.
Todo es bastante esperado. Los cálculos en la GPU son mucho más rápidos que los cálculos en la CPU (todavía 128 núcleos), el Raspberry Pi se retrasa bastante significativamente. Bueno, por supuesto, no importa
cuánto alimentes al lobo, el elefante todavía tiene una tarjeta gráfica para computadora portátil
más grande mucho más rápido que las tarjetas en Jetson Nano; es probable que haya muchos más núcleos de procesamiento.
Conclusión
Como puede ver, la placa NVIDIA resultó ser bastante interesante y muy productiva. Es un poco más grande y más caro que el Raspberry Pi, pero si alguien necesita más potencia informática con un tamaño compacto, entonces vale la pena. Por supuesto, esto no siempre es necesario; por ejemplo, para enviar la temperatura al narodmon, el Raspberry Pi Zero es suficiente y con múltiples márgenes. Entonces, Jetson Nano no pretende
reemplazar Raspberry y clones, pero para tareas exigentes es muy interesante (pueden ser no solo drones o robots móviles, sino también, por ejemplo, una
cámara para un timbre con reconocimiento facial).
En una parte, todo lo concebido no encajaba. En la segunda parte, habrá pruebas de la parte de IA: pruebas de Keras / Tensorflow y tareas de clasificación y reconocimiento de imágenes.