Тестирование ИИ-движка AMD Ryzen 9 7940HS в Windows 11

Некоторые новые процессоры AMD Ryzen оснащены ИИ-движком (также называемым NPU или IPU), работающим в Windows 11, включая модели Ryzen 9 7940HS, Ryzen 7 7840HS, Ryzen 5 7640HS, Ryzen 7 7840U и Ryzen 5 7640U. Недавно завершено тестирование мини-ПК GEEKOM A7 на базе процессора AMD Ryzen 9 7940HS под управлением Windows 11 — публикация обзора пока отложена — поэтому было решено испытать ИИ-движок процессора Ryzen 9 7940HS.

Движок построен на архитектуре AMD XDNA , а AMD предоставляет инструкции для начала работы, включая примеры, демонстрации и ресурсы для разработчиков. Была предпринята попытка запуска примеров, но по причинам, указанным ниже, в итоге пришлось ограничиться демоверсиями.

Установка ПО Ryzen AI (для демонстраций)

Примеры, размещённые на GitHub , требуют установки зависимостей для программного стека Ryzen AI.

Первый шаг — установка драйвера IPU, доступного для загрузки в виде «ipu_stack_rel_silicon_prod.zip» после регистрации учётной записи на сайте AMD.

ipu_stack_rel_silicon_prod.zip download

Следует отметить необходимость принятия «Лицензионного соглашения для конечных пользователей бета-версии ПО», хотя изначально предполагалось, что это не требуется, поскольку драйвер AMD IPU уже присутствовал в Windows 11 Pro на мини-ПК GEEKOM A7…

AMD IPU Device

Оказалось, что это не так. Для корректной работы потребовалось установить новую версию (с предварительным удалением старой).

Далее необходимо установить несколько программ:

  • Visual Studio 2019 (рекомендуется загрузка со сторонних ресурсов вроде TechSpot, так как Microsoft требует авторизации для доступа к архивным версиям VS).
  • CMake версии >= 3.26
  • Python версии >= 3.9
  • Anaconda3 или Miniconda3

При установке CMake, Python 3.12 и Anaconda3 была активирована опция добавления в PATH. Отмечено, что Visual Studio 2019 также может использоваться для установки CMake и других инструментов.

Следующий шаг — загрузка пакета установки ПО Ryzen AI (ryzen-ai-sw-1.0.1.zip), где избежать принятия Лицензионного соглашения для бета-версии уже не удалось. Соглашение является конфиденциальным (хотя доступно всем зарегистрированным пользователям AMD) и запрещает публикацию результатов без письменного разрешения AMD. Поэтому далее будут приведены только общедоступные сведения…

Требуется запустить скрипт установки и принять дополнительное EULA для RyzenAI:

PS C:\Users\jaufr\Downloads\ryzen-ai-sw-1.0.1\ryzen-ai-sw-1.0.1> .\install.bat -env cnxsoft-ryzenai
Windows 11: OK
Visual Studio 2019: OK
Python: OK
CONDA Available: OK
CMake: OK
IPU driver Available: OK
All deps are available. Proceeding to Conda env creation...
Do you accept EULA for RyzenAI? [y/n]: y
Proceeding further ...
Creating conda env: ryzenai-1.0-20240211-173028 ...
Collecting package metadata (repodata.json): done
...

При возникновении ошибок (идентифицируемых по строке CRITICAL) или незавершённом выполнении скрипта необходимо устранить проблемы путём установки соответствующих программ и проверки их наличия в PATH.

Далее активируется среда conda…

conda activate cnxsoft-ryzenai

… и выполняется тест:

cd .\quicktest\
curl https://www.cs.toronto.edu/~kriz/cifar-10-sample/bird6.png -o image_0.png
python -m pip install -r requirements.txt
python quicktest.py --ep ipu

