Desbloquee el poder de los SoCs HiSilicon AI con herramientas abiertas

Puede desarrollar rápidamente para HiSilicon AI SoCs. Utilizará herramientas de estándar abierto como el SDK de Ascend CANN. Este potente SDK

Desbloquear

Puede desarrollar rápidamente para HiSilicon AI SoCs. Utilizará herramientas de estándar abierto como el SDK de Ascend CANN. Este potente SDK es compatible con sus proyectos de aprendizaje automático. Tu camino para crear aplicaciones de IA es simple.

  1. Configure su entorno de desarrollo en el tablero.
  2. Convierta un modelo de aprendizaje automático a partir de un marco abierto.
  3. Despliegue y ejecute su modelo AI en el tablero de borde.

Esta guía le brinda una forma práctica de ejecutar su primera aplicación de IA. Puede tomar un modelo estándar y verlo funcionar en su placa para la computación de borde. El ecosistema ofrece un rendimiento excelente para sus tareas informáticas y de aprendizaje de borde.

Lograr el rendimiento de AI de primer nivel🚀

El marco de Ascend CANN permite una eficiencia impresionante para el aprendizaje profundo en el borde.

MétricaValor (por NPU)
Rendimiento de prellenado6.688 tokens/s
Rendimiento de decodificación1.943 tokens/s
Decodificación sostenida538 tokens/s

Este viaje de aprendizaje mueve sus conceptos de AI a la computación de borde del mundo real.

Puntos clave

  • Puedes construir aplicaciones de IA en HiSiliconSoCs AIUtilizando herramientas abiertas como Ascend CANN SDK.
  • El Ascend CANN SDK tiene dos herramientas principales: el ATC convierte los modelos y AscendCL los ejecuta en el hardware de IA.
  • Puede usar marcos de AI populares como TensorFlow y PyTorch. Convierte tus modelos a ONNX para obtener los mejores resultados.
  • Configure su entorno de desarrollo instalando el kit de herramientas CANN. Luego, verifique la instalación para asegurarse de que funciona.
  • Para ejecutar su primera aplicación AI, convierta un modelo como ResNet-50 con ATC. Luego, use AscendCL para implementarlo y ejecutarlo en su placa.

EXPLORANDO EL ECOSISTEMA AI

EXPLORANDO

Utilizará el SDK Ascend CANN (Compute Architecture for Neural Networks) como el núcleo del ecosistema moderno de IA. Este poderoso SDK le brinda las herramientas para sus proyectos de aprendizaje automático. El ecosistema respalda su viaje desde el desarrollo del modelo hasta la implementación en dispositivos de borde. Este ecosistema AI está diseñado para la computación de borde de alto rendimiento.

HERRAMIENTAS PARA HISILICON AI SOCS

Su herramienta principal es el SDK de Ascend CANN. Reemplaza al HUAWEI HiAI DDK más antiguo. Este SDK contiene dos componentes clave para sus tareas de inteligencia artificial.

  1. Compilador Ascend Tensor (ATC):Utiliza esta herramienta para convertir sus modelos de redes neuronales. Toma modelos de marcos de AI abiertos y los prepara para el tablero. ATC también optimiza su modelo para un mejor rendimiento y menorMemoriaUso apoyandoComputación de media precisión. Mejora su modelo con características como:

    • Optimización de la programación del operador
    • Optimización de la memoria
    • Digital Vision Pre-Processing (DVPP) para un procesamiento de imágenes más rápido
  2. Ascend Computing Language (AscendCL):Esta API se utiliza para ejecutar el modelo en el hardware de la IA.La biblioteca Python, pyACL, le permite escribir código para administrar la placa, controlar la memoria y ejecutar su modelo de aprendizaje automático. Así es como su aplicación se comunica con los SoC AI de Hisilicon.

MARCO DE INTEGRACIÓN

Puede comenzar con el marco de aprendizaje profundo que ya conoce. La plataforma Ascend admite marcos de IA populares, lo que hace que su transición a la informática de borde sea fluida. Puede integrar fácilmente sus flujos de trabajo de aprendizaje automático existentes.

Punta:Para obtener mejores resultados, debe exportar sus modelos al formato ONNX. Puedes usar herramientas comoHoteles en tf2onnxPara convertir sus modelos TensorFlow antes de usar el ATC.

El SDK de CANN mantiene la compatibilidad con versiones específicas del marco para garantizar la estabilidad. Por ejemplo, aquí hay algunas versiones compatibles paraPor PyTorch:

