Test du moteur AI d’AMD Ryzen 9 7940HS sous Windows 11

Test du moteur AI d'AMD Ryzen 9 7940HS sous Windows 11

Certains des processeurs AMD Ryzen les plus récents sont livrés avec un moteur AI (également appelé NPU ou IPU) qui fonctionne sous Windows 11, notamment les Ryzen 9 7940HS, Ryzen 7 7840HS, Ryzen 5 7640HS, Ryzen 7 7840U et Ryzen 5 7640U. Je viens de terminer l’test du mini PC GEEKOM A7 alimenté par un processeur AMD Ryzen 9 7940HS avec Windows 11 – mais je dois attendre avant de le publier – j’ai donc décidé d’essayer le moteur AI sur le processeur Ryzen 9 7940HS.

Le moteur AI s’appuie sur l’architecture AMD XDNA et AMD fournit des instructions pour démarrer avec des exemples, des démos et des ressources pour les développeurs. J’ai donc décidé d’essayer quelques exemples, mais pour certaines raisons que j’expliquerai ci-dessous, j’ai finalement dû me contenter de quelques démos.

Installation du logiciel Ryzen AI (pour les démos)

Les exemples hébergés sur GitHub nous obligent à installer des dépendances pour la pile logicielle Ryzen AI.

La première étape est l’installation du pilote IPU qui peut être effectuée en téléchargeant le « ipu_stack_rel_silicon_prod.zip » après avoir enregistré un compte sur le site Web d’AMD.

ipu_stack_rel_silicon_prod.zip télécharger

Notez que cela nécessite la signature d’un « Contrat de licence d’utilisateur final du logiciel bêta », et j’ai initialement supposé que cela n’était pas nécessaire ici car le pilote de périphérique AMD IPU est déjà installé dans Windows 11 Pro fonctionnant sur le mini PC GEEKOM A7…

Périphérique AMD IPU

Mais je me trompais. J’ai dû installer le nouveau (et désinstaller l’ancien) pour que cette partie fonctionne.

Il nous est ensuite demandé d’installer quelques programmes :

  • Visual Studio 2019 (je recommanderais de le télécharger à partir d’un site Web tiers comme TechSpot, car Microsoft nécessite une connexion pour télécharger les versions précédentes de VS).
  • Version CMake >= 3.26
  • Version Python >= 3.9
  • Anaconda3 ou (Miniconda3)

Je me suis assuré de sélectionner l’option ajouter à PATH lors de l’installation de CMake, Python 3.12 et Anaconda3. Notez que Visual Studio 2019 peut également être utilisé pour installer CMake et d’autres outils.

L’étape suivante consiste à télécharger le package d’installation du logiciel Ryzen AI (ryzen-ai-sw-1.0.1.zip), mais cette fois-ci, je n’ai pas pu éviter de signer le contrat de licence d’utilisateur final du logiciel bêta, c’est ce que j’ai fait. L’accord est confidentiel (bien que toute personne qui s’inscrit pour un compte AMD puisse le lire) et m’empêche également de signaler des résultats sans l’accord écrit d’AMD. Je vais donc simplement écrire des informations publiques pour cette partie…

Nous devrons exécuter le script d’installation et accepter un autre CLUF pour RyzenAI :

PS C:\Utilisateurs\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 : D’accord

CONDA disponible : OK

CMake : OK

Pilote IPU disponible : OK

Tous les dépôts sont disponibles. Passage à la création de l’environnement Conda…

Acceptez-vous le CLUF pour RyzenAI ? [y/n]: oui

Pour aller plus loin…

Création de l’environnement conda : ryzenai-1.0-20240211-173028 …

Collecte des métadonnées du package (repodata.json) : terminée

S’il y a des erreurs (recherchez la chaîne CRITICAL) ou si le script ne se termine pas, vous souhaiterez corriger cela en installant les programmes appropriés et en vous assurant qu’ils se trouvent dans le PATH.

La prochaine étape consiste à activer l’environnement conda…

conda activer cnxsoft-ryzenai

… et lancez le test :

cd .\test rapide\