При успешном выполнении вывод должен соответствовать документации:

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:336] Vitis AI EP Load ONNX Model Success
I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:337] Graph Input Node Name/Shape (1)
I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:341]   input : [-1x3x32x32]
I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:347] Graph Output Node Name/Shape (1)
I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:351]   output : [-1x10]
I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:226] use cache key quickstart_modelcachekey
[Vitis AI EP] No. of Operators :   CPU     2    IPU   400  99.50%
[Vitis AI EP] No. of Subgraphs :   CPU     1    IPU     1 Actually running on IPU     1
....

Фактический вывод несколько длиннее, но суть ясна.

Пример Yolov8 с ПО Ryzen AI

После завершения установки можно опробовать примеры, в частности протестировать пример Yolov8 . На это ушло несколько часов, но попытка завершилась неудачей. Дальнейшая отладка сочтена нецелесообразной из-за ограничений соглашения о бета-версии ПО. Отметим, что AMD опубликовала видео по схожему руководству Yolov8_e2e из того же репозитория GitHub около двух месяцев назад. Версии компонентов отличаются, но процедура требует значительно больше шагов.

Демонстрации Ryzen AI

Внимание переключилось на каталог демонстраций в том же репозитории GitHub, где не требовалось подписывать юридические документы… Первой испытана демонстрация «cloud-to-client» для Ryzen AI, показывающая поиск и сортировку изображений на ПК с Ryzen AI с использованием моделей ИИ Yolov5 и Retinaface. Тест проведён со старым драйвером IPU, предустановленным в Windows 11 Pro на мини-ПК GEEKOM A7.

Первый шаг — запуск пакетного скрипта установки:

PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\cloud-to-client> .\setup.bat

Процесс завершился с ошибкой отсутствия «критического» файла, но запуск одной из программ оказался возможен.

2024-02-11 18:16:24,015 - INFO - copying C:\Windows\System32\AMD\xrt_core.dll to C:\Users\jaufr\anaconda3\envs\ms-build-demo\lib\site-packages\onnxruntime\capi
2024-02-11 18:16:24,015 - INFO - copying C:\Windows\System32\AMD\xrt_coreutil.dll to C:\Users\jaufr\anaconda3\envs\ms-build-demo\lib\site-packages\onnxruntime\capi
2024-02-11 18:16:24,015 - INFO - copying C:\Windows\System32\AMD\xrt_phxcore.dll to C:\Users\jaufr\anaconda3\envs\ms-build-demo\lib\site-packages\onnxruntime\capi
2024-02-11 18:16:24,037 - CRITICAL - C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\cloud-to-client\voe-0.1.0-cp39-cp39-win_amd64\onnxruntime.dll does not exist.
PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\cloud-to-client>

Лог доступен на pastebin .

Далее запущена демонстрационная программа Qt:

run_pyapp.bat

AMD Image Categorizer NPU usage

Выбрана папка со скриншотами (возможно, не самый подходящий контент для теста, но другой не было), после чего AMD Image Categorizer просканировал изображения. Нагрузка на NPU наблюдалась в HWiNFO64. См. полный вывод процесса сканирования для справки.

Изображения стали доступны для поиска, и хотя многие теги недостаточно релевантны из-за исходного контента, система смогла обнаружить птицу на скриншоте YouTube.

AMD Ryzen 7940HS AI Engine Image Sorting

Демонстрация «cloud-to-client» также доступна как веб-сервер, но запустить её не удалось даже после установки дополнительных модулей Python.

AMD Object Detection Web Server

RyzenAI SW Server

Ожидалось, что демоверсии будут работать без дополнительных настроек, однако недавний опыт работы с камерой глубины Orbbec Femto Mega в Windows 11 указывает на типичность подобных проблем в данной ОС…

Также доступна демонстрация «multi-model-exec» со следующими моделями:

  • MobileNet_v2
  • ResNet50
  • Retinaface
  • Segmentation
  • Yolox

К сожалению, все завершились одинаковой ошибкой. Требовалось модифицировать команды из инструкции, иначе пришлось бы остановиться раньше…

Первоначально создана среда conda:

PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec> conda env create --name cnxsoft --file=env.yaml
Collecting package metadata (repodata.json): done
Solving environment: done