MarcoVersiónVersión CANN
Por PyTorch2.1.07.0.1
Por PyTorch1.11.07.0.1

PROYECTOS COMUNITARIOS

Más allá del SDK oficial, una comunidad fuerte construyeHerramientas de código abierto. El proyecto OpenIPC/openhisilicon es un gran ejemplo. Es un SDK impulsado por la comunidad para el firmware y el desarrollo de bajo nivel en varios sistemas. Este proyecto le da más control sobre su placa con su licencia MIT/GPL. Soporta una amplia gama de chips de procesamiento de visión, incluyendo:

Este esfuerzo de la comunidad proporciona otro camino para su aprendizaje y desarrollo de IA en dispositivos de borde.

CONFIGURACIÓN DEL ENTORNO

Ahora está listo para preparar su entorno de desarrollo. Esta configuración es la base para todos sus futuros proyectos de IA en el tablero. Instalará el software necesario y confirmará que su hardware está listo para las tareas de aprendizaje automático.

HARDWARE Y SOFTWARE

Su principal pieza de hardware es la placa de desarrollo HiSilicon AI SoCs. También necesita una computadora host que ejecute una distribución de Linux compatible, como Ubuntu. Antes de comenzar, asegúrese de que su placa esté encendidas y conectadas a su red. La configuración adecuada de estos sistemas evita problemas comunes más adelante.

Esté atentos a estos errores comunes de configuración⚠️

Durante la configuración inicial de sus dispositivos de borde, es posible que encuentre errores de script o de controlador. Prestar mucha atención a las rutas y permisos de archivos puede ayudarle a evitarlos.

  • Sh: no se puede abrir './pinmux.sh': No existe tal archivo o directorio
  • Sh: no se puede abrir 'clkcfg.sh': No hay tal archivo o directorio
  • Insmd: no se puede insertar 'hi _ osal.ko': No existe tal archivo o directorio
  • No hay conexión de red en Hi3516AV200

INSTALACIÓN DEL CANN TOOLKIT

Instalará el SDK de Ascend CANN para habilitar el procesamiento AI en su placa. Este proceso implica descargar los paquetes correctos y ejecutar los instaladores.

  1. Descargar paquetesObtenga los paquetes de controladores, firmware y kit de herramientas de la comunidad oficial de Ascend.
  2. Crear usuarioConfigure un grupo de usuarios dedicado para ejecutar las aplicaciones de Ascend.
    Sudo groupadd -g HwHiAiUser
    Sudo useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser
    
  3. Instalar controlador y firmwareConceder permisos de ejecución a los archivos y ejecutar los instaladores.
    Sudo chmod x *. ejecutar
    Sudo. /Ascende-hdk-xxx-npu-driver _ *.run -- full
    Sudo. /Ascend-hdk-xxx-npu-firmware _ *.run -- full
    
  4. Instalar ToolkitFinalmente, ejecute el instalador del kit de herramientas para completar la configuración del SDK.
    . /Ascend-cann-toolkit _ *.run -- install
    

Después de instalar el SDK, es posible que deba establecer variables de entorno para configurar su plataforma de computación de borde para crear aplicaciones de IA.

VariableDescripción
ASCEND_HOME_PATHEstablece la ruta de inicio para el kit de herramientas de CANN.
SOC_VERSIÓNEspecifica la versión de tu chip Ascend.
MAX_JOBSDefine el número de núcleos de CPU para la compilación.

VERIFICACIÓN DE LA INSTALACIÓN

Después de la instalación, debe verificar que todo funcione. Una instalación exitosa mostrará un mensaje comoXxx éxito de instalación. También puede ejecutar un comando para verificar el estado del hardware de AI. Este paso confirma que su entorno de aprendizaje automático está listo para la computación de borde y el aprendizaje profundo.

Comprobar el estado de la NPU

Puedes correr elInformación sobre npu-smiPara obtener información detallada sobre su NPU. Una salida exitosa muestra que el chip estáOKY listo para procesamiento de AI y computación.

$ Npu-smi info
+ ----------------------------------------------------------------- +
| Npu-smi 23.0.1 Versión: 23.0.1 |
+ --------------------------- + --------------- + --------------------- +
| Nombre NPU | Salud | Potencia (W) Temp(C) |
| Chip | Id de bus | AICore(%) |
+ ================================================== +
| 4 910B3 | Aceptar | 93,6 40 |
| 0 | 0000:01:00.0 | 0 |
+ ================================================== +

Esto confirma que su viaje de aprendizaje hacia AI en el borde puede comenzar.