boucle https://www.cs.toronto.edu/~kriz/cifar-10-sample/bird6.png -o image_0.png

python -m pip install -r exigences.txt

python quicktest.py –ep ipu

Une fois réussi, le résultat devrait ressembler à ceci selon la documentation :

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:336]Vitis AI EP Chargement du modèle ONNX réussi

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:337]Nom/forme du nœud d’entrée du graphique (1)

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:341]entrée : [-1x3x32x32]

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:347]Nom/forme du nœud de sortie du graphique (1)

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:351]sortie : [-1×10]

I20231127 16:29:15.010130 13892 vitisai_compile_model.cpp:226]utiliser la clé de cache quickstart_modelcachekey

[Vitis AI EP] Nombre d’opérateurs : CPU 2 IPU 400 99,50%

[Vitis AI EP] Nombre de sous-graphes : CPU 1 IPU 1 fonctionnant actuellement sur IPU 1

….

C’est un peu plus long que ça, mais vous voyez l’idée.

Exemple Yolov8 avec le logiciel Ryzen AI

Une fois l’installation terminée, nous pouvons essayer quelques exemples, et j’ai pensé consulter l’exemple Yolov8. J’ai passé quelques heures dessus, mais j’ai finalement échoué, et je ne voulais pas y consacrer plus de temps puisque je ne pouvais pas écrire à ce sujet dans le contrat du logiciel bêta. Mais AMD a publié une vidéo sur le didacticiel similaire Yolov8_e2e du même référentiel GitHub il y a environ deux mois. Certaines versions ont changé, mais la procédure est similaire et nécessite un peu plus d’étapes que l’exemple.

YouTube video

Démos Ryzen AI

Je suis ensuite passé au répertoire demos dans le même référentiel GitHub, et on ne m’a demandé de signer aucun document juridique… J’ai commencé avec la démo Ryzen AI « cloud-to-client » qui présente la recherche et le tri d’images sur AMD Ryzen AI. PC utilisant les modèles Yolov5 et Retinaface AI. Je l’ai utilisé avec l’ancien pilote IPU fourni avec Windows 11 Pro dans le mini PC GEEKOM A7.

La première étape consistait à exécuter le script de configuration par lots :

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

Cela s’est terminé par un fichier « critique » manquant, mais j’ai quand même pu exécuter celui des programmes.

2024-02-11 18:16:24,015 – INFO – copie de C:\Windows\System32\AMD\xrt_core.dll vers C:\Users\jaufr\anaconda3\envs\ms-build-demo\lib\site-packages\ onnxruntime\capi

2024-02-11 18:16:24,015 – INFO – copie de C:\Windows\System32\AMD\xrt_coreutil.dll vers C:\Users\jaufr\anaconda3\envs\ms-build-demo\lib\site-packages\ onnxruntime\capi

2024-02-11 18:16:24,015 – INFO – copie de C:\Windows\System32\AMD\xrt_phxcore.dll vers C:\Users\jaufr\anaconda3\envs\ms-build-demo\lib\site-packages\ onnxruntime\capi

2024-02-11 18:16:24,037 – CRITIQUE – C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\cloud-to-client\voe-0.1.0-cp39- cp39-win_amd64\onnxruntime.dll n’existe pas.

PS C:\Utilisateurs\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\cloud-to-client>

Vous trouverez le journal sur Pastebin.

Je lance ensuite le programme Qt démo :

Utilisation du NPU du catégoriseur d'images AMD

J’ai sélectionné un dossier avec des captures d’écran (je pense que ce n’est peut-être pas le meilleur pour ce type de test mais c’est ce que j’avais sur le PC de test), et le catégoriseur d’images AMD a scanné mes images, et j’ai pu voir une certaine utilisation du NPU dans HWiNFO64. . Consultez la sortie complète lors de la numérisation pour référence.

Chaque image est désormais consultable et bien que de nombreuses balises ne soient pas très pertinentes en raison des images sources utilisées, il pourrait trouver un oiseau dans une capture d’écran que j’avais faite avec YouTube.

Tri d'images du moteur AI AMD Ryzen 7940HS

