| Rosetta 2 = x86–64 !?

В прошлом сообщении я пытался скомпилировать OpenVINO на Apple M1 изначально. Однако его исходный запуск также лишил возможности запускать логический вывод на CPU. Теперь, на этот раз я скомпилирую его на архитектуре x86–64 с помощью Rosetta 2.

Если вы ранее устанавливали HomeBrew в arm64, давайте удалим его из системы.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

После этого выходим из Терминала arm64. Затем мы создадим новый терминал и включим опцию «Открыть с помощью Rosetta».

Затем мы запустим «Intel Terminal» и начнем выполнять все оттуда.

В «Терминале Intel» мы выполняем эту команду, чтобы установить HomeBrew в x86–64.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Затем вы должны быть готовы приступить к настройке среды сборки.

Подготовьте среду сборки

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

brew install cmake
brew install wget
brew install opencv
brew install automake
brew install libusb

Затем мы извлекаем исходный код из репозитория OpenVINO.

git clone https://github.com/openvinotoolkit/openvino.git
cd openvino 
git submodule update --init --recursive

Теперь мы создаем каталог build в каталоге openvino.

mkdir build_x86 && cd build_x86
cmake ../
make -j 9

Подождите, пока компилятор завершит свою работу ... И волшебство ... Работает! Да, это работает!

Затем я сразу скачиваю предварительно обученную модель в последнем посте.

cd ../bin/intel64/Release
wget https://download.01.org/opencv/2020/openvinotoolkit/2020.3/open_model_zoo/models_bin/1/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin
wget https://download.01.org/opencv/2020/openvinotoolkit/2020.3/open_model_zoo/models_bin/1/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml

Кроме того, преобразовал мой BMP-файл в 1024x1024 @ 24 бит и запустил команду. Примечание. Вы можете пропустить преобразование, потому что теперь мы поддерживаем OpenCV в этой сборке. Однако я оставил его только для единообразия.

./object_detection_sample_ssd -i walk.bmp -m person-vehicle-bike-detection-crossroad-0078.xml 

Невероятный. Это просто сработало ... и я получил результаты. Молодец Intel OpenVINO!

Наконец, вот небольшая видеодемонстрация работы механизма вывода Intel OpenVINO на Apple M1.

Ограничения и проверки

Конечно, в этом посте не проводилось полное и всестороннее тестирование OpenVINO на Apple M1. Я уверен, что возникнут проблемы, если для кода специально потребуются различные инструкции Intel с более глубоким конвейером (см. Ссылку ниже). Но с подходом с открытым исходным кодом вы можете войти в код и посмотреть, использовали ли вы различные инструкции, которые не поддерживались, и исправить это по ходу.



Вывод

Я скажу, что поддержка OpenVINO просто потрясающая. Взяв курс на открытый исходный код и открытое сообщество, я вижу, как мы можем использовать OpenVINO на всех устройствах и архитектурах и поддерживать сообщество ИИ в целом.

#iamintel