| # Copyright 2019 The IREE Authors | |
| # | |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| # See https://llvm.org/LICENSE.txt for license information. | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| load("//build_tools/bazel:build_defs.oss.bzl", "iree_cmake_extra_content", "iree_runtime_cc_binary") | |
| load("//build_tools/bazel:iree_bytecode_module.bzl", "iree_bytecode_module") | |
| load("//build_tools/bazel:native_binary.bzl", "native_test") | |
| package( | |
| default_visibility = ["//visibility:public"], | |
| features = ["layering_check"], | |
| licenses = ["notice"], # Apache 2.0 | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| if(IREE_HAL_DRIVER_LOCAL_SYNC AND IREE_HAL_EXECUTABLE_LOADER_VMVX_MODULE AND | |
| (IREE_TARGET_BACKEND_VMVX OR IREE_HOST_BIN_DIR) AND NOT IREE_BYTECODE_MODULE_FORCE_LLVM_SYSTEM_LINKER) | |
| """, | |
| inline = True, | |
| ) | |
| iree_runtime_cc_binary( | |
| name = "simple_embedding_vmvx_sync", | |
| srcs = [ | |
| "device_vmvx_sync.c", | |
| "simple_embedding.c", | |
| ], | |
| deps = [ | |
| ":simple_embedding_test_bytecode_module_vmvx_c", | |
| "//runtime/src/iree/base", | |
| "//runtime/src/iree/hal", | |
| "//runtime/src/iree/hal/drivers/local_sync:sync_driver", | |
| "//runtime/src/iree/hal/local", | |
| "//runtime/src/iree/hal/local/loaders:vmvx_module_loader", | |
| "//runtime/src/iree/modules/hal", | |
| "//runtime/src/iree/vm", | |
| "//runtime/src/iree/vm/bytecode:module", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_vmvx", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_vmvx", | |
| flags = [ | |
| "--iree-hal-target-backends=vmvx", | |
| ], | |
| ) | |
| native_test( | |
| name = "simple_embedding_vmvx_sync_test", | |
| src = ":simple_embedding_vmvx_sync", | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| endif() | |
| """, | |
| inline = True, | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| iree_compiler_targeting_iree_arch(_IREE_COMPILER_TARGETING_ARM_32 "arm_32") | |
| iree_compiler_targeting_iree_arch(_IREE_COMPILER_TARGETING_ARM_64 "arm_64") | |
| iree_compiler_targeting_iree_arch(_IREE_COMPILER_TARGETING_RISCV_32 "riscv_32") | |
| iree_compiler_targeting_iree_arch(_IREE_COMPILER_TARGETING_RISCV_64 "riscv_64") | |
| iree_compiler_targeting_iree_arch(_IREE_COMPILER_TARGETING_X86_64 "x86_64") | |
| if(IREE_HAL_DRIVER_LOCAL_SYNC AND | |
| IREE_HAL_EXECUTABLE_LOADER_EMBEDDED_ELF AND | |
| NOT IREE_BYTECODE_MODULE_FORCE_LLVM_SYSTEM_LINKER AND | |
| ((IREE_TARGET_BACKEND_LLVM_CPU AND | |
| _IREE_COMPILER_TARGETING_ARM_32 AND | |
| _IREE_COMPILER_TARGETING_ARM_64 AND | |
| _IREE_COMPILER_TARGETING_RISCV_32 AND | |
| _IREE_COMPILER_TARGETING_RISCV_64 AND | |
| _IREE_COMPILER_TARGETING_X86_64) OR IREE_HOST_BIN_DIR)) | |
| """, | |
| inline = True, | |
| ) | |
| iree_runtime_cc_binary( | |
| name = "simple_embedding_embedded_sync", | |
| srcs = [ | |
| "device_embedded_sync.c", | |
| "simple_embedding.c", | |
| ], | |
| deps = [ | |
| ":simple_embedding_test_bytecode_module_cpu_arm_32_c", | |
| ":simple_embedding_test_bytecode_module_cpu_arm_64_c", | |
| ":simple_embedding_test_bytecode_module_cpu_riscv_32_c", | |
| ":simple_embedding_test_bytecode_module_cpu_riscv_64_c", | |
| ":simple_embedding_test_bytecode_module_cpu_x86_64_c", | |
| "//runtime/src/iree/base", | |
| "//runtime/src/iree/hal", | |
| "//runtime/src/iree/hal/drivers/local_sync:sync_driver", | |
| "//runtime/src/iree/hal/local", | |
| "//runtime/src/iree/hal/local/loaders:embedded_elf_loader", | |
| "//runtime/src/iree/modules/hal", | |
| "//runtime/src/iree/vm", | |
| "//runtime/src/iree/vm/bytecode:module", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_cpu_x86_64", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_cpu_x86_64", | |
| flags = [ | |
| "--iree-hal-target-backends=llvm-cpu", | |
| "--iree-llvmcpu-target-triple=x86_64-pc-linux-elf", | |
| "--iree-llvmcpu-debug-symbols=false", | |
| "--iree-vm-bytecode-module-strip-source-map=true", | |
| "--iree-vm-emit-polyglot-zip=false", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_cpu_riscv_32", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_cpu_riscv_32", | |
| flags = [ | |
| "--iree-hal-target-backends=llvm-cpu", | |
| "--iree-llvmcpu-target-triple=riscv32-pc-linux-elf", | |
| "--iree-llvmcpu-target-cpu-features=+m,+f", | |
| "--iree-llvmcpu-target-abi=ilp32", | |
| "--iree-llvmcpu-debug-symbols=false", | |
| "--iree-vm-bytecode-module-strip-source-map=true", | |
| "--iree-vm-emit-polyglot-zip=false", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_cpu_riscv_64", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_cpu_riscv_64", | |
| flags = [ | |
| "--iree-hal-target-backends=llvm-cpu", | |
| "--iree-llvmcpu-target-triple=riscv64-pc-linux-elf", | |
| "--iree-llvmcpu-target-cpu-features=+m,+a,+f,+d,+c", | |
| "--iree-llvmcpu-target-abi=lp64d", | |
| "--iree-llvmcpu-debug-symbols=false", | |
| "--iree-vm-bytecode-module-strip-source-map=true", | |
| "--iree-vm-emit-polyglot-zip=false", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_cpu_arm_32", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_cpu_arm_32", | |
| flags = [ | |
| "--iree-hal-target-backends=llvm-cpu", | |
| "--iree-llvmcpu-target-triple=armv7a-pc-linux-elf", | |
| "--iree-llvmcpu-target-float-abi=hard", | |
| "--iree-llvmcpu-debug-symbols=false", | |
| "--iree-vm-bytecode-module-strip-source-map=true", | |
| "--iree-vm-emit-polyglot-zip=false", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_cpu_arm_64", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_cpu_arm_64", | |
| flags = [ | |
| "--iree-hal-target-backends=llvm-cpu", | |
| "--iree-llvmcpu-target-triple=aarch64-pc-linux-elf", | |
| "--iree-llvmcpu-debug-symbols=false", | |
| "--iree-vm-bytecode-module-strip-source-map=true", | |
| "--iree-vm-emit-polyglot-zip=false", | |
| ], | |
| ) | |
| native_test( | |
| name = "simple_embedding_embedded_sync_test", | |
| src = ":simple_embedding_embedded_sync", | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| if(IREE_HAL_DRIVER_LOCAL_TASK AND IREE_HAL_EXECUTABLE_LOADER_EMBEDDED_ELF) | |
| """, | |
| inline = True, | |
| ) | |
| iree_runtime_cc_binary( | |
| name = "simple_embedding_embedded", | |
| srcs = [ | |
| "device_embedded.c", | |
| "simple_embedding.c", | |
| ], | |
| deps = [ | |
| ":simple_embedding_test_bytecode_module_cpu_arm_64_c", | |
| ":simple_embedding_test_bytecode_module_cpu_riscv_32_c", | |
| ":simple_embedding_test_bytecode_module_cpu_riscv_64_c", | |
| ":simple_embedding_test_bytecode_module_cpu_x86_64_c", | |
| "//runtime/src/iree/base", | |
| "//runtime/src/iree/hal", | |
| "//runtime/src/iree/hal/drivers/local_task:task_driver", | |
| "//runtime/src/iree/hal/local", | |
| "//runtime/src/iree/hal/local/loaders:embedded_elf_loader", | |
| "//runtime/src/iree/modules/hal", | |
| "//runtime/src/iree/task:api", | |
| "//runtime/src/iree/vm", | |
| "//runtime/src/iree/vm/bytecode:module", | |
| ], | |
| ) | |
| native_test( | |
| name = "simple_embedding_embedded_test", | |
| src = ":simple_embedding_embedded", | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| endif() | |
| """, | |
| inline = True, | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| endif() | |
| if(IREE_HAL_DRIVER_VULKAN AND | |
| (IREE_TARGET_BACKEND_VULKAN_SPIRV OR IREE_HOST_BIN_DIR)) | |
| """, | |
| inline = True, | |
| ) | |
| iree_runtime_cc_binary( | |
| name = "simple_embedding_vulkan", | |
| srcs = [ | |
| "device_vulkan.c", | |
| "simple_embedding.c", | |
| ], | |
| deps = [ | |
| ":simple_embedding_test_bytecode_module_vulkan_c", | |
| "//runtime/src/iree/base", | |
| "//runtime/src/iree/hal", | |
| "//runtime/src/iree/hal/drivers/vulkan/registration", | |
| "//runtime/src/iree/modules/hal", | |
| "//runtime/src/iree/vm", | |
| "//runtime/src/iree/vm/bytecode:module", | |
| ], | |
| ) | |
| iree_bytecode_module( | |
| name = "simple_embedding_test_bytecode_module_vulkan", | |
| src = "simple_embedding_test.mlir", | |
| c_identifier = "iree_samples_simple_embedding_test_module_vulkan", | |
| flags = [ | |
| "--iree-hal-target-backends=vulkan-spirv", | |
| "--iree-llvmcpu-debug-symbols=false", | |
| ], | |
| ) | |
| native_test( | |
| name = "simple_embedding_vulkan_test", | |
| src = ":simple_embedding_vulkan", | |
| tags = [ | |
| "driver=vulkan", | |
| ], | |
| ) | |
| iree_cmake_extra_content( | |
| content = """ | |
| endif() | |
| """, | |
| inline = True, | |
| ) | |
| # Disabled because CUDA is not universally available and Bazel does not | |
| # support configurability in a reasonable or useful way. | |
| # iree_cmake_extra_content( | |
| # content = """ | |
| # if(IREE_HAL_DRIVER_CUDA AND | |
| # (IREE_TARGET_BACKEND_CUDA OR IREE_HOST_BIN_DIR)) | |
| # """, | |
| # inline = True, | |
| # ) | |
| # iree_runtime_cc_binary( | |
| # name = "simple_embedding_cuda", | |
| # srcs = [ | |
| # "device_cuda.c", | |
| # "simple_embedding.c", | |
| # ], | |
| # deps = [ | |
| # ":simple_embedding_test_bytecode_module_cuda_c", | |
| # "//runtime/src/iree/base", | |
| # "//runtime/src/iree/hal", | |
| # "//runtime/src/iree/hal/drivers/cuda/registration", | |
| # "//runtime/src/iree/modules/hal", | |
| # "//runtime/src/iree/vm", | |
| # "//runtime/src/iree/vm/bytecode:module", | |
| # ], | |
| # ) | |
| # iree_bytecode_module( | |
| # name = "simple_embedding_test_bytecode_module_cuda", | |
| # src = "simple_embedding_test.mlir", | |
| # c_identifier = "iree_samples_simple_embedding_test_module_cuda", | |
| # flags = [ | |
| # "--iree-hal-target-backends=cuda", | |
| # "--iree-llvmcpu-debug-symbols=false", | |
| # ], | |
| # ) | |
| # # native_test( | |
| # # name = "simple_embedding_cuda_test", | |
| # # src = ":simple_embedding_cuda", | |
| # # tags = [ | |
| # # "driver=cuda", | |
| # # ], | |
| # # ) | |
| # iree_cmake_extra_content( | |
| # content = """ | |
| # iree_native_test( | |
| # NAME | |
| # "simple_embedding_cuda_test" | |
| # LABELS | |
| # "driver=cuda" | |
| # SRC | |
| # ::simple_embedding_cuda | |
| # ) | |
| # endif() | |
| # """, | |
| # inline = True, | |
| # ) |