2020-04-07 05:48:33 +00:00
|
|
|
load("@rules_cc//cc:defs.bzl", "cc_library")
|
|
|
|
|
|
|
|
|
|
CPU_CAPABILITY_NAMES = ["DEFAULT", "AVX", "AVX2"]
|
2020-04-28 05:47:09 +00:00
|
|
|
CAPABILITY_COMPILER_FLAGS = {
|
|
|
|
|
"AVX2": ["-mavx2", "-mfma"],
|
|
|
|
|
"AVX": ["-mavx"],
|
|
|
|
|
"DEFAULT": [],
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-07 05:48:33 +00:00
|
|
|
PREFIX = "aten/src/ATen/native/"
|
|
|
|
|
|
|
|
|
|
def intern_build_aten_ops(copts, deps):
|
|
|
|
|
for cpu_capability in CPU_CAPABILITY_NAMES:
|
|
|
|
|
srcs = []
|
|
|
|
|
for impl in native.glob(
|
|
|
|
|
[
|
|
|
|
|
PREFIX + "cpu/*.cpp",
|
|
|
|
|
PREFIX + "quantized/cpu/kernels/*.cpp",
|
|
|
|
|
]):
|
|
|
|
|
name = impl.replace(PREFIX, "")
|
|
|
|
|
out = PREFIX + name + "." + cpu_capability + ".cpp"
|
|
|
|
|
native.genrule(
|
|
|
|
|
name = name + "_" + cpu_capability + "_cp",
|
|
|
|
|
srcs = [impl],
|
|
|
|
|
outs = [out],
|
|
|
|
|
cmd = "cp $< $@",
|
|
|
|
|
)
|
|
|
|
|
srcs.append(out)
|
|
|
|
|
|
|
|
|
|
cc_library(
|
|
|
|
|
name = "ATen_CPU_" + cpu_capability,
|
|
|
|
|
srcs = srcs,
|
|
|
|
|
copts = copts + [
|
|
|
|
|
"-DCPU_CAPABILITY=" + cpu_capability,
|
|
|
|
|
"-DCPU_CAPABILITY_" + cpu_capability,
|
2020-04-28 05:47:09 +00:00
|
|
|
] + CAPABILITY_COMPILER_FLAGS[cpu_capability],
|
2020-04-07 05:48:33 +00:00
|
|
|
deps = deps,
|
2020-04-28 05:47:09 +00:00
|
|
|
linkstatic = 1,
|
2020-04-07 05:48:33 +00:00
|
|
|
)
|
|
|
|
|
cc_library(
|
|
|
|
|
name = "ATen_CPU",
|
2020-04-28 05:47:09 +00:00
|
|
|
deps = [":ATen_CPU_" + cpu_capability for cpu_capability in CPU_CAPABILITY_NAMES],
|
2020-04-07 05:48:33 +00:00
|
|
|
linkstatic = 1,
|
|
|
|
|
)
|