La démo cloud-to-client est également disponible en tant que serveur Web, mais elle n’a pas fonctionné pour moi, même après avoir installé quelques modules Python supplémentaires.

Serveur Web de détection d'objets AMD

Serveur logiciel RyzenAI

Je m’attendrais en quelque sorte à ce que les démos fonctionnent immédiatement sans avoir à passer des heures à obtenir le bon module ou la bonne version de la DLL, bien que mon expérience récente avec la caméra de profondeur Orbbec Femto Mega dans Windows 11 semble impliquer que c’est comme d’habitude sous Windows…

Il existe également une autre démo appelée « multi-model-exec » avec les modèles suivants :

  • MobileNet_v2
  • ResNet50
  • Rétineface
  • Segmentation
  • Yolox

Malheureusement, tous m’ont échoué avec la même erreur. J’ai dû modifier certaines commandes des instructions, sinon j’aurais dû m’arrêter plus tôt…

J’ai d’abord dû créer un environnement conda :

PS C:\Utilisateurs\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec> conda env create –name cnxsoft –file=env.yaml

Collecte des métadonnées du package (repodata.json) : terminée

Environnement de résolution : terminé

Sortie complète :

1

2

3

4

5

6

7

8

9

dix

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

PS C:\Utilisateurs\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec> conda env create –name cnxsoft –file=env.yaml

Collecte des métadonnées du package (repodata.json) : terminée

Environnement de résolution : terminé

==> AVERTISSEMENT : une version plus récente de conda existe. <==

version actuelle : 23.7.4

dernière version : 24.1.0

Veuillez mettre à jour conda en exécutant

$ conda update -n base -c valeurs par défaut conda

Ou pour minimiser le nombre de packages mis à jour lors de l’utilisation de la mise à jour conda

conda installer conda = 24.1.0

Téléchargement et extraction de packages

Préparation de la transaction : terminé

Vérification de la transaction : effectuée

Exécution de la transaction : terminée

Installation des dépendances pip : \ Ran le sous-processus pip avec des 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’]

Sortie du sous-processus Pip :

Traitement c:\users\jaufr\downloads\ryzenai-sw-main\ryzenai-sw-main\demo\multi-model-exec\voe-0.1.0-cp39-cp39-win_amd64.whl (à partir de -r C:\ Utilisateurs\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 2))

