Кросс-скомпилируйте код глубокого обучения, что ARM использования вычисляет библиотеку

На компьютере, который размещает ваш MATLAB® сеанс, можно сгенерировать исходный код глубокого обучения и скомпилировать его, чтобы создать библиотеку или исполняемый файл, который работает на целевом ARM® аппаратное устройство. Компиляция исходного кода на одной платформе, чтобы создать двоичный код для другой платформы известна как cross-compilation. Этот рабочий процесс поддерживается только для Linux® серверная платформа и целевые устройства, которые имеют (32-битный) armv7 или armv8 (64-битная) архитектура ARM.

Используйте этот рабочий процесс, чтобы развернуть код глубокого обучения по устройствам ARM, которые не имеют пакетов аппаратной поддержки.

Примечание

Версия библиотеки ARM Compute, что примерами в этой теме справки использование не может быть последняя версия та генерация кода поддержки. Для поддерживаемых версий библиотек и для получения информации о подготовке переменных окружения, смотрите Необходимые условия для Глубокого обучения для MATLAB Coder.

Необходимые условия

Это необходимые условия, характерные для рабочего процесса кросс-компиляции. Для общих необходимых условий смотрите Необходимые условия для Глубокого обучения для MATLAB Coder.

  • Целевое устройство должно иметь (32-битный) armv7 или armv8 (64-битная) архитектура ARM. Чтобы проверить архитектуру вашего устройства запускают эту команду в терминале устройства:

    arch
  • У вас должно быть Linaro AArch32 или набор инструментальных средств AArch64, установленный на хосте - компьютере.

    • Для цели armv7 установите g++-arm-linux-gnueabihf GNU/GCC набор инструментальных средств на хосте.

    • Для цели armv8 установите g++-aarch64-linux-gnu GNU/GCC набор инструментальных средств на хосте.

    Например, чтобы установить набор инструментальных средств Linaro AArch64 на хосте, запустите эту команду в терминале:

    sudo apt-get install g++-aarch64-linux-gnu
  • В командной строке MATLAB, набор переменная окружения LINARO_TOOLCHAIN_AARCH32 или LINARO_TOOLCHAIN_AARCH64 для пути двоичных файлов набора инструментальных средств. Необходимо установить путь однажды на сеанс работы с MATLAB.

    Предположим, что набор инструментальных средств установлен в местоположении /usr/bin в хосте.

    • Для цели armv7 запустите эту команду:

      setenv('LINARO_TOOLCHAIN_AARCH32', '/usr/bin')
    • Для цели armv8 запустите эту команду:

      setenv('LINARO_TOOLCHAIN_AARCH64', '/usr/bin')
  • Кросс-скомпилируйте библиотеку ARM Compute по хосту:

    • Клонируйте репозиторий Git™ для библиотеки ARM Compute и проверьте версию, в которой вы нуждаетесь. Например, чтобы проверить v19.05, запустите эти команды в терминале хоста:

      git clone https://github.com/Arm-software/ComputeLibrary.git
      cd ComputeLibrary
      git tag -l
      git checkout v19.05
    • Установите сканы на хосте. Например, запустите это команды в терминале хоста:

      sudo apt-get install scons
    • Используйте сканы, чтобы кросс-скомпилировать библиотеку ARM Compute по хосту. Например, чтобы создать библиотеку, чтобы работать на armv8 архитектуре, запустите эту команду в терминале хоста:

      scons Werror=0 -j8 debug=0 neon=1 opencl=0 os=linux arch=arm64-v8a openmp=1 cppthreads=1 examples=0 asserts=0 build=cross_compile
    • В командной строке MATLAB, набор переменная окружения ARM_COMPUTELIB для пути библиотеки ARM Compute. Необходимо установить путь однажды на сеанс работы с MATLAB.

      Предположим, что библиотека ARM Compute установлена в местоположении /home/$(USER)/Desktop/ComputeLibrary. Запустите эту команду в командной строке MATLAB:

      setenv('ARM_COMPUTELIB','/home/$(USER)/Desktop/ComputeLibrary')

Сгенерируйте и разверните код глубокого обучения

Существует два возможных рабочих процесса для кросс-компиляции кода глубокого обучения по вашему хосту - компьютеру и затем развертыванию кода по целевому оборудованию ARM. Вот сводные данные этих двух рабочих процессов. Для примера, который демонстрирует оба рабочих процесса, см. Перекрестный Код Глубокого обучения Компиляции для Целей Неона ARM.

  • На хосте - компьютере вы генерируете статическую или динамическую библиотеку для кода глубокого обучения. Выполните эти шаги:

    • На хосте используйте codegen команда, чтобы сгенерировать и создать код глубокого обучения, чтобы создать статическую или динамическую библиотеку.

    • Скопируйте сгенерированную библиотеку, файлы библиотеки ARM Compute, make-файл и другие вспомогательные файлы к целевому компьютеру.

    • Скомпилируйте скопированный make-файл на цели, чтобы создать исполняемый файл.

    • Запустите сгенерированный исполняемый файл на целевом компьютере.

  • На хосте - компьютере вы генерируете исполняемый файл для кода глубокого обучения. Выполните эти шаги:

    • На хосте используйте codegen команда, чтобы сгенерировать и создать код глубокого обучения, чтобы создать исполняемый файл.

    • Скопируйте сгенерированный исполняемый файл, файлы библиотеки ARM Compute и другие вспомогательные файлы к целевому компьютеру.

    • Запустите исполняемый файл на целевом компьютере.

Смотрите также

Похожие темы