UM790 Proã«Ryzen AI Softwareã®ãã¼ã¸ã§ã³ï¼ï¼ï¼ãåå°å ¥ããquicktestã®ç¢ºèªã¾ã§ã§ãããã®ã§æé ãããã«ã¡ã¢ãã¦ããããã
Â
å°å ¥ã®æºå
Ryzen AI Softwareã®å°å ¥æ¹æ³ã¯ä¸è¨ã®ãã¼ã¸ã«ããã
Installation Instructions â Ryzen AI Software 1.3 documentation
æºåã¨ãã¦ã¾ãä¸è¨ã®ã½ãããWindows11ç°å¢ã«å°å ¥ããå¿ è¦ãããã
Visual Studio
ãã¡ãã®Microsoftã®ãµã¤ããããã¦ã³ãã¼ãããã
ã¢ã¸ã¥ã¼ã«ã¯ãC++ã«ãããã¹ã¯ãããéçºãã®ã¿ã鏿ããã ãã§ããã
cmake
ãã¡ãã®ãµã¤ããããã¦ã³ãã¼ãããã
Miniconda
Anacondaã¯åãæ±ããé£ããã®ã§ä»åã¯Minicondaãå°å ¥ããã
ãã¡ãã®Minicondaã®ãµã¤ããããã¦ã³ãã¼ãããã¤ã³ã¹ãã¼ã«æ¹æ³ã¯äº¬é½å¤§å¦ã®ãµã¤ããåèã«ãããã¤ã³ã¹ãã¼ã«ãããã·ã¹ãã ç°å¢å¤æ°PATHã«ãã¤ã³ã¹ãã¼ã«å ãã¹å\miniconda3\Scriptsã追å ãã¦ãããã¨ã
Ryzen AI Softwareã®å°å ¥
ä¸è¨ã®AMDã®ãã¼ã¸ãã ryzen-ai-rt-1.3.0-20241204.msi. ããã¦ã³ãã¼ãããã
ãã®ã¤ã³ã¹ãã¼ã«ããã°ã©ã ãå®è¡ããã ãã§ããããã ãæ³¨æãããã¨ãä¸ã¤ã ããããããã©ã«ãã§ã¯ã¤ã³ã¹ãã¼ã«å ãã£ã¬ã¯ããªãâC:\Program Filesâã«ãªã£ã¦ãããããã«ã¤ã³ã¹ãã¼ã«ãã¦ãã¾ãã¨ãã¡ã¤ã«ã¯å ¨ã¦èªã¿è¾¼ã¿å°ç¨ã¨ãªããä¿®æ£ãã§ããªããªããå¾è¿°ããããã¹ãããã°ã©ã ã¯ä¿®æ£ããªãã¨åä½ããªãã®ã§ãã¤ã³ã¹ãã¼ã«å ãã£ã¬ã¯ããªã¯ã©ããå¥ã®ãã£ã¬ã¯ããªãæå®ããå¿ è¦ãããã
ã¤ã³ã¹ãã¼ã«ããã°ã©ã ãå®è¡ããã¨ãåæã«Pyhtonä»®æ³ç°å¢ã¨ãã¦ç°å¢åryzen-ai-1.3.0ã®ç°å¢ã使ãããã
ã·ã¹ãã ç°å¢å¤æ°âRYZEN_AI_INSTALLATION_PATHâã«ã¤ã³ã¹ãã¼ã«ãããã£ã¬ã¯ããªã®ãã¹åãè¨å®ããã¦ãããã¨ãã·ã¹ãã ã®è¨å®ã¢ããªã§ç¢ºèªããã
åä½ç¢ºèª
Anaconda promptãéãã以ä¸ã®ã³ãã³ãã§Pythonã®ç°å¢åryzen-ai-1.3.0ãèµ·åããã
conda activate ryzen-ai-1.3.0
ãã¹ãããã°ã©ã ãå®è¡ããã
cd %RYZEN_AI_INSTALLATION_PATH%/quicktest python quicktest.py
å®è¡ããã¨ä»¥ä¸ã®ãããªã¨ã©ã¼ãåºãã
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83
ãã®ã¨ã©ã¼ã®åå ã¯Googleæ¤ç´¢ããã¨ããã«ãããããã¹ãããã°ã©ã å ã§ãpnputilãã³ãã³ããå®è¡ãã¦çµæãèªã¿åãæã«ã·ããJISã®ã³ã¼ããutf8ã¨æã£ã¦èªã¿è¾¼ããã¨ãåå ã ãå¾ã£ã¦æ£ããã³ã¼ããæå®ãã¦ããã°ããããã¹ãããã°ã©ã quicktest.pyã®è©²å½é¨åã以ä¸ã®ããã«ä¿®æ£ããã
def get_apu_info(): # Run pnputil as a subprocess to enumerate PCI devices command = r'pnputil /enum-devices /bus PCI /deviceids ' process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() # Check for supported Hardware IDs apu_type = '' if 'PCI\\VEN_1022&DEV_1502&REV_00' in stdout.decode("cp932"): apu_type = 'PHX/HPT' if 'PCI\\VEN_1022&DEV_17F0&REV_00' in stdout.decode("cp932"): apu_type = 'STX' if 'PCI\\VEN_1022&DEV_17F0&REV_10' in stdout.decode("cp932"): apu_type = 'STX' if 'PCI\\VEN_1022&DEV_17F0&REV_11' in stdout.decode("cp932"): apu_type = 'STX' if 'PCI\\VEN_1022&DEV_17F0&REV_20' in stdout.decode("cp932"): apu_type = 'KRK' return apu_type
å度ãã¹ãããã°ã©ã ãå®è¡ããã¨ä»¥ä¸ã®ããã«è¡¨ç¤ºãããã
(base) C:\RyzenAI\quicktest>conda activate ryzen-ai-1.3.0 ********************************************************************** ** Visual Studio 2022 Developer Command Prompt v17.12.3 ** Copyright (c) 2022 Microsoft Corporation ********************************************************************** [vcvarsall.bat] Environment initialized for: 'x64' (ryzen-ai-1.3.0) C:\RyzenAI\quicktest>python quicktest.py Setting environment for PHX/HPT XLNX_VART_FIRMWARE= C:\RyzenAI\voe-4.0-win_amd64\xclbins\phoenix\1x4.xclbin NUM_OF_DPU_RUNNERS= 1 XLNX_TARGET_NAME= AMD_AIE2_Nx4_Overlay WARNING: Logging before InitGoogleLogging() is written to STDERR I20241208 05:15:14.117488 756 vitisai_compile_model.cpp:1046] Vitis AI EP Load ONNX Model Success I20241208 05:15:14.117488 756 vitisai_compile_model.cpp:1047] Graph Input Node Name/Shape (1) I20241208 05:15:14.117488 756 vitisai_compile_model.cpp:1051] input : [-1x3x32x32] I20241208 05:15:14.117488 756 vitisai_compile_model.cpp:1057] Graph Output Node Name/Shape (1) I20241208 05:15:14.117488 756 vitisai_compile_model.cpp:1061] output : [-1x10] [Vitis AI EP] No. of Operators : CPU 2 NPU 398 [Vitis AI EP] No. of Subgraphs : NPU 1 Actually running on NPU 1 2024-12-08 05:15:14.2529993 [W:onnxruntime:, session_state.cc:1166 onnxruntime::VerifyEachNodeIsAssignedToAnEp] Some nodes were not assigned to the preferred execution providers which may or may not have an negative impact on performance. e.g. ORT explicitly assigns shape related ops to CPU to improve perf. 2024-12-08 05:15:14.2574963 [W:onnxruntime:, session_state.cc:1168 onnxruntime::VerifyEachNodeIsAssignedToAnEp] Rerunning with verbose output on a non-minimal build will show node assignments. Test Passed
onnxruntimeé¢ä¿ã®ã¯ã¼ãã³ã°ã¯åºããããTest Passedãã¨è¡¨ç¤ºããã¦ããã®ã§OKãNPUã¯æ£ããåä½ãã¦ããããã ã
Â
ã¾ã¨ã
ããããRyzen AI ã®ç°å¢ãæºåã§ããã®ã§ãµã³ãã«ããã°ã©ã ãLLMãNPUã§åããã¦ã¿ããããå½åã®ç®çã¯Pythonç°å¢ã使ãã¦Stable DiffusionãComfyUIãWindows+DirectML+GPUã§åãããã¨ã ãããã¾ã§VRAMä¸è¶³ã§ããããã¦ããLTXVãã¾ãã¯åããã¦ã¿ãããå¤å16GBã®VRAMãããã°åãã¯ãã ãnpakaããã®ä¸è¨ã®è¨äºãåèã«è©¦ãã¦ã¿ãäºå®ã
Â
Â