CoolFace
Modelpublic

Felipe97/llama-cpp-compiled

sourceHugging Faceupdated 4d agoView on Hugging Face
0likes1.1kdownloads
windows.md189 linesDownload Raw Back to snapdragon
1# Snapdragon-based Windows devices2 3## Tool Dependencies4 5Native Windows 11 arm64 builds have the following tool dependencies:6- MS Visual Studio 2026 (Community Edition or Pro)7  - MSVC arm64 standard and runtime libraries8  - UCRT and Driver Kit9- LLVM core libraries and Clang compiler (winget)10- CMake, Git, Python (winget)11- Hexagon SDK Community Edition 6.6 or later (see below)12- OpenCL SDK 2.3 or later (see below)13 14Note: The rest of the **Windows** build process assumes that you're running natively in Powershell.15 16## Overview17 18The document covers procedures for installing the latest GPU and NPU drivers, and OpenCL and Hexagon SDKs.19 20 21In order to use Hexagon NPU on Snapdragon Windows devices the underlying HTP Ops libraries (e.g libggml-htp-v73.so)22must be included in the .cat file digitally signed with a trusted certificate.23 24This document covers details on how to generate personal certificate files (.pfx) and how to configure the system25to allow for test signatures (aka test-signing).26 27## Install Windows SDKs28 29The recommended method is `setup-sdk.py`:30 31```32> python scripts\snapdragon\setup-sdk.py --list-sdk-releases33> python scripts\snapdragon\setup-sdk.py --hexagon --opencl34```35 36It installs the selected SDKs under `C:\Qualcomm` and sets their corresponding environment variables for the current user. Start a new terminal after it completes; native Windows builds check all SDK paths before CMake runs.37 38Select the SDKs to install with `--hexagon` and `--opencl`; use both to prepare a dual-backend build. To select a different available version, pass it to the SDK option, for example `--hexagon 6.4.0.2`. SDK versions install side by side, so you can switch versions without deleting an existing installation. Use `--force` to reinstall the selected SDKs. Use a new CMake build directory after each switch because CMake caches the SDK paths.39 40Either use the trimmed down version (optimized for CI) from41 42    https://github.com/snapdragon-toolchain/opencl-sdk/releases/download/v2.3.2/adreno-opencl-sdk-v2.3.2-arm64-wos.tar.xz43 44Or download the complete official version from45 46    https://softwarecenter.qualcomm.com/catalog/item/Adreno_OpenCL_SDK?version=2.3.247 48Unzip/untar the archive into49```50c:\Qualcomm\OpenCL_SDK\2.3.251```52 53## Install the latest Hexagon SDK Community Edition54 55Either use the trimmed down version (optimized for CI) from56 57    https://github.com/snapdragon-toolchain/hexagon-sdk/releases/download/v6.6.0.0/hexagon-sdk-v6.6.0.0-arm64-wos.tar.xz58 59Or download the complete official version from60 61    https://softwarecenter.qualcomm.com/catalog/item/Hexagon_SDK?version=6.6.0.062 63Unzip/untar the archive into64```65c:\Qualcomm\Hexagon_SDK\6.6.0.066```67 68## Install the latest Adreno GPU driver69 70Download the driver from71 72    https://softwarecenter.qualcomm.com/catalog/item/Windows_Graphics_Driver73 74After the automated installation and reboot please make sure that the GPU device shows up in the `Device Manager` (under 'Display Adapters`)75 76## Install the latest Qualcomm NPU driver77 78Download the driver from79 80    https://softwarecenter.qualcomm.com/catalog/item/Qualcomm_HND81 82After the automated installation and reboot please make sure that the Hexagon NPU device shows up in the `Device Manager`83(under `Neural Processors`).84 85If the device is not available you can try installing all components (`qcnspmcdm8380`, `qcnspmcdm8380_ext`) manually.86The components are extracted into87```88c:\QCDrivers\qcnspmcdm...89```90 91## Enable NPU driver test signatures92 93Please note that the following steps are required only for the Hexagon NPU.94Adreno GPU backend does not require test signatures.95 96### Enable testsigning97 98Use `bcdedit` to enable test-signing99```100> bcdedit /set TESTSIGNING ON101```102(Secure Boot may need to be disabled for this to work)103 104Make sure test-signing is enabled after reboot105```106> bcdedit /enum107...108testsigning             Yes109...110```111For additional details see Microsoft guide at112 113   https://learn.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option114 115### Create personal certificate116 117The tools required for this procedure are available as part of Windows SDK and Windows Driver Kit which should be118installed as part of the MS Visual Studio.119They are typically located at120```121c:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0122```123(replace 10.0.26100.0 with correct version).124 125To create personal self-signed certificate run the following commands (either from cmd or power-shell):126```127> cd c:\Users\MyUser128> mkdir Certs129> cd Certs130> makecert -r -pe -ss PrivateCertStore -n CN=GGML.HTP.v1 -eku 1.3.6.1.5.5.7.3.3 -sv ggml-htp-v1.pvk ggml-htp-v1.cer131> pvk2pfx.exe -pvk ggml-htp-v1.pvk -spc ggml-htp-v1.cer -pfx ggml-htp-v1.pfx132```133(replace `MyUser` with your username).134 135Add this certificate to `Trusted Root Certification Authorities` and `Trusted Publishers` stores.136This can be done using `certlm` Certificate Manager tool.137Right click on the certificate store, select `All Tasks -> Import` and follow the prompts to import the certificate from the138PFX file you created above.139 140For additional details see Microsoft guide at141 142    https://learn.microsoft.com/en-us/windows-hardware/drivers/install/introduction-to-test-signing143 144Make sure to save the PFX file, you will need it for the build procedures.145Please note that the same certificate can be used for signing any number of builds.146 147## Build Hexagon backend with signed HTP ops libraries148 149The overall Hexagon backend build procedure for Windows on Snapdragon is the same as for other platforms.150However, additional settings are required for generating and signing HTP Ops libraries.151```152> $env:OPENCL_SDK_ROOT="C:\Qualcomm\OpenCL_SDK\2.3.2"153> $env:HEXAGON_SDK_ROOT="C:\Qualcomm\Hexagon_SDK\6.6.0.0"154> $env:HEXAGON_TOOLS_ROOT="C:\Qualcomm\Hexagon_SDK\6.6.0.0\tools\HEXAGON_Tools\19.0.07"155> $env:HEXAGON_HTP_CERT="c:\Users\MyUsers\Certs\ggml-htp-v1.pfx"156> $env:WINDOWS_SDK_BIN="C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0"157 158> cmake --preset arm64-windows-snapdragon-release -B build-wos159...160> cmake --install build-wos --prefix pkg-wos161```162 163Once the build is complete HTP ops libraries will be installed like this164```165> dir pkg-wos/lib166...167-a----         1/22/2026   6:01 PM         187656 libggml-htp-v73.so168-a----         1/22/2026   6:01 PM         191752 libggml-htp-v75.so169-a----         1/22/2026   6:01 PM         187656 libggml-htp-v79.so170-a----         1/22/2026   6:01 PM         187656 libggml-htp-v81.so171-a----         1/22/2026   6:01 PM           4139 libggml-htp.cat172```173 174The .cat file, the signature and proper certificate installation can be verified with175 176```177> signtool.exe verify /v /pa .\pkg-wos\lib\libggml-htp.cat178Verifying: .\pkg-wos\lib\libggml-htp.cat179 180Signature Index: 0 (Primary Signature)181Hash of file (sha256): 9820C664DA59D5EAE31DBB664127FCDAEF59CDC31502496BC567544EC2F401CF182 183Signing Certificate Chain:184        Issued to: GGML.HTP.v1185...186Successfully verified: .\pkg-wos\lib\libggml-htp.cat187...188```189