SU PRIMERA APLICACIÓN AI

SU

Estás listo para construir tu primera aplicación de IA. Este proceso toma un modelo estándar de aprendizaje automático y lo ejecuta en su placa de desarrollo. Verás cómo el software y el hardware trabajan juntos paraInformática de borde. Este proyecto se centrará en una simple tarea de visión por computadora.

PREPARACIÓN DE UN MODELO ABIERTO

Su primer paso es elegir un modelo pre-entrenado. Puede encontrar muchos modelos en bibliotecas de código abierto como ONNX Model Zoo. Para esta guía, usará ResNet-50, un modelo popular para el reconocimiento de imágenes. Proporciona un gran punto de partida para su viaje de aprendizaje.

Su modelo necesita datos de entrada en un formato específico. ResNet-50 espera que las imágenes sean de un cierto tamaño y se procesen previamente. Antes de alimentar una imagen a la red neuronal, debe cambiar su tamaño a la forma de entrada del modelo de224x224 píxeles con 3 canales de color. También necesitasNormalizar los valores de píxel. Esta preparación garantiza que el modelo pueda comprender correctamente los datos de la imagen.

Puede cargar fácilmente un modelo de ResNet-50 previamente entrenado utilizando un marco de aprendizaje profundo como TensorFlow. El código siguiente muestra cómo preparar el modelo para su tarea de visión por computadora.

Tensor de la importación como tf

Img_height = 224
Img_width = 224

Pretrained_model = tf.keras. aplicaciones. ResNet50(include_top = Verdadero,
Input_shape =(img_height, img_width, 3),
Pesos = 'imagenet')

Si bien ResNet-50 es una buena opción, el ecosistema de IA admite otros modelos para diversas tareas de visión y reconocimiento. También puedes comenzar con estas alternativas:

  • Información sobre mobilenetUn modelo eficiente diseñado para dispositivos de visión móviles e integrados.
  • SqueezeNetUn modelo pequeño que ofrece una buena precisión con menos recursos.
  • VGGUn modelo poderoso para desafíos de clasificación de imágenes más complejos.

También puede explorar modelos para otros dominios de inteligencia artificial, como el reconocimiento de voz, para ampliar sus habilidades.

CONVERSIÓN DEL MODELO CON ATC

TuHiSilicon AI SoCsNo puede ejecutar un modelo TensorFlow u ONNX directamente. Primero debe convertirlo en un formato que la junta entienda. Utilizará la herramienta Ascend Tensor Compiler (ATC) del SDK para esta conversión. Esta herramienta optimiza su modelo para el hardware de AI, lo que permite una aceleración de inferencia de AI de alto rendimiento.

El comando ATC toma su modelo original y genera un modelo fuera de. Om (en inglés)) Archivo. Este archivo está listo para su despliegue en sus sistemas Edge.

Convierte tu modelo con este comando⚙️

Ejecute el siguiente comando en su terminal. Asegúrese de que ya ha exportado su modelo de ResNet-50 al formato ONNX.

Atc -- model =./resnet50.onnx \
-- Marco = 5 \
-- Output =./resnet50 \
-- Input_shape = "actual_input_1:1,3, 224.224" \
-- Soc_version = Ascend310B4

Revisemos los argumentos clave en este comando:

ArgumentoDescripción
-- ModeloEspecifica la ruta de acceso al archivo de modelo de entrada (por ejemplo,. Onnx).
-- MarcoDefine el marco original.5Es decir, ONNX.
-- SalidaEstablece la ruta y el nombre de la salida. Om (en inglés)Archivo sin la extensión.
-- Input_shapeIndica al compilador las dimensiones de entrada exactas para el modelo.
-- Soc_versionEspecifica el chip Ascend objetivo en su placa.

EL LENGUAJE DE COMPUTACIÓN ASCEND

Usted utilizará elLenguaje de computación Ascend (AscendCL)Para interactuar con su modelo convertido. AscendCL es una API que permite que sus aplicaciones se comuniquen con el procesador Ascend AI. Para los desarrolladores de Python, el SDK proporciona una biblioteca llamadaPyACL. Esta API le brinda las funciones para administrar la placa, cargar su modelo y ejecutar la inferencia de aprendizaje automático.

La API incluye herramientas para la gestión de la memoria. Puede utilizar funciones comoAllocTensorPara asignar memoria para sus datos de entrada y salida directamente en el dispositivo. Este control ayuda a optimizar el rendimiento administrando cómo se usa la memoria durante el procesamiento de datos. AscendCL también proporciona funciones para la ejecución síncrona y asíncrona, lo que le brinda flexibilidad en la forma de diseñar sus aplicaciones de IA.

