Environment
Hardware: AMD Ryzen AI Max+ 395 (Strix Halo), desktop form factor
NPU (via xrt-smi examine): RyzenAI-npu5 aie2p 6x8
OS (inside container): Ubuntu 24.04.4 LTS
Kernel: 7.0.0-28-generic
GLIBC: 2.39
Container: Podman (privileged) on Ubuntu 24.04 host
Container image: amd-ryzen-ai-1.8-experiment-root (Ubuntu 24.04 base)
Device mapping: --device /dev/accel/accel0:/dev/accel/accel0
Bind mounts:
/home//RAI_1.8_linux_NPU_XRT.zip -> /opt/ryzen-ai/RAI_1.8_linux_NPU_XRT.zip
/home//ryzen_ai-1.8.0.tgz -> /opt/ryzen-ai/ryzen_ai-1.8.0.tgz
XRT / driver stack
Inside the container:
bash
cd /opt/ryzen-ai
unzip RAI_1.8_linux_NPU_XRT.zip
cd RAI_1.8_Linux_NPU_XRT
apt-get update
apt-get install -y
./xrt_202620.2.25.37_24.04-amd64-base.deb
./xrt_202620.2.25.37_24.04-amd64-base-dev.deb
./xrt_202620.2.25.37_24.04-amd64-npu.deb
./xrt_plugin.2.25.260102.56.release_24.04-amd64-amdxdna.deb
source /opt/xilinx/xrt/setup.sh
xrt-smi examine
Relevant packages and libs:
bash
dpkg -l | grep -E 'xrt|amdxdna|xrt_plugin'
ii xrt-base 2.25.37 amd64
ii xrt-base-dev 2.25.37 amd64
ii xrt-npu 2.25.37 amd64
ii xrt_plugin-amdxdna 2.25 amd64
ls -l /opt/xilinx/xrt/lib/libxrt_core.so.2
-> libxrt_core.so.2.25.37
strings /opt/xilinx/xrt/lib/libxrt_core.so.2 | grep get_option_options
_ZN8xrt_core3smi18get_option_optionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
So the symbol xrt_core::smi::get_option_options is present in libxrt_core.so.2.25.37.
Ryzen AI Software 1.8 installation
bash
cd /opt/ryzen-ai
mkdir ryzen_ai-1.8.0
cp ryzen_ai-1.8.0.tgz ryzen_ai-1.8.0/
cd ryzen_ai-1.8.0
tar -xvzf ryzen_ai-1.8.0.tgz
./install_ryzen_ai.sh -a yes -p /opt/ryzen-ai/venv-1.8
source /opt/ryzen-ai/venv-1.8/bin/activate
Environment before quicktest:
bash
source /opt/xilinx/xrt/setup.sh
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:${RYZEN_AI_INSTALLATION_PATH}/onnxruntime/lib/:$LD_LIBRARY_PATH
cd /opt/ryzen-ai/venv-1.8/quicktest
python quicktest.py
Quicktest script (as shipped)
/opt/ryzen-ai/venv-1.8/quicktest/quicktest.py:
python
def get_npu_info():
command = r"lspci -nn"
process = subprocess.Popen(
command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
stdout, stderr = process.communicate()
npu_type = ""
if "1022:17f0" in stdout.decode():
npu_type = "STX/KRK"
return npu_type
npu_type = get_npu_info()
...
providers = ["VitisAIExecutionProvider"]
...
if npu_type == "STX/KRK":
print("Setting environment for STX/KRK")
else:
print("Unrecognized APU type. Exiting.")
exit()
After installing pciutils in the container, lspci works and quicktest correctly prints:
text
Setting environment for STX/KRK
Observed behavior
The Vitis AI EP loads and ONNX Runtime enters AIE compile mode:
text
2026-07-24 01:54:48.555140 compile_pass_manager.cpp:484] Compile mode: aie
2026-07-24 01:54:48.555162 compile_pass_manager.cpp:485] Debug mode: function
2026-07-24 01:54:48.555169 compile_pass_manager.cpp:489] Target architecture: AMD_AIE2P_4x8_CMC_Overlay
...
2026-07-24 01:54:50.605405 compile_pass_manager.cpp:1534] Total device subgraph number 3, CPU subgraph number 1
2026-07-24 01:54:50.605417 compile_pass_manager.cpp:1606] Total device subgraph number 3, DPU subgraph number 1, total number of PDI swaps 0
The failure occurs when creating the runner, trying to open /opt/xilinx/xrt/lib/libxrt_core.so.2:
text
F20260724 01:54:50.697062 runner_requests_queue.cpp:178] -- Error: Failed to create runner: Failed to open library '/opt/xilinx/xrt/lib/libxrt_core.so.2'
/opt/xilinx/xrt/lib/libxrt_core.so.2: undefined symbol: _ZN8xrt_core3smi18get_option_optionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
2026-07-24 01:54:50.697075693 [F:onnxruntime:, runner_requests_queue.cpp:178] -- Error: Failed to create runner: Failed to open library '/opt/xilinx/xrt/lib/libxrt_core.so.2'
/opt/xilinx/xrt/lib/libxrt_core.so.2: undefined symbol: _ZN8xrt_core3smi18get_option_optionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
terminate called after throwing an instance of 'vaip_core::GlogFatalException'
what(): google::LogMessage::Flush()
...
Aborted (core dumped)
ldd on the Vitis AI EP shows no missing libs:
bash
ldd /opt/ryzen-ai/venv-1.8/lib/python3.12/site-packages/onnxruntime/capi/libonnxruntime_vitisai_ep.so | grep "not found" || true
(no output)
And strings confirms the complained‑about symbol is present in libxrt_core.so.2.25.37.
What I expected
Given:
Ryzen AI Software 1.8.0 Linux .tgz
XRT 2.25.37 driver stack from RAI_1.8_linux_NPU_XRT.zip
Supported hardware (Ryzen AI Max+ 395 / RyzenAI-npu5 / aie2p / 6x8)
I expected quicktest.py to compile and run its CNN model on the NPU using VitisAIExecutionProvider without crashing, or at worst to fall back cleanly to CPU if something is unsupported.
Instead, the VAIP compile path completes and then aborts at runner creation with a fatal exception about libxrt_core.so.2 missing a symbol that is actually present.
Reproduction summary
Minimal repro inside the container:
bash
sudo podman run --rm -it
--privileged
--device /dev/accel/accel0:/dev/accel/accel0
-v /home//RAI_1.8_linux_NPU_XRT.zip:/opt/ryzen-ai/RAI_1.8_linux_NPU_XRT.zip
-v /home//ryzen_ai-1.8.0.tgz:/opt/ryzen-ai/ryzen_ai-1.8.0.tgz
amd-ryzen-ai-1.8-experiment-root bash
Inside container:
cd /opt/ryzen-ai
unzip RAI_1.8_linux_NPU_XRT.zip
cd RAI_1.8_Linux_NPU_XRT
apt-get update
apt-get install -y
./xrt_202620.2.25.37_24.04-amd64-base.deb
./xrt_202620.2.25.37_24.04-amd64-base-dev.deb
./xrt_202620.2.25.37_24.04-amd64-npu.deb
./xrt_plugin.2.25.260102.56.release_24.04-amd64-amdxdna.deb
pciutils
source /opt/xilinx/xrt/setup.sh
xrt-smi examine # shows RyzenAI-npu5 aie2p 6x8
cd /opt/ryzen-ai
mkdir ryzen_ai-1.8.0
cp ryzen_ai-1.8.0.tgz ryzen_ai-1.8.0/
cd ryzen_ai-1.8.0
tar -xvzf ryzen_ai-1.8.0.tgz
./install_ryzen_ai.sh -a yes -p /opt/ryzen-ai/venv-1.8
source /opt/ryzen-ai/venv-1.8/bin/activate
source /opt/xilinx/xrt/setup.sh
cd /opt/ryzen-ai/venv-1.8/quicktest
python quicktest.py
Result: crash in runner_requests_queue.cpp as above.
Question / request
This looks like an internal VAIP/XRT runtime ABI issue on Ryzen AI Max+ 395 with XRT 2.25.37 rather than a missing library or misconfiguration (since the symbol is present). Could you:
Confirm whether this Max+ 395 / XRT 2.25.37 / Ryzen AI 1.8 combination is expected to work for VitisAIExecutionProvider under Linux today, and
If so, investigate the runner creation path and symbol resolution for libxrt_core.so.2 on this platform?
I’m happy to provide full logs, container image details, and rerun tests with any patched packages or environment changes you suggest.
Environment
Hardware: AMD Ryzen AI Max+ 395 (Strix Halo), desktop form factor
NPU (via xrt-smi examine): RyzenAI-npu5 aie2p 6x8
OS (inside container): Ubuntu 24.04.4 LTS
Kernel: 7.0.0-28-generic
GLIBC: 2.39
Container: Podman (privileged) on Ubuntu 24.04 host
Container image: amd-ryzen-ai-1.8-experiment-root (Ubuntu 24.04 base)
Device mapping: --device /dev/accel/accel0:/dev/accel/accel0
Bind mounts:
/home//RAI_1.8_linux_NPU_XRT.zip -> /opt/ryzen-ai/RAI_1.8_linux_NPU_XRT.zip
/home//ryzen_ai-1.8.0.tgz -> /opt/ryzen-ai/ryzen_ai-1.8.0.tgz
XRT / driver stack
Inside the container:
bash
cd /opt/ryzen-ai
unzip RAI_1.8_linux_NPU_XRT.zip
cd RAI_1.8_Linux_NPU_XRT
apt-get update
apt-get install -y
./xrt_202620.2.25.37_24.04-amd64-base.deb
./xrt_202620.2.25.37_24.04-amd64-base-dev.deb
./xrt_202620.2.25.37_24.04-amd64-npu.deb
./xrt_plugin.2.25.260102.56.release_24.04-amd64-amdxdna.deb
source /opt/xilinx/xrt/setup.sh
xrt-smi examine
Relevant packages and libs:
bash
dpkg -l | grep -E 'xrt|amdxdna|xrt_plugin'
ii xrt-base 2.25.37 amd64
ii xrt-base-dev 2.25.37 amd64
ii xrt-npu 2.25.37 amd64
ii xrt_plugin-amdxdna 2.25 amd64
ls -l /opt/xilinx/xrt/lib/libxrt_core.so.2
-> libxrt_core.so.2.25.37
strings /opt/xilinx/xrt/lib/libxrt_core.so.2 | grep get_option_options
_ZN8xrt_core3smi18get_option_optionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
So the symbol xrt_core::smi::get_option_options is present in libxrt_core.so.2.25.37.
Ryzen AI Software 1.8 installation
bash
cd /opt/ryzen-ai
mkdir ryzen_ai-1.8.0
cp ryzen_ai-1.8.0.tgz ryzen_ai-1.8.0/
cd ryzen_ai-1.8.0
tar -xvzf ryzen_ai-1.8.0.tgz
./install_ryzen_ai.sh -a yes -p /opt/ryzen-ai/venv-1.8
source /opt/ryzen-ai/venv-1.8/bin/activate
Environment before quicktest:
bash
source /opt/xilinx/xrt/setup.sh
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:${RYZEN_AI_INSTALLATION_PATH}/onnxruntime/lib/:$LD_LIBRARY_PATH
cd /opt/ryzen-ai/venv-1.8/quicktest
python quicktest.py
Quicktest script (as shipped)
/opt/ryzen-ai/venv-1.8/quicktest/quicktest.py:
python
def get_npu_info():
command = r"lspci -nn"
process = subprocess.Popen(
command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
stdout, stderr = process.communicate()
npu_type = get_npu_info()
...
providers = ["VitisAIExecutionProvider"]
...
if npu_type == "STX/KRK":
print("Setting environment for STX/KRK")
else:
print("Unrecognized APU type. Exiting.")
exit()
After installing pciutils in the container, lspci works and quicktest correctly prints:
text
Setting environment for STX/KRK
Observed behavior
The Vitis AI EP loads and ONNX Runtime enters AIE compile mode:
text
2026-07-24 01:54:48.555140 compile_pass_manager.cpp:484] Compile mode: aie
2026-07-24 01:54:48.555162 compile_pass_manager.cpp:485] Debug mode: function
2026-07-24 01:54:48.555169 compile_pass_manager.cpp:489] Target architecture: AMD_AIE2P_4x8_CMC_Overlay
...
2026-07-24 01:54:50.605405 compile_pass_manager.cpp:1534] Total device subgraph number 3, CPU subgraph number 1
2026-07-24 01:54:50.605417 compile_pass_manager.cpp:1606] Total device subgraph number 3, DPU subgraph number 1, total number of PDI swaps 0
The failure occurs when creating the runner, trying to open /opt/xilinx/xrt/lib/libxrt_core.so.2:
text
F20260724 01:54:50.697062 runner_requests_queue.cpp:178] -- Error: Failed to create runner: Failed to open library '/opt/xilinx/xrt/lib/libxrt_core.so.2'
/opt/xilinx/xrt/lib/libxrt_core.so.2: undefined symbol: _ZN8xrt_core3smi18get_option_optionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
2026-07-24 01:54:50.697075693 [F:onnxruntime:, runner_requests_queue.cpp:178] -- Error: Failed to create runner: Failed to open library '/opt/xilinx/xrt/lib/libxrt_core.so.2'
/opt/xilinx/xrt/lib/libxrt_core.so.2: undefined symbol: _ZN8xrt_core3smi18get_option_optionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
terminate called after throwing an instance of 'vaip_core::GlogFatalException'
what(): google::LogMessage::Flush()
...
Aborted (core dumped)
ldd on the Vitis AI EP shows no missing libs:
bash
ldd /opt/ryzen-ai/venv-1.8/lib/python3.12/site-packages/onnxruntime/capi/libonnxruntime_vitisai_ep.so | grep "not found" || true
(no output)
And strings confirms the complained‑about symbol is present in libxrt_core.so.2.25.37.
What I expected
Given:
Ryzen AI Software 1.8.0 Linux .tgz
XRT 2.25.37 driver stack from RAI_1.8_linux_NPU_XRT.zip
Supported hardware (Ryzen AI Max+ 395 / RyzenAI-npu5 / aie2p / 6x8)
I expected quicktest.py to compile and run its CNN model on the NPU using VitisAIExecutionProvider without crashing, or at worst to fall back cleanly to CPU if something is unsupported.
Instead, the VAIP compile path completes and then aborts at runner creation with a fatal exception about libxrt_core.so.2 missing a symbol that is actually present.
Reproduction summary
Minimal repro inside the container:
bash
sudo podman run --rm -it
--privileged
--device /dev/accel/accel0:/dev/accel/accel0
-v /home//RAI_1.8_linux_NPU_XRT.zip:/opt/ryzen-ai/RAI_1.8_linux_NPU_XRT.zip
-v /home//ryzen_ai-1.8.0.tgz:/opt/ryzen-ai/ryzen_ai-1.8.0.tgz
amd-ryzen-ai-1.8-experiment-root bash
Inside container:
cd /opt/ryzen-ai
unzip RAI_1.8_linux_NPU_XRT.zip
cd RAI_1.8_Linux_NPU_XRT
apt-get update
apt-get install -y
./xrt_202620.2.25.37_24.04-amd64-base.deb
./xrt_202620.2.25.37_24.04-amd64-base-dev.deb
./xrt_202620.2.25.37_24.04-amd64-npu.deb
./xrt_plugin.2.25.260102.56.release_24.04-amd64-amdxdna.deb
pciutils
source /opt/xilinx/xrt/setup.sh
xrt-smi examine # shows RyzenAI-npu5 aie2p 6x8
cd /opt/ryzen-ai
mkdir ryzen_ai-1.8.0
cp ryzen_ai-1.8.0.tgz ryzen_ai-1.8.0/
cd ryzen_ai-1.8.0
tar -xvzf ryzen_ai-1.8.0.tgz
./install_ryzen_ai.sh -a yes -p /opt/ryzen-ai/venv-1.8
source /opt/ryzen-ai/venv-1.8/bin/activate
source /opt/xilinx/xrt/setup.sh
cd /opt/ryzen-ai/venv-1.8/quicktest
python quicktest.py
Result: crash in runner_requests_queue.cpp as above.
Question / request
This looks like an internal VAIP/XRT runtime ABI issue on Ryzen AI Max+ 395 with XRT 2.25.37 rather than a missing library or misconfiguration (since the symbol is present). Could you:
Confirm whether this Max+ 395 / XRT 2.25.37 / Ryzen AI 1.8 combination is expected to work for VitisAIExecutionProvider under Linux today, and
If so, investigate the runner creation path and symbol resolution for libxrt_core.so.2 on this platform?
I’m happy to provide full logs, container image details, and rerun tests with any patched packages or environment changes you suggest.