blob: 6ca94d4f681aa552712c24610b3d1b5b04ffa894 [file] [edit]
# Copyright 2024 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
workspace(name = "cros_tflite")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
# Update `bazel_external_uris` in ebuild as well when upgrading TensorFlow, and
# all the required dependencies need to be upload to our mirror first.
TENSORFLOW_VERSION = "2.17.0"
# Use the provided tensorflow repo if it exists. Currently the ebuild will
# download and unpack tensorflow for us.
# TODO: b/314854484 - Move the tensorflow building logic and patch management
# from ebuild to here.
maybe(
http_archive,
name = "org_tensorflow",
patch_args = ["-p1"],
patch_tool = "patch",
patches = [
"//patch:0001-bazel-toolchains.patch",
"//patch:0002-ashmem-create.patch",
"//patch:0003-nnapi-delegate.patch",
"//patch:0004-gpu-delegate.patch",
"//patch:0005-nnapi-loading-errors.patch",
"//patch:0006-remove-llvm-repo.patch",
"//patch:0007-Convolution2DTransposeBias.patch",
"//patch:0008-nnapi-Convolution2DTransposeBias.patch",
"//patch:0009-ruy-amd-cpu.patch",
"//patch:0010-memory-usage-monitor.patch",
"//patch:0011-absl-log.patch",
"//patch:0012-absl-base-prefetch.patch",
"//patch:0013-cl-khr-command-buffer.patch",
"//patch:0014-xnnpack-disable-latest-ops.patch",
"//patch:0015-cl-fast-relaxed-math.patch",
],
sha256 = "9cc4d5773b8ee910079baaecb4086d0c28939f024dd74b33fc5e64779b6533dc",
strip_prefix = "tensorflow-{}".format(TENSORFLOW_VERSION),
url = "https://github.com/tensorflow/tensorflow/archive/v{}.tar.gz".format(TENSORFLOW_VERSION),
)
# Ensure that we have farmhash available under the name @farmhash_archive.
load("@org_tensorflow//third_party/farmhash:workspace.bzl", farmhash = "repo")
farmhash()
# Python is required before initializing TensorFlow.
http_archive(
name = "rules_python",
sha256 = "9d04041ac92a0985e344235f5d946f71ac543f1b1565f2cdbc9a2aaee8adf55b",
strip_prefix = "rules_python-0.26.0",
url = "https://github.com/bazelbuild/rules_python/releases/download/0.26.0/rules_python-0.26.0.tar.gz",
)
load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains")
py_repositories()
load(
"@org_tensorflow//tensorflow/tools/toolchains/python:python_repo.bzl",
"python_repository",
)
python_repository(name = "python_version_repo")
load("@python_version_repo//:py_version.bzl", "HERMETIC_PYTHON_VERSION")
python_register_toolchains(
name = "python",
ignore_root_user_error = True,
python_version = HERMETIC_PYTHON_VERSION,
)
# Initialize TensorFlow and its external dependencies.
load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3")
tf_workspace3()
load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2")
tf_workspace2()
load("@org_tensorflow//tensorflow:workspace1.bzl", "tf_workspace1")
tf_workspace1()
load("@org_tensorflow//tensorflow:workspace0.bzl", "tf_workspace0")
tf_workspace0()
# Intel OpenVINO Delegate dependencies
load("@cros_tflite//delegate/intel_openvino:openvino.bzl", "openvino_repository")
openvino_repository(name = "intel_openvino")