def main(args, root_dir=None): import confu options = confu.standard_parser("Google micro-Benchmark framework configuration script").parse_args(args) build = confu.Build.from_options(options, root_dir=root_dir) build.export_cpath("include", ["benchmark/*.h"]) source_files = [ "benchmark.cc", "benchmark_register.cc", "colorprint.cc", "commandlineflags.cc", "complexity.cc", "console_reporter.cc", "counter.cc", "csv_reporter.cc", "json_reporter.cc", "reporter.cc", "sleep.cc", "statistics.cc", "string_util.cc", "sysinfo.cc", "timers.cc", ] macros = [ "HAVE_POSIX_REGEX", "NDEBUG", ] with build.options(source_dir="src", macros=macros, extra_include_dirs="src"): build.static_library("googlebenchmark", [build.cxx(source) for source in source_files]) return build
def main(args, root_dir=None): import confu options = confu.standard_parser("Google Test framework configuration script").parse_args(args) build = confu.Build.from_options(options, root_dir=root_dir) with build.options(source_dir="googletest/src", include_dirs=["googletest/include", "googletest"]): gtest_object = build.cxx("gtest-all.cc") with build.modules.default: build.export_cpath("googletest/include", ["gtest/**/*.h"]) build.static_library("googletest", [gtest_object, build.cxx("gtest_main.cc")]) with build.modules.core: build.export_cpath("googletest/include", ["gtest/**/*.h"]) build.static_library("googletest-core", gtest_object) return build
#!/usr/bin/env python import confu parser = confu.standard_parser("FXdiv configuration script") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["fxdiv.h"]) with build.options(source_dir="test", deps=build.deps.googletest): build.unittest("multiply-high-test", build.cxx("multiply-high.cc")) build.unittest("quotient-test", build.cxx("quotient.cc")) with build.options(source_dir="bench", deps=build.deps.googlebenchmark): build.benchmark("init-bench", build.cxx("init.cc")) build.benchmark("multiply-bench", build.cxx("multiply.cc")) build.benchmark("divide-bench", build.cxx("divide.cc")) build.benchmark("quotient-bench", build.cxx("quotient.cc")) build.benchmark("round-down-bench", build.cxx("round-down.cc")) return build if __name__ == "__main__": import sys main(sys.argv[1:]).generate()
#!/usr/bin/env python # # Copyright (c) Facebook, Inc. and its affiliates. # All rights reserved. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. import confu from confu import arm, x86 parser = confu.standard_parser() def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["q8gemm.h"]) with build.options( source_dir="src", deps=[ build.deps.cpuinfo, build.deps.clog, build.deps.psimd, build.deps.fxdiv, build.deps.pthreadpool, build.deps.FP16, ],
#!/usr/bin/env python import confu parser = confu.standard_parser("cpuinfo configuration script") parser.add_argument("--log", dest="log_level", choices=("none", "error", "warning", "info", "debug"), default="error") parser.add_argument("--mock", dest="mock", action="store_true") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) macros = { "CPUINFO_LOG_LEVEL": { "none": 0, "error": 1, "warning": 2, "info": 3, "debug": 4 }[options.log_level], "CPUINFO_LOG_TO_STDIO": int(not options.mock), "CPUINFO_MOCK": int(options.mock), } if build.target.is_linux or build.target.is_android: macros["_GNU_SOURCE"] = 1 build.export_cpath("include", ["cpuinfo.h"])
#!/usr/bin/env python import confu parser = confu.standard_parser() parser.add_argument("--backend", dest="backend", default="auto", choices=["auto", "psimd", "scalar"]) parser.add_argument("--inference-only", dest="inference_only", default=False, action="store_true", help="Build only inference/forward pass functions to reduce library size") parser.add_argument("--convolution-only", dest="convolution_only", default=False, action="store_true", help="Build only convolution functions to reduce library size") def main(args): options = parser.parse_args(args) backend = options.backend if backend == "auto": if options.target.is_x86_64: backend = "x86_64" elif options.target.is_arm or options.target.is_arm64: backend = "arm" elif options.target.is_emscripten: backend = "scalar" else: backend = "psimd" build = confu.Build.from_options(options)
#!/usr/bin/env python import confu parser = confu.standard_parser("clog configuration script") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["clog.h"]) with build.options(source_dir="src", extra_include_dirs="src"): build.static_library("clog", build.cc("clog.c")) with build.options(source_dir="test", deps={ (build, build.deps.googletest): all, "log": build.target.is_android }): build.unittest("clog-test", build.cxx("clog.cc")) return build if __name__ == "__main__": import sys main(sys.argv[1:]).generate()
#!/usr/bin/env python import confu parser = confu.standard_parser("pthreadpool configuration script") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["pthreadpool.h"]) with build.options(source_dir="src", extra_include_dirs="src", deps=build.deps.fxdiv): sources = ["threadpool-legacy.c"] if build.target.is_emscripten: sources.append("threadpool-shim.c") else: sources.append("threadpool-pthreads.c") build.static_library("pthreadpool", [build.cc(src) for src in sources]) with build.options(source_dir="test", deps=[build, build.deps.googletest]): build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc")) with build.options(source_dir="bench", deps=[build, build.deps.googlebenchmark]): build.benchmark("latency-bench", build.cxx("latency.cc")) build.benchmark("throughput-bench", build.cxx("throughput.cc")) return build
#!/usr/bin/env python import confu parser = confu.standard_parser("FP16 configuration script") parser.add_argument( "--compare", dest="compare", action="store_true", help= "Enable performance comparison with other half-precision implementations") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["fp16.h"]) with build.options(source_dir="test", extra_include_dirs="test", deps=[build.deps.googletest, build.deps.psimd]): fp16_tables = build.cxx("tables.cc") build.unittest("ieee-to-fp32-bits", [build.cxx("ieee-to-fp32-bits.cc"), fp16_tables]) build.unittest("ieee-to-fp32-value", [build.cxx("ieee-to-fp32-value.cc"), fp16_tables]) build.unittest("ieee-from-fp32-value", [build.cxx("ieee-from-fp32-value.cc"), fp16_tables]) build.unittest("alt-to-fp32-bits", [build.cxx("alt-to-fp32-bits.cc"), fp16_tables])
#!/usr/bin/env python import confu parser = confu.standard_parser("clog configuration script") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["clog.h"]) with build.options(source_dir="src", extra_include_dirs="src"): build.static_library("clog", build.cc("clog.c")) with build.options(source_dir="test", deps={ (build, build.deps.googletest): all, "log": build.target.is_android}): build.unittest("clog-test", build.cxx("clog.cc")) return build if __name__ == "__main__": import sys main(sys.argv[1:]).generate()
#!/usr/bin/env python import confu parser = confu.standard_parser("cpuinfo configuration script") parser.add_argument("--log", dest="log_level", choices=("none", "fatal", "error", "warning", "info", "debug"), default="error") parser.add_argument("--mock", dest="mock", action="store_true") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) macros = { "CPUINFO_LOG_LEVEL": {"none": 0, "fatal": 1, "error": 2, "warning": 3, "info": 4, "debug": 5}[options.log_level], "CLOG_LOG_TO_STDIO": int(not options.mock), "CPUINFO_MOCK": int(options.mock), } if build.target.is_linux or build.target.is_android: macros["_GNU_SOURCE"] = 1 build.export_cpath("include", ["cpuinfo.h"]) with build.options(source_dir="src", macros=macros, extra_include_dirs="src", deps=build.deps.clog): sources = ["init.c", "api.c"] if build.target.is_x86 or build.target.is_x86_64: sources += [ "x86/init.c", "x86/info.c", "x86/vendor.c", "x86/uarch.c", "x86/name.c", "x86/topology.c", "x86/cache/init.c", "x86/cache/descriptor.c", "x86/cache/deterministic.c",
#!/usr/bin/env python import confu parser = confu.standard_parser("FXdiv configuration script") def main(args): options = parser.parse_args(args) build = confu.Build.from_options(options) build.export_cpath("include", ["fxdiv.h"]) with build.options(source_dir="test", deps=build.deps.googletest): build.unittest("multiply-high-test", build.cxx("multiply-high.cc")) build.unittest("quotient-test", build.cxx("quotient.cc")) with build.options(source_dir="bench", deps=build.deps.googlebenchmark): build.benchmark("init-bench", build.cxx("init.cc")) build.benchmark("multiply-bench", build.cxx("multiply.cc")) build.benchmark("divide-bench", build.cxx("divide.cc")) build.benchmark("quotient-bench", build.cxx("quotient.cc")) build.benchmark("round-down-bench", build.cxx("round-down.cc")) return build if __name__ == "__main__": import sys main(sys.argv[1:]).generate()