Полный вывод:

PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec> conda env create --name cnxsoft --file=env.yaml
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 23.7.4
  latest version: 24.1.0

Please update conda by running

    $ conda update -n base -c defaults conda

Or to minimize the number of packages updated during conda update use

     conda install conda=24.1.0



Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Installing pip dependencies: \ Ran pip subprocess with arguments:
['C:\\Users\\jaufr\\anaconda3\\envs\\cnxsoft\\python.exe', '-m', 'pip', 'install', '-U', '-r', 'C:\\Users\\jaufr\\Downloads\\RyzenAI-SW-main\\RyzenAI-SW-main\\demo\\multi-model-exec\\condaenv.q1_003sq.requirements.txt', '--exists-action=b']
Pip subprocess output:
Processing c:\users\jaufr\downloads\ryzenai-sw-main\ryzenai-sw-main\demo\multi-model-exec\voe-0.1.0-cp39-cp39-win_amd64.whl (from -r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 2))
Collecting onnxruntime (from -r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Obtaining dependency information for onnxruntime from https://files.pythonhosted.org/packages/6d/22/f84599edb744a06ba86920f51a2f9d5317db2dc496876eb32831f7923196/onnxruntime-1.17.0-cp39-cp39-win_amd64.whl.metadata
  Using cached onnxruntime-1.17.0-cp39-cp39-win_amd64.whl.metadata (4.3 kB)
Collecting coloredlogs (from onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Using cached coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)
Collecting flatbuffers (from onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Obtaining dependency information for flatbuffers from https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl.metadata
  Using cached flatbuffers-23.5.26-py2.py3-none-any.whl.metadata (850 bytes)
Collecting numpy>=1.21.6 (from onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Obtaining dependency information for numpy>=1.21.6 from https://files.pythonhosted.org/packages/b5/42/054082bd8220bbf6f297f982f0a8f5479fcbc55c8b511d928df07b965869/numpy-1.26.4-cp39-cp39-win_amd64.whl.metadata
  Using cached numpy-1.26.4-cp39-cp39-win_amd64.whl.metadata (61 kB)
Collecting packaging (from onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Obtaining dependency information for packaging from https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl.metadata
  Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting protobuf (from onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Obtaining dependency information for protobuf from https://files.pythonhosted.org/packages/f3/7c/9e78d866916fb07e193a53352453fdc44a9a47d5c30866c40231a03eb3a6/protobuf-4.25.2-cp39-cp39-win_amd64.whl.metadata
  Using cached protobuf-4.25.2-cp39-cp39-win_amd64.whl.metadata (541 bytes)
Collecting sympy (from onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Using cached sympy-1.12-py3-none-any.whl (5.7 MB)
Collecting glog==0.3.1 (from voe==0.1.0->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 2))
  Using cached glog-0.3.1-py2.py3-none-any.whl (7.8 kB)
Collecting python-gflags>=3.1 (from glog==0.3.1->voe==0.1.0->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 2))
  Using cached python_gflags-3.1.2-py3-none-any.whl
Collecting six (from glog==0.3.1->voe==0.1.0->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 2))
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting humanfriendly>=9.1 (from coloredlogs->onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Using cached humanfriendly-10.0-py2.py3-none-any.whl (86 kB)
Collecting mpmath>=0.19 (from sympy->onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)
Collecting pyreadline3 (from humanfriendly>=9.1->coloredlogs->onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (line 1))
  Using cached pyreadline3-3.4.1-py3-none-any.whl (95 kB)
Using cached onnxruntime-1.17.0-cp39-cp39-win_amd64.whl (5.6 MB)
Using cached numpy-1.26.4-cp39-cp39-win_amd64.whl (15.8 MB)
Using cached flatbuffers-23.5.26-py2.py3-none-any.whl (26 kB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Using cached protobuf-4.25.2-cp39-cp39-win_amd64.whl (413 kB)
Installing collected packages: python-gflags, pyreadline3, mpmath, flatbuffers, sympy, six, protobuf, packaging, numpy, humanfriendly, glog, coloredlogs, voe, onnxruntime
Successfully installed coloredlogs-15.0.1 flatbuffers-23.5.26 glog-0.3.1 humanfriendly-10.0 mpmath-1.3.0 numpy-1.26.4 onnxruntime-1.17.0 packaging-23.2 protobuf-4.25.2 pyreadline3-3.4.1 python-gflags-3.1.2 six-1.16.0 sympy-1.12 voe-0.1.0

done
#
# To activate this environment, use
#
#     $ conda activate cnxsoft
#
# To deactivate an active environment, use
#
#     $ conda deactivate

PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec>

Активация среды:

conda activate cnxsoft

Загружен пакет ONNX-моделей и тестовых изображений/видео ( resource_multi_model_demo.zip ) с последующей распаковкой в demo/multi-model-exec/ipu_modelsx4_demo/. Затем выполнена команда генерации скриптов:

AMD Ryzen multi model exec generate_script.py

На данном этапе процесс выглядел корректно:

PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo> ls


    Directory: C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2/11/2024   4:46 PM                config
d-----         2/11/2024   8:45 PM                resource
-a----         2/11/2024   4:46 PM           7386 generate_script.py
-a----         2/11/2024   8:45 PM            741 run_mobile_net_v2.bat
-a----         2/11/2024   8:45 PM            735 run_modelx4.bat
-a----         2/11/2024   8:45 PM            736 run_resnet50.bat
-a----         2/11/2024   8:45 PM            738 run_retinaface.bat
-a----         2/11/2024   8:45 PM            740 run_segmentation.bat
-a----         2/11/2024   8:45 PM            734 run_yolovx.bat

Однако запуск любого скрипта вызывал ошибку:

PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo> .\run_mobile_net_v2.bat

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set XLNX_VART_FIRMWARE=C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\1x4.xclbin

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set PATH=C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\bin;C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\python;C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..;C:\Windows\System32\AMD;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Program Files\PuTTY\;C:\Program Files\CMake\bin;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\;C:\Users\jaufr\anaconda3;C:\Users\jaufr\anaconda3\Library\mingw-w64\bin;C:\Users\jaufr\anaconda3\Library\usr\bin;C:\Users\jaufr\anaconda3\Library\bin;C:\Users\jaufr\anaconda3\Scripts;C:\Users\jaufr\AppData\Local\Programs\Python\Launcher\;C:\Users\jaufr\AppData\Local\Microsoft\WindowsApps

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set PYTHONPATH=C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\python312.zip;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\DLLs;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\Lib;C:\Users\jaufr\AppData\Local\Programs\Python\Python312;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\Lib\site-packages;set DEBUG_ONNX_TASK=0

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set DEBUG_DEMO=0

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set NUM_OF_DPU_RUNNERS=4

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set XLNX_ENABLE_GRAPH_ENGINE_PAD=1

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set XLNX_ENABLE_GRAPH_ENGINE_DEPAD=1

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\bin\ipu_multi_models.exe C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\config\mobile_net_v2.json
WARNING: Logging before InitGoogleLogging() is written to STDERR
I20240211 20:47:53.260922 21700 ipu_multi_models.cpp:136]  config not set using_onnx_ep, using default: false
I20240211 20:47:53.260922 21700 ipu_multi_models.cpp:376] config mobile_net_v2 -> model_filter_id:5 thread_num:4 confidence_threshold:0.3 onnx_model_path:C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\resource\mobilenetv2_1.4_int.onnx video_file_path:C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\resource\detection.avi onnx_x:1 onnx_y:1 onnx_disable_spinning:0 onnx_disable_spinning_between_run:0 intra_op_thread_affinities: using_onnx_ep:0
I20240211 20:47:53.262941 21700 ipu_multi_models.cpp:332] g_show_width: 1024g_show_height: 640matrix_split_num: 1
I20240211 20:47:53.262941 21700 ipu_multi_models.cpp:340] use global gui thread
I20240211 20:47:53.486811 21700 onnx_task.hpp:113] using VitisAI
I20240211 20:47:56.181272 21700 ipu_multi_models.cpp:382] C:\Users\xbuild\Desktop\xj3\VAI_RT_WIN_ONNX_EP_ALL\onnxruntime\onnxruntime\core\providers\vitisai\imp\global_api.cc:56 OrtVitisAIEpAPI::Ensure [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\bin\onnxruntime_vitisai_ep.dll"
PS C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo> .\run_resnet50.bat

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set XLNX_VART_FIRMWARE=C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\1x4.xclbin

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set PATH=C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\bin;C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\python;C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..;C:\Windows\System32\AMD;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Program Files\PuTTY\;C:\Program Files\CMake\bin;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\;C:\Users\jaufr\anaconda3;C:\Users\jaufr\anaconda3\Library\mingw-w64\bin;C:\Users\jaufr\anaconda3\Library\usr\bin;C:\Users\jaufr\anaconda3\Library\bin;C:\Users\jaufr\anaconda3\Scripts;C:\Users\jaufr\AppData\Local\Programs\Python\Launcher\;C:\Users\jaufr\AppData\Local\Microsoft\WindowsApps

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set PYTHONPATH=C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\python312.zip;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\DLLs;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\Lib;C:\Users\jaufr\AppData\Local\Programs\Python\Python312;C:\Users\jaufr\AppData\Local\Programs\Python\Python312\Lib\site-packages;set DEBUG_ONNX_TASK=0

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set DEBUG_DEMO=0

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set NUM_OF_DPU_RUNNERS=4

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set XLNX_ENABLE_GRAPH_ENGINE_PAD=1

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>set XLNX_ENABLE_GRAPH_ENGINE_DEPAD=1

C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo>C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\..\bin\ipu_multi_models.exe C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\config\resnet50.json
WARNING: Logging before InitGoogleLogging() is written to STDERR
I20240211 20:52:41.000353 20180 ipu_multi_models.cpp:83] resnet50 config not set confidence_threshold, using default: 0.3
I20240211 20:52:41.010800 20180 ipu_multi_models.cpp:136]  config not set using_onnx_ep, using default: false
I20240211 20:52:41.010800 20180 ipu_multi_models.cpp:376] config resnet50 -> model_filter_id:2 thread_num:4 confidence_threshold:0.3 onnx_model_path:C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\resource\resnet50_pt.onnx video_file_path:C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo\resource\detection.avi onnx_x:1 onnx_y:1 onnx_disable_spinning:0 onnx_disable_spinning_between_run:0 intra_op_thread_affinities: using_onnx_ep:0
I20240211 20:52:41.010800 20180 ipu_multi_models.cpp:332] g_show_width: 1024g_show_height: 640matrix_split_num: 1
I20240211 20:52:41.010800 20180 ipu_multi_models.cpp:340] use global gui thread
I20240211 20:52:41.210458 20180 onnx_task.hpp:113] using VitisAI
I20240211 20:52:41.910542 20180 ipu_multi_models.cpp:382] C:\Users\xbuild\Desktop\xj3\VAI_RT_WIN_ONNX_EP_ALL\onnxruntime\onnxruntime\core\providers\vitisai\imp\global_api.cc:56 OrtVitisAIEpAPI::Ensure [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\bin\onnxruntime_vitisai_ep.dll"

Программы Windows часто выдают неочевидные сообщения об ошибках, например:

FAIL : LoadLibrary failed with error 126 "" when trying to load "...\multi-model-exec\bin\onnxruntime_vitisai_ep.dll"

Файл присутствует, но система регистрирует проблему, решение которой не найдено в веб-поиске. Предположительно, причина в несовместимости версий… Устранение могло бы занять часы или дни, что не было реализовано.

Таким образом, использование NPU/IPU в Ryzen 9 7940HS под Windows 11 возможно, но процесс пока не отличается простотой, а готовых решений для конечных пользователей, по-видимому, ещё нет… Соответствующая информация может быть добавлена в комментариях.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments