blob: db48f43ad1b6430704aa102327d950123cf322a7 [file] [log] [blame]
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
load(
"//bindings/python:build_defs.oss.bzl",
"NUMPY_DEPS",
"PLATFORM_VULKAN_DEPS",
"PYBIND_COPTS",
"PYBIND_EXTENSION_COPTS",
"PYBIND_FEATURES",
"iree_py_extension",
"iree_py_library",
"iree_py_test",
"pybind_cc_library",
)
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"], # Apache 2.0
)
DRIVER_DEPS = PLATFORM_VULKAN_DEPS + [
"//iree/hal/vulkan:vulkan_driver_module",
"//iree/hal/llvmjit:llvmjit_driver_module",
"//iree/hal/vmla:vmla_driver_module",
]
iree_py_library(
name = "rt",
srcs = [
"__init__.py",
"system_api.py",
],
srcs_version = "PY3",
deps = [
":binding",
"//bindings/python:pathsetup", # build_cleaner: keep
],
)
iree_py_extension(
name = "binding",
srcs = [
"initialize_module.cc",
],
copts = PYBIND_COPTS + PYBIND_EXTENSION_COPTS,
features = PYBIND_FEATURES,
linkstatic = 1,
win_def_file = "export.def",
deps = DRIVER_DEPS + [
":rt_library",
"//bindings/python/pyiree/common",
"//iree/base:initializer",
],
)
pybind_cc_library(
name = "rt_library",
srcs = [
"function_abi.cc",
"hal.cc",
"host_types.cc",
"vm.cc",
],
hdrs = [
"function_abi.h",
"hal.h",
"host_types.h",
"vm.h",
],
deps = [
"//bindings/python/pyiree/common",
"//iree/base:api",
"//iree/base:localfile",
"//iree/base:signature_mangle",
"//iree/hal:api",
"//iree/modules/hal",
"//iree/modules/strings:strings_module",
"//iree/modules/tensorlist:native_module",
"//iree/vm",
"//iree/vm:bytecode_module",
"//iree/vm:invocation",
"//iree/vm:module",
"//iree/vm:ref",
"//iree/vm:variant_list",
"@com_google_absl//absl/container:inlined_vector",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:optional",
"@com_google_absl//absl/types:span",
],
)
iree_py_library(
name = "system_api",
srcs = ["system_api.py"],
srcs_version = "PY3",
deps = [
":binding",
"//bindings/python:pathsetup", # build_cleaner: keep
],
)
iree_py_test(
name = "function_abi_test",
srcs = ["function_abi_test.py"],
python_version = "PY3",
# TODO(laurenzo): Enable once test does not depend on a real vulkan device.
tags = [
"nokokoro",
],
deps = NUMPY_DEPS + [
"//bindings/python:pathsetup", # build_cleaner: keep
"@absl_py//absl/testing:absltest",
"//bindings/python/pyiree/rt",
],
)
iree_py_test(
name = "hal_test",
srcs = ["hal_test.py"],
python_version = "PY3",
deps = NUMPY_DEPS + [
"//bindings/python:pathsetup", # build_cleaner: keep
"@absl_py//absl/testing:absltest",
"//bindings/python/pyiree/rt",
],
)
iree_py_test(
name = "system_api_test",
srcs = ["system_api_test.py"],
python_version = "PY3",
deps = NUMPY_DEPS + [
":system_api",
"//bindings/python:pathsetup", # build_cleaner: keep
"@absl_py//absl/testing:absltest",
"//bindings/python/pyiree/compiler",
"//bindings/python/pyiree/rt",
],
)
iree_py_test(
name = "vm_test",
srcs = ["vm_test.py"],
python_version = "PY3",
deps = NUMPY_DEPS + [
"//bindings/python:pathsetup", # build_cleaner: keep
"@absl_py//absl/testing:absltest",
"//bindings/python/pyiree/compiler",
"//bindings/python/pyiree/rt",
],
)