El auge de los modelos de IA generativa de código abierto está trascendiendo los centros de datos hacia máquinas que operan en el mundo físico. Los desarrolladores buscan desplegar estos modelos en el borde, facilitando que agentes de IA física y robots autónomos automaticen tareas exigentes.
Un desafío clave es ejecutar de manera eficiente modelos de múltiples miles de millones de parámetros en dispositivos en el borde con memoria limitada. Ante las restricciones en el suministro de memoria y el aumento de costos, los desarrolladores se enfocan en lograr más con menos.
Desempeño de la plataforma NVIDIA Jetson
La plataforma NVIDIA Jetson respalda modelos abiertos populares mientras ofrece un rendimiento sólido y optimización de memoria en el borde. Para los desarrolladores de edge, la huella de memoria determina el funcionamiento del sistema, dado que los dispositivos en el borde operan bajo estrictas limitaciones de memoria, donde CPU y GPU comparten recursos limitados.
Un uso ineficiente de la memoria puede causar cuellos de botella, picos de latencia o fallos en el sistema. Además, las aplicaciones modernas en el borde suelen ejecutar múltiples tuberías, como detección, seguimiento y segmentación, lo que hace que la gestión eficiente de la memoria sea crítica para un rendimiento estable en tiempo real, bajo restricciones de energía y térmicas.
Estrategias de optimización de memoria
Optimizar el uso de la memoria proporciona beneficios claros. Los desarrolladores pueden mejorar el rendimiento en el mismo hardware al reducir la sobrecarga y aumentar la concurrencia, mientras habilitan cargas de trabajo más complejas como LLM, sistemas de múltiples cámaras y fusión de sensores. También se reduce el costo del sistema al adaptarse a configuraciones de memoria más pequeñas y se mejora la eficiencia al minimizar cuellos de botella y maximizar la utilización de la GPU.
Este blog explora estrategias de optimización para ayudar a los desarrolladores a maximizar el rendimiento, la eficiencia y la capacidad en sistemas de borde con recursos limitados.
Pila de software para Edge AI
A continuación, profundizaremos en la pila de software de ejecución para dispositivos en el borde. Este no es un guía exhaustiva para la optimización completa de memoria, sino un marco de referencia que inspire ideas y ayude a los desarrolladores a identificar nuevas formas de mejorar sus pilas. Los ahorros de memoria muestran lo que los equipos de NVIDIA han logrado.
Los usuarios experimentados pueden alcanzar mayores eficiencias, mientras que otros pueden utilizar estos ejemplos como punto de partida para un mejor uso de los recursos en las plataformas NVIDIA Jetson y NVIDIA IGX.
Capa de soporte de la placa y pila de software
El paquete de soporte de placa de NVIDIA Jetson (BSP) y la capa NVIDIA JetPack forman la base de la pila de software, interfiriendo con el hardware. Incluye el núcleo de Linux, controladores de dispositivos, firmware y el SDK de JetPack con componentes que permiten computación, multimedia y E/S acelerada.
En esta capa, se pueden lograr ahorros de memoria deshabilitando servicios no utilizados y recuperando regiones reservadas. Estas optimizaciones reducen la sobrecarga y liberan DRAM para cargas de trabajo de aplicaciones sin afectar la funcionalidad central.
Las pautas de optimización de la capa BSP y JetPack funcionan para Jetson Orin NX y Jetson Orin Nano.
| Controles | Memoria que puede ser recuperada | Instrucciones |
| Deshabilitar el escritorio gráfico, incluidos los servicios relacionados con la UI. | Hasta 865 MB | sudo systemctl set-default multi-user.target |
| Deshabilitar servicios de red y conectividad no esenciales. | Hasta 32 MB | sudo systemctl disable |
Las regiones de carveout en NVIDIA Jetson Orin NX, junto con las optimizaciones en espacio de kernel y usuario, son áreas clave para mejorar la eficiencia general del sistema. Las secciones siguientes exploran técnicas prácticas para optimizar estas capas.
Optimización de carveout
Las regiones de carveout en NVIDIA Jetson Orin NX y NVIDIA Jetson Orin Nano son memoria física reservada durante el arranque para motores de hardware específicos, firmware y subsistemas en tiempo real. No son accesibles para Linux o aplicaciones NVIDIA CUDA y son utilizados por microcontroladores y aceleradores integrados. Estas actúan como piscinas de memoria dedicadas para asegurar aislamiento, seguridad y comportamiento determinista.
| Carveout | Cuándo deshabilitar | Código para deshabilitar | Tamaño de DRAM recuperado |
| CARVEOUT_DCE_TSEC | Cuando el display no es necesario |
Referirse a nota 1 y volver a flashear |
1 MB |
| CARVEOUT_DCE | 32 MB | ||
| CARVEOUT_DISP_EARLY_BOOT_FB | 34 MB | ||
| CARVEOUT_TSEC_DCE | 1 MB | ||
| CARVEOUT_CAMERA_TASKLIST | Cuando la cámara no es necesaria |
Referirse a nota 2 y volver a flashear |
32 MB |
| CARVEOUT_RCE | 1 MB |
Nota 1: El siguiente ejemplo muestra cómo un usuario puede optimizar la memoria cuando el display no es necesario. Agregar el fragmento de código dentro del nodo /misc/carveout/ de Linux_for_Tegra/bootloader/generic/BCT/tegra234-mb1-bct-misc-p3767-0000.dts
// Carveouts relacionados con el display aux_info@CARVEOUT_BPMP_DCE { pref_base = <0x0 0x0>; size = <0x0 0x0>; // Alineación 0MB };
Nota 2: El siguiente ejemplo muestra cómo un usuario puede optimizar la memoria cuando la cámara no es necesaria. Agregar el fragmento dentro del nodo /misc/carveout/ de Linux_for_Tegra/bootloader/generic/BCT/tegra234-mb1-bct-misc-p3767-0000.dts:
aux_info@CARVEOUT_CAMERA_TASKLIST { pref_base = <0x0 0x0>; size = <0x0 0x0>; // Alineación 0MB };
Actualizar el contenido del nodo /mb2-misc/auxp_controls@2/ de Linux_for_Tegra/bootloader/tegra234-mb2-bct-common.dtsi a:
/* Campos de control para el clúster RCE. */ auxp_controls@2 { enable_init = <0>; enable_fw_load = <0>; enable_unhalt = <0>; };




