Nvidia lanzó el sistema integrado en módulo (SoM) Jetson Xavier NX a fines del año pasado. Es compatible con pin con el Jetson Nano SoM e incluye una CPU, una GPU, PMIC, DRAM y almacenamiento flash. Sin embargo, le faltaba un accesorio importante, su propio kit de desarrollo. Dado que un SoM es una placa integrada con solo una fila de pines del conector, es difícil de usar de fábrica. Una placa de desarrollo conecta todos los pines del módulo a puertos como HDMI, Ethernet y USB. Un módulo Jetson combinado con una placa de desarrollo se parece a una Raspberry Pi u otras computadoras de placa única (SBC). Pero no se deje engañar, este no es un dispositivo de gama baja y bajo rendimiento.

Al igual que el Jetson Nano, el kit para desarrolladores Jetson Xavier NX es una plataforma de aprendizaje automático; a diferencia del Jetson Nano, no es un dispositivo de nivel de entrada. El Xavier está diseñado para aplicaciones que necesitan un poder de procesamiento de IA serio.

A bordo del SoM, obtienes una CPU hexa-core utilizando los núcleos personalizados basados ​​en Carmel ARM de Nvidia, una GPU basada en Volta de 384 núcleos y 8 GB de RAM LPDDR4x a 51,2 GB / s. ¡La placa de desarrollo agrega HDMI, DisplayPort, Gigabit Ethernet, 4 puertos USB 3.1, Wi-Fi, Bluetooth, 2 conectores de cámara, 40 pines GPIO y una ranura M.2 para un SSD!

Los 8 GB de RAM y el soporte para M.2 NVMe hacen que esta sea una actualización significativa para el Jetson Nano, pero la verdadera mejora está en la potencia de procesamiento. En comparación con el Jetson Nano, el Xavier NX es entre dos y siete veces más rápido, dependiendo de la aplicación.

Esto se debe a la CPU mejorada, Nvidia Carmel hexa-core (ARM v8.2 de 64 bits con 6 MB de caché L2 + 4 MB de cachés L3) actualizado desde el Quad-core Cortex-A57; mejor GPU, Voltra de 384 núcleos en comparación con Maxwell de 128 núcleos; más la inclusión de 48 núcleos tensoriales y dos motores Deep Learning Accelerator (DLA).

Lee mas: Inteligencia artificial vs aprendizaje automático: ¿cuál es la diferencia?

Los módulos Jetson de Nvidia están diseñados principalmente para aplicaciones integradas, lo que significa que el SoM se integrará en un producto específico. Cualquier cosa, desde robots, drones, sistemas de visión artificial, conjuntos de sensores de alta resolución, análisis de video y máquinas autónomas, puede beneficiarse del rendimiento del aprendizaje automático, el factor de forma pequeño y los requisitos de energía más bajos del Xavier NX.

El objetivo principal de Nvidia es vender los SoM a los fabricantes de dispositivos. Sin embargo, el kit de desarrollo es esencial para el diseño y desarrollo de productos, y para cualquier persona que quiera probar el aprendizaje automático avanzado en casa.

El rendimiento y el factor de forma son esenciales para los proyectos integrados, pero también lo es el uso de energía. El Jetson Xavier NX ofrece hasta 21 billones de operaciones por segundo (TOPS) mientras usa hasta 15 vatios de potencia. Cuando sea necesario, la placa se puede configurar en un modo de 10W. Ambos modos de potencia se pueden ajustar según la cantidad de rendimiento de CPU que necesita en comparación con el rendimiento de la GPU. Por ejemplo, podría ejecutar solo dos núcleos de CPU a 1.9GHz y la GPU a 1.1GHz o, alternativamente, podría usar cuatro núcleos de CPU a 1.2GHz y registrar la GPU a 800Mhz. El nivel de control es excepcional.

Cuéntame sobre la GPU

Cuando piensas en Nvidia, probablemente pienses en tarjetas gráficas y GPU, y con razón. Si bien las unidades de procesamiento gráfico son excelentes para juegos en 3D, también resulta que son buenos para ejecutar algoritmos de aprendizaje automático. Nvidia tiene un ecosistema de software completo basado en su modelo de programación y computación paralela CUDA. El kit de herramientas CUDA le brinda todo lo que necesita para desarrollar aplicaciones aceleradas por GPU e incluye bibliotecas aceleradas por GPU, un compilador, herramientas de desarrollo y el tiempo de ejecución CUDA.

