Разблокируйте мощность HiSilicon AI SoC с помощью открытых инструментов
Вы можете быстро разработать для HiSilicon AI SoC. Вы будете использовать инструменты открытого стандарта, такие как Ascend CANN SDK. Этот мощный SDK
Вы можете быстро разработать для HiSilicon AI SoC. Вы будете использовать инструменты открытого стандарта, такие как Ascend CANN SDK. Этот мощный SDK поддерживает ваши проекты машинного обучения. Ваш путь к созданию приложений ИИ очень прост.
- Настройте свою среду разработки на плате.
- Преобразование модели машинного обучения из открытой структуры.
- Разверните и запустите свою модель AI на краевой плате.
Это руководство дает вам практический способ запуска вашего первого приложения AI. Вы можете взять стандартную модель и увидеть, как она работает на вашей плате для edge computing. Экосистема обеспечивает отличную производительность для ваших задач обучения и вычислений.
Достижение производительности AI высшего уровня🚀
Система Ascend CANN обеспечивает впечатляющую эффективность для глубокого обучения на границе.
Метрика Значение (на NPU) Предварительная пропускная способность 6688 токенов/s Пропускная способность декодирования 1943 токенов/s Устойчивое декодирование 538 токенов/s
Это учебное путешествие перемещает ваши концепции ИИ в реальные вычисления края.
Ключевые выходы
- Вы можете создавать приложения AI на HiSiliconИИ SoCsИспользуя открытые инструменты, такие как Ascend CANN SDK.
- Ascend CANN SDK имеет два основных инструмента: ATC преобразует модели, а AscendCL запускает их на оборудовании AI.
- Вы можете использовать популярные фреймворки AI, такие как TensorFlow и PyTorch. Конвертируйте свои модели в ONNX для достижения наилучших результатов.
- Настройте среду разработки, установив набор инструментов CANN. Затем проверьте установку, чтобы убедиться, что она работает.
- Чтобы запустить свое первое приложение AI, конвертируйте модель, такую как ResNet-50 с ATC. Затем используйте AscendCL для развертывания и запуска его на вашей плате.
ИЗУЧЕНИЕ ЭКОСИСТЕМЫ AI
Вы будете использовать Ascend CANN (Вычислительная архитектура для нейронных сетей) SDK в качестве ядра современной экосистемы ИИ. Этот мощный SDK дает вам инструменты для ваших проектов машинного обучения. Экосистема поддерживает ваш путь от разработки модели до развертывания на конечных устройствах. Эта экосистема ИИ предназначена для высокопроизводительных edge-вычислений.
ИНСТРУМЕНТЫ ДЛЯ SOCS HISILICON AI
Ваш основной инструмент-Ascend CANN SDK. Он заменяет более старый HUAWEI HiAI DDK. Этот SDK содержит два ключевых компонента для ваших задач искусственного интеллекта.
-
Компилятор Ascend Tensor (ATC):Вы используете этот инструмент для преобразования моделей нейронных сетей. Он берет модели из открытых ИИ-фреймворков и готовит их к доске. ATC также оптимизирует вашу модель для повышения производительности и сниженияПамятьИспользовать путем поддержкиВычисления с половинной точностью. Это улучшает вашу модель с такими функциями, как:
- Оптимизация планирования оператора
- Оптимизация памяти
- Предварительная обработка цифрового зрения (DVPP) для более быстрой обработки изображений
-
Язык вычислений Ascend (AscendCL):Вы используете этот API для запуска вашей модели на оборудовании AI.Библиотека Python, pyACL, позволяет писать код для управления платой, управления памятью и выполнения модели машинного обучения.. Именно так ваше приложение взаимодействует с Hisilicon AI SoC.
ОСНОВНАЯ ИНТЕГРАЦИЯ
Вы можете начать с системы глубокого обучения, которую вы уже знаете. Платформа Ascend поддерживает популярные фреймворки AI, что делает ваш переход к краям вычислений плавным. Вы можете легко интегрировать свои существующие рабочие процессы машинного обучения.
Подсказка:Для достижения наилучших результатов вы должны экспортировать свои модели в формат ONNX. Вы можете использовать такие инструменты, как
TF2ONNXЧтобы преобразовать модели TensorFlow перед использованием ATC.
CANN SDK поддерживает совместимость с конкретными версиями фреймворка для обеспечения стабильности. К примеру, вот несколько поддерживаемых версий дляПирог:
| Рамки | Версия | Версия CANN |
|---|---|---|
| Пирог | 2.1.0 | 7.0.1 |
| Пирог | 1.11.0 | 7.0.1 |
ПРОЕКТЫ СООБЩЕСТВА
Помимо официального SDK, сильное сообщество строитИнструменты с открытым исходным кодом. Проект OpenIPC/openhisilicon является отличным примером. Это SDK, управляемый сообществом, для прошивки и разработки низкого уровня на различных системах. Этот проект дает вам больше контроля над вашей платой благодаря лицензированию MIT/GPL. Он поддерживает широкий спектр микросхем обработки зрения, в том числе:
- Hi3516ev300
- Hi3516dv300
- Hi3559A
Эти усилия сообщества предоставляют еще один путь для обучения и развития вашего ИИ на устройствах Edge.
НАСТРОЙКА ОКРУЖАЮЩЕЙ СРЕДЫ
Теперь вы готовы подготовить свою среду разработки. Эта настройка является основой для всех ваших будущих проектов ИИ на борту. Вы установите необходимое программное обеспечение и подтвердите, что ваше оборудование готово к задачам машинного обучения.
ОБОРУДОВАНИЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Ваше основное оборудование-это плата разработки HiSilicon AI SoC. Вам также нужен хост-компьютер с совместимым дистрибутивом Linux, например Ubuntu. Прежде чем начать, убедитесь, что ваша плата включен и подключен к вашей сети. Правильная настройка этих систем предотвращает общие проблемы позже.
Следите за этими общими ошибками настройки⚠️
Во время первоначальной настройки ваших устройств на границе вы можете столкнуться с ошибками сценария или драйвера. Уделяя пристальное внимание файловым путям и разрешениям, вы можете избежать их.
Sh: не удается открыть './pinmux.sh': нет такого файла или каталогаSh: не удается открыть 'clkcfg.sh': нет такого файла или каталогаInsmod: не могу вставить 'hi _ osal.ko': нет такого файла или каталогаНет сетевого подключения на Hi3516AV200
УСТАНОВКА ИНСТРУМЕНТА CANN
Вы установите Ascend CANN SDK, чтобы включить обработку ИИ на вашей плате. Этот процесс включает загрузку правильных пакетов и запуск установщиков.
- Загрузить пакеты: Получите драйвер, прошивку и пакеты инструментов от официального сообщества Ascend.
- Создать пользователя: Настройте специальную группу пользователей для запуска приложений Ascend.
Sudo groupadd-G HwHiAiUser Sudo useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser - Установка драйвера & прошивки: Предоставление разрешений на выполнение файлов и запуск установщиков.
Sudo chmod x *.run Судо. /Ascend-hdk-xxx-npu-driver _ *.run -- full Судо. /Ascend-hdk-xxx-npu-прошивка _ *.run -- full - Установить инструментарий: Наконец, запустите установщик набора инструментов, чтобы завершить настройку SDK.
. /Ascend-cann-toolkit _ *.run -- install
| Переменная | Описание |
|---|---|
ДОМАШНИЙ ПУТЬ | Задает путь к дому для набора инструментов CANN. |
СОК_ВЕРСИЯ | Указывает версию вашего чипа Ascend. |
MAX_JOBS | Определяет количество ядер процессора для компиляции. |
ПРОВЕРКА УСТАНОВКИ
После установки вы должны убедиться, что все работает. При успешной установке будет отображаться сообщение типаУспешная установка xxx. Вы также можете запустить команду для проверки состояния оборудования AI. Этот шаг подтверждает, что ваша среда машинного обучения готова к передним вычислениям и глубокому обучению.
Проверить статус NPU✅
Вы можете запустить
Нпу-сми инфоКоманда для получения подробной информации о вашем NPU. Успешный вывод показывает, что чипНормальноИ готов к обработке и вычислениям ИИ.$ Нпу-сми инфо + ----------------------------------------------------------------- + | Npu-smi 23.0.1 Версия: 23.0.1 | + --------------------------- + ---------------- + --------------------- + | Название NPU | Здоровье | Мощность (Вт) Температура (C) | | Чип | Автобус-Id | AICORE (%) | + =========================== + =============== + ===================== + | 4 910B3 | ОК | 93,6 40 | | 0 | 0000:01:00.0 | 0 | + =========================== + =============== + ===================== +
Это подтверждает, что ваш учебный путь в ИИ на краю может начаться.
ВАШЕ ПЕРВОЕ ПРИМЕНЕНИЕ AI
Вы готовы создать свое первое приложение AI. Этот процесс использует стандартную модель машинного обучения и запускает ее на вашей плате разработки. Вы увидите, как программное обеспечение и оборудование работают вместе для мощныхEdge Computing. Этот проект будет сосредоточен на простой задаче компьютерного зрения.
ПОДГОТОВКА ОТКРЫТОЙ МОДЕЛИ
Ваш первый шаг-выбрать предварительно обученную модель. Вы можете найти много моделей в библиотеках с открытым исходным кодом, таких как ONNX Model Zoo. Для этого руководства вы будете использовать ResNet-50, популярную модель для распознавания изображений. Это отличная отправная точка для вашего учебного путешествия.
Вашей модели нужны входные данные в определенном формате. ResNet-50 ожидает, что изображения будут определенного размера и предварительно обработаны. Прежде чем подавать изображение в нейронную сеть, вы должны изменить его размер до входной формы модели224x224 пикселей с 3 цветовыми каналами. Вам также необходимоНормализовать значения пикселей. Эта подготовка гарантирует, что модель может правильно понять данные изображения.
Вы можете легко загрузить предварительно обученную модель ResNet-50 с помощью фреймворка глубокого обучения, такого как TensorFlow. Следующий код показывает, как подготовить модель для вашей задачи компьютерного зрения.
Импортный тензорпоток как tf Имг _ высота = 224 Имг_ширина = 224 Pretrained_model = tf.keras. приложения. ResNet50(include_top = True, Input_shape =(img_height, img_width, 3), Веса = 'imagenet')
Хотя ResNet-50-хороший выбор, экосистема ИИ поддерживает другие модели для различных задач зрения и распознавания. Вы также можете начать с этих альтернатив:
- Мобайнет: Эффективная модель, предназначенная для мобильных и встроенных устройств зрения.
- Выжимная сетка: Маленькая модель, которая обеспечивает хорошую точность при меньшем количестве ресурсов.
- ВГГ: Мощная модель для более сложных задач классификации изображений.
Вы также можете изучить модели для других областей искусственного интеллекта, таких как распознавание речи, чтобы расширить свои навыки.
МОДЕЛЬ КОНВЕРСИЯ С УВД
ВашHiSilicon ИИ SoCsНе удается запустить модель TensorFlow или ONNX напрямую. Сначала вы должны преобразовать его в формат, понятный плате. Для этого преобразования вы будете использовать инструмент Ascend Tensor Compiler (ATC) из SDK. Этот инструмент оптимизирует вашу модель для оборудования ИИ, обеспечивая высокопроизводительное ускорение вывода ИИ.
Команда ATC берет исходную модель и выводит автономную модель (. Ом) Файл. Этот файл готов к развертыванию на ваших edge-системах.
Преобразуйте вашу модель с помощью этой команды⚙️
Выполните следующую команду в вашем терминале. Убедитесь, что вы уже экспортировали свою ResNet-50 модель в формат ONNX.
Atc -- модель =./resnet50.onnx \ -- Каркас = 5 \ -- Выход =./resnet50 \ -- Input_shape = "actual_input_1:1,3,224,224" \ -- Soc_version = Ascend310B4
Давайте рассмотрим ключевые аргументы в этой команде:
| Аргумент | Описание |
|---|---|
-- Модель | Указывает путь к файлу модели ввода (например,. Onnx). |
-- Рамки | Определяет исходную структуру.5Стенды для ONNX. |
-- Выход | Задает путь и имя для вывода. ОмФайл без расширения. |
-- Input_shape | Сообщает компилятору точные входные размеры для вашей модели. |
-- Soc_version | Указывает целевую микросхему Ascend на вашей доске. |
ЯЗЫК ВОСЦЕНДА КОМПЬЮТИРОВАНИЯ
Вы будете использоватьЯзык вычислений Ascend (AscendCL)Для взаимодействия с вашей преобразованной моделью. AscendCL-это API, который позволяет вашим приложениям взаимодействовать с процессором Ascend AI. Для разработчиков Python SDK предоставляет библиотеку под названиемПиакл. Этот API предоставляет вам функции для управления платой, загрузки вашей модели и выполнения вывода машинного обучения.
API включает инструменты для управления памятью. Вы можете использовать такие функции, какАллокензорВыделить память для ваших входных и выходных данных непосредственно на устройстве. Этот контроль помогает оптимизировать производительность, управляя использованием памяти во время обработки данных. AscendCL также предоставляет функции как для синхронного, так и для асинхронного выполнения, что дает вам гибкость в разработке приложений AI.
Вот упрощенный фрагмент Python, использующийПиаклЧтобы показать основную логику. Этот код демонстрирует загрузку модели и подготовку к выводу.
Импорт ACL
#1. Инициализация AscendCL
Ret = acl.init()
#2. Выделить ресурсы (устройство, контекст, поток)
Идентификатор устройства = 0
Ret = acl.rt.set_device(device_id)
Контекст, ret = acl.rt.create_context(device_id)
Stream, ret = acl.rt.create_stream()
#3. Загрузите. Модель OM
Model_path = "./resnet50.om"
Model_id, ret = acl.mdl.load_from_file (модель_путь)
#. .. Код для подготовки входных данных, выполнения вывода и вывода процесса...
#4. Выгрузка модели и освобождение ресурсов
Ret = acl.mdl.unload(model_id)
Ret = acl.rt.de stroy_stream (поток)
Ret = acl.rt.de stroy_context (контекст)
Ret = acl.rt.reset_device(device_id)
Ret = acl. reфинал ()
РАЗВЕРСТИТЬ И ИСПОЛНИТЬ
Последний шаг-развернуть и запустить код на краевой плате. Вы будете передавать свой скрипт Python и преобразованный. ОмМодель к устройству. Когда вы выполняете сценарий, он будет выполнять полный рабочий процесс машинного обучения. API AscendCL загрузит модель, ваш код подготовит и загрузит изображение, а оборудование AI выполнит вычисления.
Выходным результатом модели является сырой тензор чисел. Этот тензор представляет вероятности для каждого возможного класса. Ваш код должен выполнить постобработку на этом выходе, чтобы получить результат, читаемый человеком. Вы можетеПримените функцию Softmax к этим числам, чтобы получить окончательные вероятности. Наибольшая вероятность соответствует прогнозируемому классу для входного изображения. Этот последний шаг превращает необработанные данные из вашей модели глубокого обучения в значимый ответ для вашего приложения компьютерного зрения. Это завершает ваш первый проект ИИ, от выбора модели до вывода на устройстве и обработки результатов.
Теперь вы можете создавать мощные приложения ИИ для HiSilicon AI SoC. Ваш самый быстрый путь использует Ascend CANN SDK с открытыми фреймворками машинного обучения. Этот подход упрощает разработку ИИ для краевых устройств. Ваши будущие проекты могут следовать основной схеме успеха.
Ваш рабочий процесс AI на доске🗺️
- Настройте CANN SDK на своей плате.
- Преобразуйте свою модель с помощью инструмента ATC.
- Разверните свой код с помощью API AscendCL для обработки на устройстве.
Это учебное путешествие готовит вас к передовым вычислениям края. Вы можете расширить свои навыки машинного обучения и исследовать новые возможности обработки ИИ на своей доске. Официальный SDK и ресурсы сообщества поддерживают ваше дальнейшее обучение.
- Вы можете найти полныйДокументация Ascend CANNДля глубокого обучения.
- The Ascend сообщества GitHubПредлагает проекты и инструменты для edge computing.
Часто задаваемые вопросы
Что делать, если моя модель не в формате ONNX?
Вы можете сначала преобразовать свою модель в ONNX. Большинство фреймворков AI, таких как TensorFlow и PyTorch, предоставляют инструменты для экспорта моделей. Этот дополнительный шаг подготавливает вашу модель к инструменту УВД. Это стандартная практика во многих рабочих потоках разработки AI.
Могу ли я использовать эти инструменты для других проектов, кроме компьютерного зрения?
Да, ты можешь. Инструментарий Ascend CANN не ограничивается задачами видения. Вы можете создавать много типов приложений AI. Это включает в себя проекты по распознаванию речи и обработке естественного языка. Инструменты поддерживают широкий спектр моделей AI.
Где я могу найти образцы проектов ИИ, чтобы начать?
Исследуйте образцы проектов🧑💻
Вы можете найти много примеров проектов в сообществе Ascend на GitHub. Эти примеры охватывают различные задачи AI и предоставляют полный код. Они являются отличным ресурсом для изучения того, как создавать свои собственные приложения.
Нужна ли мне конкретная версия Linux для хост-компьютера?
Да, вам нужен совместимый дистрибутив Linux. В документации по набору инструментов CANN перечислены поддерживаемые операционные системы и версии. Вы должны проверить официальное руководство, чтобы избежать проблем с установкой. Это гарантирует стабильность вашей среды разработки AI.







