| # Copyright 2020 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. |
| |
| # Tests for end-to-end IREE support starting from the XLA HLO dialect. |
| |
| load("//iree:lit_test.bzl", "iree_lit_test_suite") |
| |
| package( |
| default_visibility = ["//visibility:public"], |
| licenses = ["notice"], # Apache 2.0 |
| ) |
| |
| iree_lit_test_suite( |
| name = "lit", |
| srcs = glob( |
| ["*.cpp"], |
| exclude = ["Bench*"], |
| ), |
| data = [ |
| ":runtime-support.so", |
| # Tests. |
| ":test-dot-prod", |
| ":test-mnist-jit", |
| ":test-simple-jit", |
| ":test-simple-mlir", |
| # FileChecker. |
| "//iree/tools:IreeFileCheck", |
| ], |
| tags = [ |
| "noga", |
| ], |
| ) |
| |
| cc_binary( |
| name = "test-dot-prod", |
| srcs = ["TestDotProdJIT.cpp"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| ":runtime-support.so", |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@llvm-project//llvm:support", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:EDSC", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LoopOpsTransforms", |
| ], |
| ) |
| |
| cc_binary( |
| name = "test-mnist-jit", |
| srcs = ["TestMNISTJIT.cpp"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:EDSC", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LoopOpsTransforms", |
| # mlir_runner_utils with iostream needed for printMemRef atm |
| "@llvm-project//mlir:mlir_runner_utils", |
| ], |
| ) |
| |
| cc_binary( |
| name = "test-simple-jit", |
| srcs = ["TestSimpleJIT.cpp"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@llvm-project//llvm:support", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:EDSC", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LoopOpsTransforms", |
| ], |
| ) |
| |
| cc_binary( |
| name = "test-simple-mlir", |
| srcs = ["TestSimpleMLIR.cpp"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| ], |
| ) |
| |
| # Benchmarks. |
| |
| # Matrix x Vector expressed in Vector dialect. |
| cc_binary( |
| name = "bench-matvec-vector-jit", |
| srcs = ["BenchMatVecVectorJIT.cpp"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@com_google_benchmark//:benchmark:benchmark_main", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:EDSC", |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| # Matrix x Matrix expressed in Vector dialect. |
| cc_binary( |
| name = "bench-matmul-vector-jit", |
| srcs = ["BenchMatMulVectorJIT.cpp"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@com_google_benchmark//:benchmark:benchmark_main", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:EDSC", |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| # Matrix x Matrix expressed in Vector dialect (using intrinsics). |
| cc_binary( |
| name = "bench-matmul-vector-column-major-llvm-intrinsics-jit", |
| srcs = ["BenchMatMulVectorColumnMajorLLVMIntrinsicsJIT.cpp"], |
| copts = ["-O3"], |
| tags = [ |
| "noga", |
| ], |
| deps = [ |
| "//experimental/ModelBuilder", |
| "//experimental/ModelBuilder:ModelRunner", |
| "@com_google_benchmark//:benchmark:benchmark_main", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:EDSC", |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| # Runtime support library (for printing vectors). |
| |
| cc_binary( |
| name = "runtime-support.so", |
| linkshared = True, |
| linkstatic = False, |
| deps = [ |
| "@llvm-project//mlir:mlir_c_runner_utils", |
| ], |
| ) |