¡Pude construir Doom 3 para Xavier NX y ejecutarlo a 4K!

El Jetson Xavier NX tiene una GPU de 384 núcleos basada en la arquitectura Volta. Cada generación de GPU de Nvidia se basa en un nuevo diseño de microarquitectura. Este diseño central se utiliza para crear diferentes GPU (con diferentes recuentos de núcleos, etc.) para esa generación. La arquitectura Volta está dirigida al centro de datos y a las aplicaciones de IA. Se puede encontrar en tarjetas gráficas para PC como la Nvidia Titan V.

El potencial para juegos 3D rápidos y fluidos, como los basados ​​en los diversos motores 3D lanzados bajo código abierto desde el software ID, es bueno. ¡Pude construir Doom 3 para Xavier NX y ejecutarlo a 4K! En Ultra High Quality, el tablero logró 41 fps. ¡No está mal para 15 vatios!

Nvidia tiene una oferta de software universal que cubre todas sus placas Jetson, incluidas la Jetson Nano y la Jetson Xavier NX, llamada JetPack. Está basado en Ubuntu Linux y viene preinstalado con el kit de herramientas CUDA y otros paquetes de desarrollo acelerado de GPU relevantes como TensorRT y DeepStream. También hay una gran colección de demostraciones CUDA, desde simulaciones de partículas de humo hasta renderizado de Mandelbrot con una buena dosis de desenfoques gaussianos, codificación jpeg y simulaciones de niebla en el camino.

Lee mas: Revisión de Jetson Nano: ¿Es AI para las masas?

Haz que mi máquina aprenda

Tener una buena GPU para computaciones basadas en CUDA y para juegos es bueno, pero el verdadero poder del Jetson Nano es cuando comienzas a usarlo para el aprendizaje automático (o AI como a la gente de marketing le gusta llamarlo). Jetson Xavier NX es compatible con todos los marcos de AI populares, incluidos TensorFlow, PyTorch, MxNet, Keras y Caffe.

Todos los tableros Jetson de Nvidia vienen con excelente documentación y proyectos de ejemplo. Como todos usan el mismo ecosistema y software (JetPack, etc.), los ejemplos funcionan igual de bien en el Jetson Nano o en el Jetson Xavier NX. Un gran lugar para comenzar es el ejemplo Hello AI World. Es fácil de descargar y compilar, y en solo unos minutos, tendrá una demostración de IA en funcionamiento para la clasificación de imágenes, detección de objetos y segmentación semántica, todo ello utilizando modelos previamente entrenados.

Saqué una foto de una medusa (juego de palabras) de mi visita al Monterey Bay Aquarium en 2018 y le pedí al clasificador de imágenes que la etiquetara.

¿Por qué pre-entrenado? La parte más difícil del aprendizaje automático es llegar al punto en el que puede presentar datos a un modelo y obtener un resultado. Antes de eso, el modelo necesita capacitación, y la capacitación de modelos de IA no es un esfuerzo trivial. Para ayudar, Nvidia proporciona modelos previamente entrenados, así como un Kit de herramientas de aprendizaje de transferencia (TLT) que permite a los desarrolladores tomar los modelos previamente entrenados y volver a entrenarlos con sus propios datos.

La demostración Hello AI World le ofrece un conjunto de herramientas para jugar, incluido un clasificador de imágenes y un programa de detección de objetos. Estas herramientas pueden procesar fotos o usar una alimentación de cámara en vivo. Saqué una foto de una medusa (juego de palabras) de mi visita al Monterey Bay Aquarium en 2018 y le pedí al clasificador de imágenes que la etiquetara.

Pero esto es solo la punta del iceberg. Para demostrar el poder de la placa Xavier NX, Nvidia tiene una configuración que muestra a Xavier NX realizando tareas paralelas de aprendizaje automático, incluida la detección de la mirada, la detección de pose, la detección de voz y la detección de personas, todo al mismo tiempo desde las fuentes de video. Un robot de servicio en un entorno minorista necesitaría todas estas funciones para poder saber cuándo una persona lo está mirando (detección de la mirada), qué dice la persona (detección de voz) y dónde está apuntando la persona (detección de pose).

La nube se ha vuelto nativa