Collecte d’onnxruntime (à partir de -r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Obtention d’informations sur les dépendances pour onnxruntime à partir de https://files.pythonhosted.org/packages/6d/22/f84599edb744a06ba86920f51a2f9d5317db2dc496876eb32831f7923196/onnxruntime-1.17.0-cp39-cp39-win_amd64.whl. métadonnées

Utilisation de onnxruntime-1.17.0-cp39-cp39-win_amd64.whl.metadata en cache (4,3 Ko)

Collecte des journaux colorés (à partir de onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Utilisation de colourlogs-15.0.1-py2.py3-none-any.whl en cache (46 Ko)

Collecte des flatbuffers (depuis onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Obtention d’informations sur les dépendances pour les flatbuffers à partir de https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl.metadata

Utilisation de flatbuffers-23.5.26-py2.py3-none-any.whl.metadata en cache (850 octets)

Collecte de numpy>=1.21.6 (à partir de onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Obtention des informations de dépendance pour numpy>=1.21.6 à partir de https://files.pythonhosted.org/packages/b5/42/054082bd8220bbf6f297f982f0a8f5479fcbc55c8b511d928df07b965869/numpy-1.26.4-cp39-cp39-win_amd64. whl.métadonnées

Utilisation de numpy-1.26.4-cp39-cp39-win_amd64.whl.metadata en cache (61 Ko)

Collecte des emballages (à partir de onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Obtention d’informations sur les dépendances pour l’empaquetage à partir de https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl.metadata

Utilisation de packaging-23.2-py3-none-any.whl.metadata en cache (3,2 Ko)

Collecte de protobuf (depuis onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Obtention d’informations sur les dépendances pour protobuf à partir de https://files.pythonhosted.org/packages/f3/7c/9e78d866916fb07e193a53352453fdc44a9a47d5c30866c40231a03eb3a6/protobuf-4.25.2-cp39-cp39-win_amd64.whl. métadonnées

Utilisation de protobuf-4.25.2-cp39-cp39-win_amd64.whl.metadata en cache (541 octets)

Collecte de sympy (depuis onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements.txt (ligne 1))

Utilisation de sympy-1.12-py3-none-any.whl en cache (5,7 Mo)

Collecte de glog==0.3.1 (à partir de voe==0.1.0->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv. q1_003sq.requirements.txt (ligne 2))

Utilisation de glog-0.3.1-py2.py3-none-any.whl en cache (7,8 Ko)

Collecte de python-gflags>=3.1 (depuis 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 (ligne 2))

Utilisation de python_gflags-3.1.2-py3-none-any.whl en cache

Collecte de six (à partir de 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 (ligne 2))

Utilisation de six-1.16.0-py2.py3-none-any.whl en cache (11 Ko)

Collecte humanfriendly>=9.1 (à partir de colouredlogs->onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements. txt (ligne 1))

Utilisation de humanfriendly-10.0-py2.py3-none-any.whl en cache (86 Ko)

Collecte de mpmath>=0,19 (à partir de sympy->onnxruntime->-r C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\condaenv.q1_003sq.requirements. txt (ligne 1))

Utilisation de mpmath-1.3.0-py3-none-any.whl en cache (536 Ko)

Collecte de pyreadline3 (depuis 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 (ligne 1))

Utilisation de pyreadline3-3.4.1-py3-none-any.whl en cache (95 Ko)

Utilisation de onnxruntime-1.17.0-cp39-cp39-win_amd64.whl en cache (5,6 Mo)

Utilisation de numpy-1.26.4-cp39-cp39-win_amd64.whl en cache (15,8 Mo)

Utilisation des flatbuffers-23.5.26-py2.py3-none-any.whl en cache (26 Ko)

Utilisation de packaging-23.2-py3-none-any.whl en cache (53 Ko)

Utilisation de protobuf-4.25.2-cp39-cp39-win_amd64.whl en cache (413 Ko)

Installation des packages collectés : python-gflags, pyreadline3, mpmath, flatbuffers, sympy, six, protobuf, packaging, numpy, humanfriendly, glog, colourlogs, voe, onnxruntime

Colorfullogs-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- a été installé avec succès gflags-3.1.2 six-1.16.0 sympy-1.12 voe-0.1.0

fait

#

# Pour activer cet environnement, utilisez

#

# $ conda activer cnxsoft

#

# Pour désactiver un environnement actif, utilisez

#

# $ conda désactiver

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

Nous pouvons maintenant activer l’environnement :

Je télécharge les modèles ONNX et le package image/vidéo de test (resource_multi_model_demo.zip), et je le décompresse sous demo/multi-model-exec/ipu_modelsx4_demo/. Après cela, je pourrais exécuter la commande pour générer les scripts :

Exécuteur multimodèle AMD Ryzen generate_script.py

Pour l’instant ça a l’air bien :

1

2

3

4

5

6

7

8

9

dix

11

12

13

14

15

16

17

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

Répertoire : C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\ipu_modelsx4_demo

Mode LastWriteTime Longueur Nom

—- ————- —— —-

d—– 11/02/2024 16:46 configuration

j—– 11/02/2024 20h45 ressource

-a—- 11/02/2024 16:46 7386 generate_script.py

-a—- 11/02/2024 20h45 741 run_mobile_net_v2.bat

-a—- 11/02/2024 20h45 735 run_modelx4.bat

-a—- 11/02/2024 20h45 736 run_resnet50.bat

-a—- 11/02/2024 20:45 738 run_retinaface.bat

-a—- 11/02/2024 20h45 740 run_segmentation.bat

-a—- 11/02/2024 20:45 734 run_yolovx.bat

Mais essayer l’un des scripts échoue avec la même erreur :

1

2

3

4

5

6

7

8

9

dix

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

PS C:\Utilisateurs\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\..\1×4.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 \Bibliothèque\usr\bin;C:\Users\jaufr\anaconda3\Library\bin;C:\Users\jaufr\anaconda3\Scripts;C:\Users\jaufr\AppData\Local\Programs\Python\Launcher\;C :\Utilisateurs\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\Programmes\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

AVERTISSEMENT : la journalisation avant qu’InitGoogleLogging() ne soit écrite dans STDERR

I20240211 20:47:53.260922 21700 ipu_multi_models.cpp:136]configuration non définie using_onnx_ep, utilisant la valeur par défaut : false

I20240211 20:47:53.260922 21700 ipu_multi_models.cpp:376]config mobile_net_v2 -> model_filter_id:5 thread_num:4 trust_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]utiliser le fil d’exécution global de l’interface graphique

I20240211 20:47:53.486811 21700 onnx_task.hpp:113]en utilisant VitisAI

I20240211 20: 47: 56.181272 21700 ipu_multi_models.cpp: 382]C: \ Users \ xbuild \ Desktop \ xj3 \ vai_rt_win_onnx_ep_all \ onnxrunttime \ onnxruntime \ providers \ Vitisai \ imp \ global_api. [ONNXRuntimeError] : 1 : FAIL : LoadLibrary a échoué avec l’erreur 126 «  » lors de la tentative de chargement de « C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\bin\onnxruntime_vitisai_ep. dll »

PS C:\Utilisateurs\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\..\1×4.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 \Bibliothèque\usr\bin;C:\Users\jaufr\anaconda3\Library\bin;C:\Users\jaufr\anaconda3\Scripts;C:\Users\jaufr\AppData\Local\Programs\Python\Launcher\;C :\Utilisateurs\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\Programmes\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

AVERTISSEMENT : la journalisation avant qu’InitGoogleLogging() ne soit écrite dans STDERR

I20240211 20:52:41.000353 20180 ipu_multi_models.cpp:83]La configuration resnet50 n’est pas définie trust_threshold, en utilisant la valeur par défaut : 0,3

