# useful command for debugging which files are included: # buck targets caffe2/caffe2: --json | jq -r "map(select(.srcs)) | map({key: .name, value: .srcs | sort}) | from_entries" load("@fbsource//tools/build_defs:type_defs.bzl", "is_list") load("//tools/build/buck:flags.bzl", "get_flags") flags = get_flags() _BASE_PATHS = ( "core/*", "core/boxing/*", "core/boxing/impl/*", "core/dispatch/*", "core/op_registration/*", "cuda_rtc/*", "db/*", "experiments/operators/*", "ideep/**/*", "observers/*", "onnx/**/*", "operators/**/*", "observers/*", "predictor/*", "queue/*", "sgd/*", "share/contrib/zstd/*", "transforms/*", "utils/**/*", ) _BASE_SGX_PATHS = ( "core/*", "core/boxing/*", "core/boxing/impl/*", "core/dispatch/*", "core/op_registration/*", "cuda_rtc/*", "db/*", "experiments/operators/*", "observers/*", "onnx/**/*", "operators/**/*", "observers/*", "predictor/*", "queue/*", "sgd/*", "serialize/*", "share/contrib/zstd/*", "transforms/*", "utils/**/*", ) def get_sgx_patterns(ext): if not is_list(ext): ext = [ext] return [path + e for path in _BASE_SGX_PATHS for e in ext] def get_patterns(ext): if not is_list(ext): ext = [ext] return [path + e for path in _BASE_PATHS for e in ext] def get_simd_preprocessor_flags(): return [ "-DUSE_FBGEMM", ] def get_simd_compiler_flags(): if flags.USE_SSE_ONLY: return ["-mno-avx"] simd_compiler_flags = [ "-mavx", ] + get_simd_preprocessor_flags() # Every uarch with AVX512 support has AVX2 support if (flags.USE_AVX2 or flags.USE_AVX512): simd_compiler_flags += [ "-mavx2", "-mfma", ] if flags.USE_AVX512: simd_compiler_flags += [ "-mavx512f", "-mavx512dq", "-mavx512vl", ] return simd_compiler_flags