Una de las principales tecnologías de “la nube” es la contenedorización. La capacidad de ejecutar microservicios autónomos en un entorno predefinido. Sin embargo, este concepto no se limita a grandes servidores en un centro de datos, sino que también se puede aplicar a dispositivos más pequeños. El software de contenedores como Docker se ejecuta en sistemas basados ​​en Arm, incluidos Raspberry Pi y Xavier NX. La demostración de aprendizaje automático anterior es en realidad cuatro contenedores separados que se ejecutan en paralelo, en la placa de desarrollo.

Esto significa que los desarrolladores pueden alejarse de las imágenes de firmware monolíticas que incluyen el sistema operativo base junto con las aplicaciones integradas y adoptan microservicios y contenedores. Debido a que el desarrollo de un servicio autónomo se puede hacer sin necesariamente tener que actualizar y actualizar todas las demás aplicaciones, las actualizaciones de software se vuelven más fáciles y las opciones de escalado aumentan.

El Xavier NX es totalmente compatible con Docker y los contenedores tienen acceso completo a las capacidades de aprendizaje automático de la placa, incluida la GPU, los núcleos tensoriales y los motores DLA.

¿Qué tan rápido es el Nvidia Jetson Xavier NX?

Para aquellos interesados ​​en algunos números de rendimiento real. Utilizando mi “herramienta de prueba de hilos” (aquí en GitHub) con ocho hilos cada uno calculando los primeros 12,500,000 primos, el Jetson Xavier pudo realizar la prueba en 15 segundos. Esto se compara con 46 segundos en el Jetson Nano y 92 segundos en un Raspberry Pi 4.

La herramienta también puede probar el rendimiento de un solo núcleo pidiéndole que use solo un hilo. Eso toma 10 segundos en el Jetson Xavier NX y 46 segundos en el Raspberry Pi 4. Si configura el Xavier NX en su modo 2x core de 15W, donde las velocidades del reloj de la CPU son más altas, ¡realizar la misma prueba toma solo siete segundos!

Aquí hay algunos números de rendimiento de CUDA que comparan el Jetson Nano con el Jetson Xavier:

Jetson NanoJetson Xavier NXconvolutionFFT2D (en segundos) 15.18.4fastWalshTransform (en segundos) 12.23.5matrixMul (en GFlop / s) 30.2215.25sortingNetworks21.25.0

Incluso una mirada superficial a estos números muestra cuánto más rápido se compara el Xavier NX con el Nano.

Cuando considera el soporte para una pantalla 4K, 8GB de RAM y el acceso al almacenamiento NVMe, la placa de desarrollo Xavier NX es un placer de usar.

¿Algo bueno para hacer trabajo de desarrollo?

Como entorno de desarrollo de Arm, el Jetson Nano es excelente. Obtiene acceso a todos los lenguajes de programación estándar como C, C ++, Python, Java, Javascript, Go y Rust. Además, están todas las bibliotecas y SDK de Nvidia, como CUDA, cuDNN y TensorRT. ¡Incluso puede instalar IDEs como Microsoft Visual Code!

Como mencioné anteriormente, pude tomar el software para el motor Doom 3 y construir el juego con bastante facilidad. Además, pude probar diferentes herramientas de aprendizaje automático como PyTorch y Numba. Cuando considera el soporte para una pantalla 4K, 8GB de RAM y el acceso al almacenamiento NVMe, la placa de desarrollo Xavier NX es un placer de usar.

¿Es el Nvidia Jetson Xavier NX el tablero adecuado para ti?

Si recién está comenzando con el aprendizaje automático, entonces Xavier NX probablemente no sea la opción correcta para su primera inversión. Puede aprender los conceptos básicos de ML e IA en casi cualquier cosa, incluida una Raspberry Pi. Si desea beneficiarse de una aceleración basada en hardware, se recomienda el Jetson Nano.

Pero si ha superado el Jetson Nano, o está buscando construir un producto profesional que requiera una mayor potencia de procesamiento, entonces el Xavier NX es imprescindible. Además, si solo está buscando una máquina de desarrollo decente basada en Arm, para compilaciones remotas o como escritorio, entonces Xavier NX es un posible ganador.

La conclusión es esta: si la Raspberry Pi 4 es lo suficientemente buena para usted, quédese con ella. Si desea un mejor rendimiento general, aprendizaje automático acelerado por hardware y una forma de ingresar al ecosistema Jetson, obtenga un Jetson Nano. Si necesita más que eso, obtenga un kit de desarrollo Xavier NX.