Illustration representing the XNNPACK source download process

Searching for "XNNPACK download" mostly turns up two kinds of results: the official source repository, and a long tail of mirror sites that repackage the same code with extra wrappers around it. Since XNNPACK is a library you compile yourself, there's no installer to trust — the source archive itself is the download, so it's worth being deliberate about where it comes from.

What you're actually downloading

The XNNPACK download is a source archive, not a compiled program. Inside, you'll find C source files organized by operator type, a set of build scripts for CMake and Bazel, third-party dependency references, and the license file. There's no executable to double-click — everything in the archive exists to be compiled into a library your own project links against.

Where to get it

Use the Download section on this site's homepage, which points directly at the official source archive. If you'd rather work with Git history and branches instead of a static snapshot, cloning the official repository directly is the more flexible option, since it lets you track specific commits over time.

Checking what you got

After extracting the archive, a few quick checks confirm you have a complete, unmodified source tree:

  • A CMakeLists.txt file should sit at the root of the extracted folder
  • A LICENSE file should be present and readable
  • The src/ directory should contain a large number of operator and micro-kernel source files, not just a handful
  • A third_party/ or equivalent submodule reference folder should exist, even if some submodules need a separate fetch step

If any of these are missing or the archive is unusually small, re-download from the source rather than trying to patch a partial copy.

Archive vs. Git clone

A ZIP archive gives you a single point-in-time snapshot, which is fine for most builds. A Git clone is better if you plan to track upstream changes, bisect a regression, or contribute back — but it does require Git and a bit more disk space for history.

Next step: building it

Once you have a verified source tree, the next step is compiling it for your target platform. Our Windows setup guide and Linux build guide walk through the CMake configuration in detail.