# Tutorial: Running QNN HTP on x86 Using QEMU Emulation Warning **Hexagon QEMU is no longer packaged in recent Hexagon SDK releases.** This backend is only available to users with a pre-installed copy of **Hexagon SDK v5.0.0.0**. Other SDK versions are not guaranteed to work. Hexagon QEMU will be reintroduced at a later date. This backend is provided as **Beta quality** with the following limitations: - VTCM size is restricted to **4 MB** on the QEMU platform. - Emulation is provided for **HTP v68 only**. - The following QNN APIs are **not supported**: `QnnMem`, `QnnSignal`, custom op package registration. The QNN HTP QEMU backend allows running HTP inference on a Linux x86\_64 host using Hexagon QEMU emulation — no physical automotive hardware required. - [Prerequisites](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#prerequisites) - [Setup and Execution](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#setup-and-execution) - [Convert Models](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#convert-models) - [Execute Neural Network using HTP QEMU](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#execute-neural-network-using-htp-qemu) - [Precision](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#precision) - [Limitations](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#limitations) ## [Prerequisites](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#id1) - Hexagon SDK **v5.0.0.0** installed (available from the [Qualcomm Hexagon SDK tools page](https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools)). - QNN SDK environment set up per the Setup guide. ## [Setup and Execution](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#id2) 1. Source your Hexagon SDK: source /setup_sdk_env.source Copy to clipboard The SDK setup script exports several environment variables referenced in the steps below. 2. Add the Hexagon tools bin location to your `PATH`: export PATH=${DEFAULT_HEXAGON_TOOLS_ROOT}/Tools/bin/:${PATH} Copy to clipboard 3. Change to your QNN SDK root directory: cd ${QNN_SDK_ROOT} Copy to clipboard 4. Source the QNN SDK: source ./bin/envsetup.sh Copy to clipboard 5. Provide the path to the QEMU driver: export QNN_DSP_EMULATOR_DRIVER=${QNN_SDK_ROOT}/lib/hexagon-v68/unsigned/ Copy to clipboard 6. Provide arguments to QEMU: export QNN_HTP_QEMU_ARGS='-display none -monitor none -m 8G -no-reboot \ -M V68N_1024 \ -kernel ${HEXAGON_SDK_ROOT}/rtos/qurt/computev68/sdksim_bin/runelf.pbn \ -append "${HEXAGON_SDK_ROOT}/libs/run_main_on_hexagon/ship/hexagon_${DEFAULT_TOOLS_VARIANT}_v68/run_main_on_hexagon_sim \ -- ${QNN_DSP_EMULATOR_DRIVER}/libQnnHtpV68QemuDriver.so ${HTP_EMU_PIPE_FD}" \ -cpu v67,sched-limit=on,usefs=${DEFAULT_HEXAGON_TOOLS_ROOT}/Tools/target/hexagon/lib/v68/G0/pic/' Copy to clipboard ## [Convert Models](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#id3) Follow Tutorial #2: Running QNN HTP on SA-series up to the point where you have a `*.serialized.bin` context binary. For `qnn-model-lib-generator`, only the x86 libraries are needed. Use the `-t` option as needed (e.g., if NDK is not available). ## [Execute Neural Network using HTP QEMU](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#id4) Once you have prepared a model following the Convert Models steps above: qnn-net-run --backend ${QNN_SDK_ROOT}/lib/x86_64-linux-clang/libQnnHtpQemu.so \ --input_list \ --retrieve_context \ --profiling_level Copy to clipboard ## [Precision](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#id5) HTP QEMU supports inference with quantized 8-bit networks. ## [Limitations](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_auto_qemu.html#id6) - VTCM size is restricted to **4 MB** on the QEMU platform. - Emulation is provided for **HTP v68 only**. - The following QNN APIs are **not supported**: - `QnnMem` - `QnnSignal` - Custom op package registration Last Published: Aug 06, 2026 [Previous Topic Tutorial: Running QNN on SA8797 QC Linux PVM (HTP and LPAI Backends)](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/htp_auto_qclinux.md) [Next Topic Tutorial: Running QNN HTP with Custom Ops on SA-series](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/htp_auto_tutorial_3.md)