| # Copyright 2025 Google LLC | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| # | |
| # Description: | |
| # XNNPACK - optimized floating-point neural network operators library | |
| ## MODULE.bazel | |
| module( | |
| name = "xnnpack", | |
| ) | |
| # Bazel rule definitions | |
| bazel_dep(name = "rules_cc", version = "0.2.17") | |
| bazel_dep(name = "rules_license", version = "1.0.0") | |
| bazel_dep(name = "rules_python", version = "1.7.0") | |
| bazel_dep(name = "rules_shell", version = "0.6.1") | |
| pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") | |
| pip.parse( | |
| hub_name = "pip", | |
| python_version = "3.11", | |
| requirements_lock = "//:requirements_lock.txt", | |
| ) | |
| use_repo(pip, "pip") | |
| # Bazel Skylib. | |
| bazel_dep(name = "bazel_skylib", version = "1.8.2") | |
| # Bazel Platforms | |
| bazel_dep(name = "platforms", version = "1.0.0") | |
| # TODO: some (most? all?) of the http_archive() calls below could become bazel_dep() calls, | |
| # but it would require verifying that the semver provided by the Bazel registry matches the hash | |
| # that we expect in CMake; it's not clear that it is a big win to do so given the modest | |
| # complexity of our deps, so I'm leaving it like this for now to ensure that the Bazel and CMake | |
| # builds are using identical dependencies. | |
| http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") | |
| # LINT.IfChange(googletest) | |
| # Google Test framework, used by most unit-tests. | |
| http_archive( | |
| name = "com_google_googletest", | |
| sha256 = "47925a240670c819eda1df2590a40e58c68133aa88022df5a2b13c84251f62f5", | |
| strip_prefix = "googletest-56efe3983185e3f37e43415d1afa97e3860f187f", | |
| urls = ["https://github.com/google/googletest/archive/56efe3983185e3f37e43415d1afa97e3860f187f.zip"], | |
| ) | |
| # LINT.ThenChange(cmake/DownloadGoogleTest.cmake) | |
| # LINT.IfChange(benchmark) | |
| # Google Benchmark library, used in micro-benchmarks. | |
| http_archive( | |
| name = "com_google_benchmark", | |
| sha256 = "3f676d4adb76e2eb0d84f997d8223705d2c6868eac35c0c65f76e5332a84e838", | |
| strip_prefix = "benchmark-7da00e8f6763d6e8c284d172c9cfcc5ae0ce9b7a", | |
| urls = ["https://github.com/google/benchmark/archive/7da00e8f6763d6e8c284d172c9cfcc5ae0ce9b7a.zip"], | |
| ) | |
| # LINT.ThenChange(cmake/DownloadGoogleBenchmark.cmake) | |
| # LINT.IfChange(FXdiv) | |
| # FXdiv library, used for repeated integer division by the same factor | |
| http_archive( | |
| name = "FXdiv", | |
| sha256 = "ab7dfb08829bee33dca38405d647868fb214ac685e379ec7ef2bebcd234cd44d", | |
| strip_prefix = "FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1", | |
| urls = ["https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.zip"], | |
| ) | |
| # LINT.ThenChange(cmake/DownloadFXdiv.cmake) | |
| # LINT.IfChange(pthreadpool) | |
| # pthreadpool library, used for parallelization | |
| http_archive( | |
| name = "pthreadpool", | |
| sha256 = "f602ab141bdc5d5872a79d6551e9063b5bfa7ad6ad60cceaa641de5c45c86d70", | |
| strip_prefix = "pthreadpool-0e6ca13779b57d397a5ba6bfdcaa8a275bc8ea2e", | |
| urls = ["https://github.com/google/pthreadpool/archive/0e6ca13779b57d397a5ba6bfdcaa8a275bc8ea2e.zip"], | |
| ) | |
| # LINT.ThenChange(cmake/DownloadPThreadPool.cmake) | |
| # LINT.IfChange(cpuinfo) | |
| # cpuinfo library, used for detecting processor characteristics | |
| http_archive( | |
| name = "cpuinfo", | |
| sha256 = "2d74c44c80d9419702ed83bb362ac764e71720093138ef06a34f73de829cce27", | |
| strip_prefix = "cpuinfo-f9a03241f8c3d4ed0c9728f5d70bff873d43d4e0", | |
| urls = [ | |
| "https://github.com/pytorch/cpuinfo/archive/f9a03241f8c3d4ed0c9728f5d70bff873d43d4e0.zip", | |
| ], | |
| ) | |
| # LINT.ThenChange(cmake/DownloadCpuinfo.cmake) | |
| # LINT.IfChange(kleidiai) | |
| # KleidiAI library, used for ARM microkernels. | |
| http_archive( | |
| name = "KleidiAI", | |
| sha256 = "be1d6fb524b2a5e3772b38472a24d660e22b210f6b53b73bd8a5437ac2d882a7", | |
| strip_prefix = "kleidiai-d41219d3db13758074a6440d7b55a87487334c8b", | |
| urls = [ | |
| "https://github.com/ARM-software/kleidiai/archive/d41219d3db13758074a6440d7b55a87487334c8b.zip", | |
| ], | |
| ) | |
| # LINT.ThenChange(cmake/DownloadKleidiAI.cmake) | |
| # Ruy library, used to benchmark against | |
| http_archive( | |
| name = "ruy", | |
| sha256 = "fe8345f521bb378745ebdd0f8c5937414849936851d2ec2609774eb2d7098e54", | |
| strip_prefix = "ruy-9f53ba413e6fc879236dcaa3e008915973d67a4f", | |
| urls = [ | |
| "https://github.com/google/ruy/archive/9f53ba413e6fc879236dcaa3e008915973d67a4f.zip", | |
| ], | |
| ) | |
| http_archive( | |
| name = "slinky", | |
| sha256 = "659253670a5c7983bcebed6f2190b48024465a3beedcfcd7239acc0ae73778fb", | |
| strip_prefix = "slinky-4a497c5bd9e52588a5579d4c7ab3a6983e5a8b1d", | |
| urls = [ | |
| "https://github.com/dsharlet/slinky/archive/4a497c5bd9e52588a5579d4c7ab3a6983e5a8b1d.zip", | |
| ], | |
| ) |