I20240211 20:52:41.010800 20180 ipu_multi_models.cpp:136]configuration non définie using_onnx_ep, en utilisant la valeur par défaut : false

I20240211 20:52:41.010800 20180 ipu_multi_models.cpp:376]config resnet50 -> model_filter_id:2 thread_num:4 trust_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]utiliser le fil d’exécution global de l’interface graphique

I20240211 20:52:41.210458 20180 onnx_task.hpp:113]en utilisant VitisAI

I20240211 20: 52: 41.910542 20180 ipu_multi_models.cpp: 382]C: \ Users \ xbuild \ Desktop \ xj3 \ vai_rt_win_onnx_ep_all \ onnxrunttime \ onnxruntime \ providers \ VITAI \ IMP \::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: onnxruntime \ providers [ONNXRuntimeError] : 1 : FAIL : LoadLibrary a échoué avec l’erreur 126 «  » lors de la tentative de chargement de « C:\Users\jaufr\Downloads\RyzenAI-SW-main\RyzenAI-SW-main\demo\multi-model-exec\bin\onnxruntime_vitisai_ep. dll »

Les programmes Windows ont souvent des messages d’erreur énigmatiques et ne savent pas quoi en faire :

ÉCHEC : LoadLibrary a échoué avec l’erreur 126 «  » lors de la tentative de chargement de « …\multi-model-exec\bin\onnxruntime_vitisai_ep.dll »

Le fichier est là mais le système se plaint de quelque chose pour lequel une recherche sur le Web n’a pas aidé. Je soupçonne une inadéquation entre les versions… Il s’agit probablement de passer quelques heures ou quelques jours à résoudre le problème, et je ne vais pas le faire.

Ainsi, le NPU/IPU du Ryzen 9 7940HS peut être utilisé sous Windows 11, mais ce n’est pas vraiment une tâche simple pour le moment, et je ne suis pas sûr qu’aucun programme destiné aux utilisateurs finaux n’ait encore été publié… Faites-le-moi savoir dans le commentaires si vous en connaissez.

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

YouTube video