Aquí hay un fragmento de Python simplificado usandoPyACLPara mostrar la lógica central. Este código demuestra la carga de un modelo y la preparación para la inferencia.

Acl de la importación

#1. Inicializar AscendCL
Ret = acl.init()

#2. Asignar recursos (dispositivo, contexto, flujo)
Device_id = 0
Ret = acl.rt.set_device(device_id)
Context, ret = acl.rt.create_context(device_id)
Stream, ret = acl.rt.create_stream()

#3. Cargue el. Modelo om
Model_path = "./resnet50.om"
Model_id, ret = acl.mdl.load_from_file(model_path)

#. .. Código para preparar datos de entrada, ejecutar inferencia y procesar...

#4. Descargar modelo y liberar recursos
Ret = acl.mdl. descargar (model_id)
Ret = acl.rt.de stroy_stream (secuencia)
Ret = acl.rt.de stroy_context (contexto)
Ret = acl.rt.reset_device(device_id)
Ret = acl.finalize()

DEPLOTAR Y EJECUTAR

El paso final es implementar y ejecutar su código en el tablero de borde. Transferirá su script de Python y el. Om (en inglés)Modelo al dispositivo. Cuando ejecute el script, realizará el flujo de trabajo completo de aprendizaje automático. La API de AscendCL cargará el modelo, su código preparará y alimentará una imagen, y el hardware de IA realizará la computación.

La salida del modelo es un tensor de números en bruto. Este tensor representa las probabilidades para cada clase posible. Su código debe realizar un procesamiento posterior en esta salida para obtener un resultado legible por humanos. Usted puedeAplicar una función de Softmax a estos números para obtener probabilidades finales. La probabilidad más alta corresponde a la clase predicha para la imagen de entrada. Este paso final convierte los datos sin procesar de su modelo de aprendizaje profundo en una respuesta significativa para su aplicación de visión por computadora. Esto completa su primer proyecto de IA, desde la selección del modelo hasta la inferencia en el dispositivo y el procesamiento de resultados.


Ahora puede crear potentes aplicaciones de IA para HiSilicon AI SoCs. Su ruta más rápida utiliza Ascend CANN SDK con marcos de aprendizaje automático abiertos. Este enfoque simplifica el desarrollo de IA para dispositivos de borde. Sus proyectos futuros pueden seguir un patrón central para el éxito.

Su flujo de trabajo de AI en el tablero🗺️

  1. Configure el SDK de CANN en su placa.
  2. Convierta su modelo con la herramienta ATC.
  3. Despliegue su código con la API de AscendCL para el procesamiento en el dispositivo.

Este viaje de aprendizaje lo prepara para la computación avanzada de borde. Puede ampliar sus habilidades de aprendizaje automático y explorar nuevas posibilidades de procesamiento de IA en su tablero. El SDK oficial y los recursos de la comunidad apoyan su aprendizaje continuo.

Preguntas frecuentes

¿Qué pasa si mi modelo no está en formato ONNX?

Puede convertir su modelo a ONNX primero. La mayoría de los marcos de AI, como TensorFlow y PyTorch, proporcionan herramientas para exportar modelos. Este paso adicional prepara su modelo para la herramienta ATC. Es una práctica estándar en muchos flujos de trabajo de desarrollo de AI.

¿Puedo usar estas herramientas para proyectos distintos a la visión por computador?

Sí, puedes. El kit de herramientas de Ascend CANN no se limita a las tareas de visión. Puedes construir muchos tipos de aplicaciones de ai. Esto incluye proyectos en reconocimiento de voz y procesamiento del lenguaje natural. Las herramientas son compatibles con una amplia gama de modelos de ai.

¿Dónde puedo encontrar ejemplos de proyectos de IA para comenzar?

Explorar proyectos de muestra🧑‍💻

Puedes encontrar muchos proyectos de ejemplo en la comunidad Ascend en GitHub. Estas muestras cubren varias tareas ai y proporcionan código completo. Son un gran recurso para aprender a construir sus propias aplicaciones.

¿Necesito una versión de Linux específica para la computadora host?

Sí, necesitas una distribución Linux compatible. La documentación del kit de herramientas CANN enumera los sistemas operativos y las versiones compatibles. Debe consultar la guía oficial para evitar problemas de instalación. Esto asegura que su entorno de desarrollo de ai sea estable.

Related Articles