diff --git a/docs/backend/snapdragon/windows.md b/docs/backend/snapdragon/windows.md deleted file mode 100644 index 710ad8fdf..000000000 --- a/docs/backend/snapdragon/windows.md +++ /dev/null @@ -1,161 +0,0 @@ -## Overview - -The document covers procedures for installing the latest GPU and NPU drivers, and OpenCL and Hexagon SDKs. - - -In order to use Hexagon NPU on Snapdragon Windows devices the underlying HTP Ops libraries (e.g libggml-htp-v73.so) -must be included in the .cat file digitally signed with a trusted certificate. - -This document covers details on how to generate personal certificate files (.pfx) and how to configure the system -to allow for test signatures (aka test-signing). - -## Install the latest Adreno OpenCL SDK - -Either use the trimmed down version (optimized for CI) from - - https://github.com/snapdragon-toolchain/opencl-sdk/releases/download/v2.3.2/adreno-opencl-sdk-v2.3.2-arm64-wos.tar.xz - -Or download the complete official version from - - https://softwarecenter.qualcomm.com/catalog/item/Adreno_OpenCL_SDK?version=2.3.2 - -Unzip/untar the archive into -``` -c:\Qualcomm\OpenCL_SDK\2.3.2 -``` - -## Install the latest Hexagon SDK Community Edition - -Either use the trimmed down version (optimized for CI) from - - https://github.com/snapdragon-toolchain/hexagon-sdk/releases/download/v6.4.0.2/hexagon-sdk-v6.4.0.2-arm64-wos.tar.xz - -Or download the complete official version from - - https://softwarecenter.qualcomm.com/catalog/item/Hexagon_SDK?version=6.4.0.2 - -Unzip/untar the archive into -``` -c:\Qualcomm\Hexagon_SDK\6.4.0.2 -``` - -## Install the latest Adreno GPU driver - -Download the driver from - - https://softwarecenter.qualcomm.com/catalog/item/Windows_Graphics_Driver - -After the automated installation and reboot please make sure that the GPU device shows up in the `Device Manager` (under 'Display Adapters`) - -## Install the latest Qualcomm NPU driver - -Download the driver from - - https://softwarecenter.qualcomm.com/catalog/item/Qualcomm_HND - -After the automated installation and reboot please make sure that the Hexagon NPU device shows up in the `Device Manager` (under `Neural Processors`). - -If the device is not available you can try installing all components (`qcnspmcdm8380`, `qcnspmcdm8380_ext`) manually. -The components are extracted into -``` -c:\QCDrivers\qcnspmcdm... -``` - -## Enable NPU driver test signatures - -Please note that the following steps are required only for the Hexagon NPU. -Adreno GPU backend does not require test signatures. - -### Enable testsigning - -Use `bcdedit` to enable test-signing -``` -> bcdedit /set TESTSIGNING ON -``` -(Secure Boot may need to be disabled for this to work) - -Make sure test-signing is enabled after reboot -``` -> bcdedit /enum -... -testsigning Yes -... -``` -For additional details see Microsoft guide at - - https://learn.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option - -### Create personal certificate - -The tools required for this procedure are available as part of Windows SDK and Windows Driver Kit which should be -installed as part of the MS Visual Studio. -They are typically located at -``` -c:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0 -``` -(replace 10.0.26100.0 with correct version). - -To create personal self-signed certificate run the following commands (either from cmd or power-shell): -``` -> cd c:\Users\MyUser -> mkdir Certs -> cd Certs -> 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.cer -> pvk2pfx.exe -pvk ggml-htp-v1.pvk -spc ggml-htp-v1.cer -pfx ggml-htp-v1.pfx -``` -(replace `MyUser` with your username). - -Add this certificate to `Trusted Root Certification Authorities` and `Trusted Publishers` stores. -This can be done using `certlm` Certificate Manager tool. -Right click on the certificate store, select `All Tasks -> Import` and follow the prompts to import the certificate from the -PFX file you created above. - -For additional details see Microsoft guide at - - https://learn.microsoft.com/en-us/windows-hardware/drivers/install/introduction-to-test-signing - -Make sure to save the PFX file, you will need it for the build procedures. -Please note that the same certificate can be used for signing any number of builds. - -## Build Hexagon backend with signed HTP ops libraries - -The overall Hexagon backend build procedure for Windows on Snapdragon is the same as for other platforms. -However, additional settings are required for generating and signing HTP Ops libraries. -``` -> $env:OPENCL_SDK_ROOT="C:\Qualcomm\OpenCL_SDK\2.3.2" -> $env:HEXAGON_SDK_ROOT="C:\Qualcomm\Hexagon_SDK\6.4.0.2" -> $env:HEXAGON_TOOLS_ROOT="C:\Qualcomm\Hexagon_SDK\6.4.0.2\tools\HEXAGON_Tools\19.0.04" -> $env:HEXAGON_HTP_CERT="c:\Users\MyUsers\Certs\ggml-htp-v1.pfx" -> $env:WINDOWS_SDK_BIN="C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\arm64" - -> cmake --preset arm64-windows-snapdragon -B build-wos -... -> cmake --install build-wos --prefix pkg-snapdragon -``` - -Once the build is complete HTP ops libraries will be installed like this -``` -> dir pkg-snapdragon/lib -... --a---- 1/22/2026 6:01 PM 187656 libggml-htp-v73.so --a---- 1/22/2026 6:01 PM 191752 libggml-htp-v75.so --a---- 1/22/2026 6:01 PM 187656 libggml-htp-v79.so --a---- 1/22/2026 6:01 PM 187656 libggml-htp-v81.so --a---- 1/22/2026 6:01 PM 4139 libggml-htp.cat -``` - -The .cat file, the signature and proper certicate installation can be verified with - -``` -> signtool.exe verify /v /pa .\pkg-snapdragon\lib\libggml-htp.cat -Verifying: .\pkg-snapdragon\lib\libggml-htp.cat - -Signature Index: 0 (Primary Signature) -Hash of file (sha256): 9820C664DA59D5EAE31DBB664127FCDAEF59CDC31502496BC567544EC2F401CF - -Signing Certificate Chain: - Issued to: GGML.HTP.v1 -... -Successfully verified: .\pkg-snapdragon\lib\libggml-htp.cat -... -```