1*da0073e9SAndroid Build Coastguard Worker# NOTE: This file is shared by internal and OSS BUCK build. 2*da0073e9SAndroid Build Coastguard Worker# These load paths point to different files in internal and OSS environment 3*da0073e9SAndroid Build Coastguard Worker 4*da0073e9SAndroid Build Coastguard Workerload("@bazel_skylib//lib:paths.bzl", "paths") 5*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fb_native_wrapper.bzl", "fb_native") 6*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fb_xplat_cxx_library.bzl", "fb_xplat_cxx_library") 7*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fb_xplat_genrule.bzl", "fb_xplat_genrule") 8*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fbsource_utils.bzl", "is_arvr_mode") 9*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:glob_defs.bzl", "subdir_glob") 10*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:platform_defs.bzl", "APPLETVOS", "IOS", "MACOSX") 11*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:type_defs.bzl", "is_list", "is_string") 12*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs/android:build_mode_defs.bzl", is_production_build_android = "is_production_build") 13*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs/apple:build_mode_defs.bzl", is_production_build_ios = "is_production_build") 14*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs/windows:windows_flag_map.bzl", "windows_convert_gcc_clang_flags") 15*da0073e9SAndroid Build Coastguard Workerload( 16*da0073e9SAndroid Build Coastguard Worker ":build_variables.bzl", 17*da0073e9SAndroid Build Coastguard Worker "aten_cpu_source_list", 18*da0073e9SAndroid Build Coastguard Worker "aten_native_source_list", 19*da0073e9SAndroid Build Coastguard Worker "core_sources_common", 20*da0073e9SAndroid Build Coastguard Worker "core_sources_full_mobile_no_backend_interface_xplat", 21*da0073e9SAndroid Build Coastguard Worker "core_trainer_sources", 22*da0073e9SAndroid Build Coastguard Worker "jit_core_headers", 23*da0073e9SAndroid Build Coastguard Worker "jit_core_sources", 24*da0073e9SAndroid Build Coastguard Worker "libtorch_profiler_sources", 25*da0073e9SAndroid Build Coastguard Worker "torch_cpp_srcs", 26*da0073e9SAndroid Build Coastguard Worker "torch_mobile_tracer_sources", 27*da0073e9SAndroid Build Coastguard Worker) 28*da0073e9SAndroid Build Coastguard Workerload( 29*da0073e9SAndroid Build Coastguard Worker ":pt_ops.bzl", 30*da0073e9SAndroid Build Coastguard Worker "USED_PT_BACKENDS", 31*da0073e9SAndroid Build Coastguard Worker) 32*da0073e9SAndroid Build Coastguard Workerload( 33*da0073e9SAndroid Build Coastguard Worker ":pt_template_srcs.bzl", 34*da0073e9SAndroid Build Coastguard Worker "METAL_MASKRCNN_SOURCE_LIST", 35*da0073e9SAndroid Build Coastguard Worker "METAL_SOURCE_LIST", 36*da0073e9SAndroid Build Coastguard Worker "TEMPLATE_MASKRCNN_SOURCE_LIST", 37*da0073e9SAndroid Build Coastguard Worker "TEMPLATE_SOURCE_LIST", 38*da0073e9SAndroid Build Coastguard Worker "aten_ufunc_generated_all_cpu_sources", 39*da0073e9SAndroid Build Coastguard Worker "get_gen_oplist_outs", 40*da0073e9SAndroid Build Coastguard Worker "get_generate_code_bin_outs", 41*da0073e9SAndroid Build Coastguard Worker "get_metal_registration_files_outs", 42*da0073e9SAndroid Build Coastguard Worker "get_metal_registration_files_outs_windows", 43*da0073e9SAndroid Build Coastguard Worker "get_metal_source_dict", 44*da0073e9SAndroid Build Coastguard Worker "get_template_registration_file_rules", 45*da0073e9SAndroid Build Coastguard Worker "get_template_registration_files_outs", 46*da0073e9SAndroid Build Coastguard Worker "get_template_source_dict", 47*da0073e9SAndroid Build Coastguard Worker) 48*da0073e9SAndroid Build Coastguard Workerload( 49*da0073e9SAndroid Build Coastguard Worker ":ufunc_defs.bzl", 50*da0073e9SAndroid Build Coastguard Worker "aten_ufunc_generated_cpu_kernel_sources", 51*da0073e9SAndroid Build Coastguard Worker "aten_ufunc_generated_cpu_sources", 52*da0073e9SAndroid Build Coastguard Worker "aten_ufunc_generated_cuda_sources", 53*da0073e9SAndroid Build Coastguard Worker) 54*da0073e9SAndroid Build Coastguard Worker 55*da0073e9SAndroid Build Coastguard Workerdef read_bool(section, field, default, required = True): 56*da0073e9SAndroid Build Coastguard Worker val = read_config(section, field) 57*da0073e9SAndroid Build Coastguard Worker if val != None: 58*da0073e9SAndroid Build Coastguard Worker if val in ["true", "True", "1"]: 59*da0073e9SAndroid Build Coastguard Worker return True 60*da0073e9SAndroid Build Coastguard Worker elif val in ["false", "False", "0"]: 61*da0073e9SAndroid Build Coastguard Worker return False 62*da0073e9SAndroid Build Coastguard Worker else: 63*da0073e9SAndroid Build Coastguard Worker fail( 64*da0073e9SAndroid Build Coastguard Worker "`{}:{}`: must be one of (0, 1, true, false, True, False), but was {}".format(section, field, val), 65*da0073e9SAndroid Build Coastguard Worker ) 66*da0073e9SAndroid Build Coastguard Worker elif default != None: 67*da0073e9SAndroid Build Coastguard Worker return default 68*da0073e9SAndroid Build Coastguard Worker elif not required: 69*da0073e9SAndroid Build Coastguard Worker return None 70*da0073e9SAndroid Build Coastguard Worker else: 71*da0073e9SAndroid Build Coastguard Worker fail("`{}:{}`: no value set".format(section, field)) 72*da0073e9SAndroid Build Coastguard Worker 73*da0073e9SAndroid Build Coastguard Workerdef _is_build_mode_dev(): 74*da0073e9SAndroid Build Coastguard Worker if is_production_build_android(): 75*da0073e9SAndroid Build Coastguard Worker # Android Prod builds 76*da0073e9SAndroid Build Coastguard Worker return False 77*da0073e9SAndroid Build Coastguard Worker if is_production_build_ios(): 78*da0073e9SAndroid Build Coastguard Worker # iOS Prod builds 79*da0073e9SAndroid Build Coastguard Worker return False 80*da0073e9SAndroid Build Coastguard Worker 81*da0073e9SAndroid Build Coastguard Worker return True 82*da0073e9SAndroid Build Coastguard Worker 83*da0073e9SAndroid Build Coastguard Workerdef _get_enable_lightweight_dispatch(): 84*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "enable_lightweight_dispatch", False) 85*da0073e9SAndroid Build Coastguard Worker 86*da0073e9SAndroid Build Coastguard Workerdef _get_enable_record_kernel_dtype(): 87*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "enable_record_kernel_dtype", False) 88*da0073e9SAndroid Build Coastguard Worker 89*da0073e9SAndroid Build Coastguard Workerdef get_enable_mobile_dispatch_keys_trimming(): 90*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "enable_mobile_dispatch_keys_trimming", False) 91*da0073e9SAndroid Build Coastguard Worker 92*da0073e9SAndroid Build Coastguard Workerdef get_disable_per_op_profiling(): 93*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "disable_per_op_profiling", True) 94*da0073e9SAndroid Build Coastguard Worker 95*da0073e9SAndroid Build Coastguard Workerdef get_strip_error_messages(): 96*da0073e9SAndroid Build Coastguard Worker if IS_OSS: 97*da0073e9SAndroid Build Coastguard Worker return True # always strip in OSS CI to expose potential issues 98*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "strip_error_messages", not _is_build_mode_dev()) 99*da0073e9SAndroid Build Coastguard Worker 100*da0073e9SAndroid Build Coastguard Workerdef get_disable_warn(): 101*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "disable_warn", False) 102*da0073e9SAndroid Build Coastguard Worker 103*da0073e9SAndroid Build Coastguard Workerdef get_enable_eager_symbolication(): 104*da0073e9SAndroid Build Coastguard Worker return read_bool("pt", "enable_eager_symbolication", default = False, required = False) 105*da0073e9SAndroid Build Coastguard Worker 106*da0073e9SAndroid Build Coastguard Workerdef get_static_dispatch_backend(): 107*da0073e9SAndroid Build Coastguard Worker static_dispatch_backend = native.read_config("pt", "static_dispatch_backend", None) 108*da0073e9SAndroid Build Coastguard Worker if static_dispatch_backend == None: 109*da0073e9SAndroid Build Coastguard Worker return [] 110*da0073e9SAndroid Build Coastguard Worker return static_dispatch_backend.split(";") 111*da0073e9SAndroid Build Coastguard Worker 112*da0073e9SAndroid Build Coastguard Workerdef get_glsl_image_format(): 113*da0073e9SAndroid Build Coastguard Worker if read_config("pt", "vulkan_full_precision", "0") == "0": 114*da0073e9SAndroid Build Coastguard Worker return "rgba16f" 115*da0073e9SAndroid Build Coastguard Worker return "rgba32f" 116*da0073e9SAndroid Build Coastguard Worker 117*da0073e9SAndroid Build Coastguard Workerdef get_glsl_paths(): 118*da0073e9SAndroid Build Coastguard Worker paths = [ 119*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2:aten_vulkan_glsl_src_path", 120*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/native/vulkan/glsl", 121*da0073e9SAndroid Build Coastguard Worker ] + [ 122*da0073e9SAndroid Build Coastguard Worker p 123*da0073e9SAndroid Build Coastguard Worker for p in read_config("gen_vulkan_spv", "additional_glsl_paths", "").split(" ") 124*da0073e9SAndroid Build Coastguard Worker if p 125*da0073e9SAndroid Build Coastguard Worker ] 126*da0073e9SAndroid Build Coastguard Worker 127*da0073e9SAndroid Build Coastguard Worker if len(paths) % 2 != 0: 128*da0073e9SAndroid Build Coastguard Worker fail( 129*da0073e9SAndroid Build Coastguard Worker "gen_vulkan_spv.additional_glsl_paths must contain an even number of elements", 130*da0073e9SAndroid Build Coastguard Worker ) 131*da0073e9SAndroid Build Coastguard Worker 132*da0073e9SAndroid Build Coastguard Worker return " ".join( 133*da0073e9SAndroid Build Coastguard Worker [ 134*da0073e9SAndroid Build Coastguard Worker "$(location {})/{}".format( 135*da0073e9SAndroid Build Coastguard Worker paths[i], 136*da0073e9SAndroid Build Coastguard Worker paths[i + 1], 137*da0073e9SAndroid Build Coastguard Worker ) 138*da0073e9SAndroid Build Coastguard Worker for i in range( 139*da0073e9SAndroid Build Coastguard Worker 0, 140*da0073e9SAndroid Build Coastguard Worker len(paths), 141*da0073e9SAndroid Build Coastguard Worker 2, 142*da0073e9SAndroid Build Coastguard Worker ) 143*da0073e9SAndroid Build Coastguard Worker ], 144*da0073e9SAndroid Build Coastguard Worker ) 145*da0073e9SAndroid Build Coastguard Worker 146*da0073e9SAndroid Build Coastguard Workerdef spv_shader_library(): 147*da0073e9SAndroid Build Coastguard Worker pass 148*da0073e9SAndroid Build Coastguard Worker 149*da0073e9SAndroid Build Coastguard WorkerIS_OSS = read_config("pt", "is_oss", "0") == "1" # True for OSS BUCK build, and False for internal BUCK build 150*da0073e9SAndroid Build Coastguard Worker 151*da0073e9SAndroid Build Coastguard WorkerNOT_OSS = not IS_OSS 152*da0073e9SAndroid Build Coastguard Worker 153*da0073e9SAndroid Build Coastguard Worker# for targets in caffe2 root path 154*da0073e9SAndroid Build Coastguard WorkerROOT = "//" if IS_OSS else "//xplat/caffe2" 155*da0073e9SAndroid Build Coastguard Worker 156*da0073e9SAndroid Build Coastguard Worker# for targets in subfolders 157*da0073e9SAndroid Build Coastguard WorkerROOT_PATH = "//" if IS_OSS else "//xplat/caffe2/" 158*da0073e9SAndroid Build Coastguard Worker 159*da0073e9SAndroid Build Coastguard WorkerC10 = "//c10:c10" if IS_OSS else "//xplat/caffe2/c10:c10" 160*da0073e9SAndroid Build Coastguard Worker 161*da0073e9SAndroid Build Coastguard Worker# a dictionary maps third party library name to fbsource and oss target 162*da0073e9SAndroid Build Coastguard WorkerTHIRD_PARTY_LIBS = { 163*da0073e9SAndroid Build Coastguard Worker "FP16": ["//xplat/third-party/FP16:FP16", "//third_party:FP16"], 164*da0073e9SAndroid Build Coastguard Worker "FXdiv": ["//xplat/third-party/FXdiv:FXdiv", "//third_party:FXdiv"], 165*da0073e9SAndroid Build Coastguard Worker "XNNPACK": ["//xplat/third-party/XNNPACK:XNNPACK", "//third_party:XNNPACK"], 166*da0073e9SAndroid Build Coastguard Worker "clog": ["//xplat/third-party/clog:clog", "//third_party:clog"], 167*da0073e9SAndroid Build Coastguard Worker "cpuinfo": ["//third-party/cpuinfo:cpuinfo", "//third_party:cpuinfo"], 168*da0073e9SAndroid Build Coastguard Worker "flatbuffers-api": ["//third-party/flatbuffers/fbsource_namespace:flatbuffers-api", "//third_party:flatbuffers-api"], 169*da0073e9SAndroid Build Coastguard Worker "flatc": ["//third-party/flatbuffers/fbsource_namespace:flatc", "//third_party:flatc"], 170*da0073e9SAndroid Build Coastguard Worker "fmt": ["//third-party/fmt:fmt", "//third_party:fmt"], 171*da0073e9SAndroid Build Coastguard Worker "glog": ["//third-party/glog:glog", "//third_party:glog"], 172*da0073e9SAndroid Build Coastguard Worker "gmock": ["//third-party/googletest:gmock_main", "//third_party:gmock"], 173*da0073e9SAndroid Build Coastguard Worker "gtest": ["//third-party/googletest:gtest_main", "//third_party:gtest"], 174*da0073e9SAndroid Build Coastguard Worker "kineto": ["//xplat/kineto/libkineto:libkineto", "//third_party:libkineto"], 175*da0073e9SAndroid Build Coastguard Worker "libkineto_headers": ["//xplat/kineto/libkineto:libkineto_headers", "//third_party:libkineto_headers"], 176*da0073e9SAndroid Build Coastguard Worker "omp": ["//xplat/third-party/linker_lib:omp", "//third_party:no-op"], 177*da0073e9SAndroid Build Coastguard Worker "pocketfft": ["//third-party/pocket_fft:pocketfft", "//third_party:pocketfft_header"], 178*da0073e9SAndroid Build Coastguard Worker "psimd": ["//xplat/third-party/psimd:psimd", "//third_party:psimd"], 179*da0073e9SAndroid Build Coastguard Worker "pthreadpool": ["//xplat/third-party/pthreadpool:pthreadpool", "//third_party:pthreadpool"], 180*da0073e9SAndroid Build Coastguard Worker "pthreadpool_header": ["//xplat/third-party/pthreadpool:pthreadpool_header", "//third_party:pthreadpool_header"], 181*da0073e9SAndroid Build Coastguard Worker "pyyaml": ["//third-party/pyyaml:pyyaml", "//third_party:pyyaml"], 182*da0073e9SAndroid Build Coastguard Worker "rt": ["//xplat/third-party/linker_lib:rt", "//third_party:rt"], 183*da0073e9SAndroid Build Coastguard Worker "ruy": ["//third-party/ruy:ruy_xplat_lib", "//third_party:ruy_lib"], 184*da0073e9SAndroid Build Coastguard Worker "sleef_arm": ["//third-party/sleef:sleef_arm", "//third_party:sleef_arm"], 185*da0073e9SAndroid Build Coastguard Worker "typing-extensions": ["//third-party/typing-extensions:typing-extensions", "//third_party:typing-extensions"], 186*da0073e9SAndroid Build Coastguard Worker} 187*da0073e9SAndroid Build Coastguard Worker 188*da0073e9SAndroid Build Coastguard Workerdef third_party(name): 189*da0073e9SAndroid Build Coastguard Worker if name not in THIRD_PARTY_LIBS: 190*da0073e9SAndroid Build Coastguard Worker fail("Cannot find third party library " + name + ", please register it in THIRD_PARTY_LIBS first!") 191*da0073e9SAndroid Build Coastguard Worker return THIRD_PARTY_LIBS[name][1] if IS_OSS else THIRD_PARTY_LIBS[name][0] 192*da0073e9SAndroid Build Coastguard Worker 193*da0073e9SAndroid Build Coastguard Workerdef get_pt_compiler_flags(): 194*da0073e9SAndroid Build Coastguard Worker return select({ 195*da0073e9SAndroid Build Coastguard Worker "DEFAULT": _PT_COMPILER_FLAGS, 196*da0073e9SAndroid Build Coastguard Worker "ovr_config//compiler:cl": windows_convert_gcc_clang_flags(_PT_COMPILER_FLAGS), 197*da0073e9SAndroid Build Coastguard Worker }) 198*da0073e9SAndroid Build Coastguard Worker 199*da0073e9SAndroid Build Coastguard Worker_PT_COMPILER_FLAGS = [ 200*da0073e9SAndroid Build Coastguard Worker "-fexceptions", 201*da0073e9SAndroid Build Coastguard Worker "-frtti", 202*da0073e9SAndroid Build Coastguard Worker "-Os", 203*da0073e9SAndroid Build Coastguard Worker "-Wno-unknown-pragmas", 204*da0073e9SAndroid Build Coastguard Worker "-Wno-write-strings", 205*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-variable", 206*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-function", 207*da0073e9SAndroid Build Coastguard Worker "-Wno-deprecated-declarations", 208*da0073e9SAndroid Build Coastguard Worker "-Wno-shadow", 209*da0073e9SAndroid Build Coastguard Worker "-Wno-global-constructors", 210*da0073e9SAndroid Build Coastguard Worker "-Wno-missing-prototypes", 211*da0073e9SAndroid Build Coastguard Worker] 212*da0073e9SAndroid Build Coastguard Worker 213*da0073e9SAndroid Build Coastguard WorkerATEN_COMPILER_FLAGS = [ 214*da0073e9SAndroid Build Coastguard Worker "-fexceptions", 215*da0073e9SAndroid Build Coastguard Worker "-frtti", 216*da0073e9SAndroid Build Coastguard Worker "-fPIC", 217*da0073e9SAndroid Build Coastguard Worker "-Os", 218*da0073e9SAndroid Build Coastguard Worker "-Wno-absolute-value", 219*da0073e9SAndroid Build Coastguard Worker "-Wno-deprecated-declarations", 220*da0073e9SAndroid Build Coastguard Worker "-Wno-macro-redefined", 221*da0073e9SAndroid Build Coastguard Worker "-Wno-tautological-constant-out-of-range-compare", 222*da0073e9SAndroid Build Coastguard Worker "-Wno-unknown-pragmas", 223*da0073e9SAndroid Build Coastguard Worker "-Wno-unknown-warning-option", 224*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-function", 225*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-variable", 226*da0073e9SAndroid Build Coastguard Worker "-Wno-pass-failed", 227*da0073e9SAndroid Build Coastguard Worker "-Wno-shadow", 228*da0073e9SAndroid Build Coastguard Worker] 229*da0073e9SAndroid Build Coastguard Worker 230*da0073e9SAndroid Build Coastguard Workerdef get_aten_compiler_flags(): 231*da0073e9SAndroid Build Coastguard Worker return ATEN_COMPILER_FLAGS 232*da0073e9SAndroid Build Coastguard Worker 233*da0073e9SAndroid Build Coastguard Worker_COMMON_PREPROCESSOR_FLAGS = [ 234*da0073e9SAndroid Build Coastguard Worker "-DC10_MOBILE", 235*da0073e9SAndroid Build Coastguard Worker "-DNO_EXPORT", 236*da0073e9SAndroid Build Coastguard Worker] + ( 237*da0073e9SAndroid Build Coastguard Worker ["-DC10_MOBILE_TRIM_DISPATCH_KEYS"] if get_enable_mobile_dispatch_keys_trimming() else [] 238*da0073e9SAndroid Build Coastguard Worker) + ( 239*da0073e9SAndroid Build Coastguard Worker ["-DSTRIP_ERROR_MESSAGES"] if get_strip_error_messages() else [] 240*da0073e9SAndroid Build Coastguard Worker) + ( 241*da0073e9SAndroid Build Coastguard Worker ["-DDISABLE_WARN"] if get_disable_warn() else [] 242*da0073e9SAndroid Build Coastguard Worker) 243*da0073e9SAndroid Build Coastguard Worker 244*da0073e9SAndroid Build Coastguard Workerdef get_aten_preprocessor_flags(): 245*da0073e9SAndroid Build Coastguard Worker # read_config is not allowed outside of function in Starlark 246*da0073e9SAndroid Build Coastguard Worker ATEN_PREPROCESSOR_FLAGS = _COMMON_PREPROCESSOR_FLAGS + [ 247*da0073e9SAndroid Build Coastguard Worker "-DCPU_CAPABILITY_DEFAULT", 248*da0073e9SAndroid Build Coastguard Worker "-DCPU_CAPABILITY=DEFAULT", 249*da0073e9SAndroid Build Coastguard Worker "-DCAFFE2_USE_LITE_PROTO", 250*da0073e9SAndroid Build Coastguard Worker "-DATEN_CUDNN_ENABLED_FBXPLAT=0", 251*da0073e9SAndroid Build Coastguard Worker "-DATEN_MKLDNN_ENABLED_FBXPLAT=0", 252*da0073e9SAndroid Build Coastguard Worker "-DATEN_MKLDNN_ACL_ENABLED_FBXPLAT=0", 253*da0073e9SAndroid Build Coastguard Worker "-DATEN_NNPACK_ENABLED_FBXPLAT=0", 254*da0073e9SAndroid Build Coastguard Worker "-DATEN_MKL_ENABLED_FBXPLAT=0", 255*da0073e9SAndroid Build Coastguard Worker "-DATEN_MKL_SEQUENTIAL_FBXPLAT=0", 256*da0073e9SAndroid Build Coastguard Worker "-DUSE_PYTORCH_METAL", 257*da0073e9SAndroid Build Coastguard Worker "-DUSE_PYTORCH_QNNPACK", 258*da0073e9SAndroid Build Coastguard Worker "-DUSE_XNNPACK", 259*da0073e9SAndroid Build Coastguard Worker "-DPYTORCH_QNNPACK_RUNTIME_QUANTIZATION", 260*da0073e9SAndroid Build Coastguard Worker "-DAT_PARALLEL_OPENMP_FBXPLAT=0", 261*da0073e9SAndroid Build Coastguard Worker "-DAT_PARALLEL_NATIVE_FBXPLAT=1", 262*da0073e9SAndroid Build Coastguard Worker "-DUSE_LAPACK_FBXPLAT=0", 263*da0073e9SAndroid Build Coastguard Worker "-DAT_BLAS_F2C_FBXPLAT=0", 264*da0073e9SAndroid Build Coastguard Worker "-DAT_BLAS_USE_CBLAS_DOT_FBXPLAT=0", 265*da0073e9SAndroid Build Coastguard Worker "-DUSE_RUY_QMATMUL", 266*da0073e9SAndroid Build Coastguard Worker ] 267*da0073e9SAndroid Build Coastguard Worker if get_disable_per_op_profiling(): 268*da0073e9SAndroid Build Coastguard Worker ATEN_PREPROCESSOR_FLAGS.append("-DPYTORCH_DISABLE_PER_OP_PROFILING") 269*da0073e9SAndroid Build Coastguard Worker if _get_enable_record_kernel_dtype(): 270*da0073e9SAndroid Build Coastguard Worker ATEN_PREPROCESSOR_FLAGS.append("-DENABLE_RECORD_KERNEL_FUNCTION_DTYPE") 271*da0073e9SAndroid Build Coastguard Worker return ATEN_PREPROCESSOR_FLAGS 272*da0073e9SAndroid Build Coastguard Worker 273*da0073e9SAndroid Build Coastguard Workerdef get_pt_preprocessor_flags(): 274*da0073e9SAndroid Build Coastguard Worker # read_config is not allowed outside of function in Starlark 275*da0073e9SAndroid Build Coastguard Worker PT_PREPROCESSOR_FLAGS = _COMMON_PREPROCESSOR_FLAGS + [ 276*da0073e9SAndroid Build Coastguard Worker "-D_THP_CORE", 277*da0073e9SAndroid Build Coastguard Worker "-DUSE_SCALARS", 278*da0073e9SAndroid Build Coastguard Worker "-DNO_CUDNN_DESTROY_HANDLE", 279*da0073e9SAndroid Build Coastguard Worker ] 280*da0073e9SAndroid Build Coastguard Worker 281*da0073e9SAndroid Build Coastguard Worker if _is_build_mode_dev(): 282*da0073e9SAndroid Build Coastguard Worker PT_PREPROCESSOR_FLAGS.append("-DENABLE_PYTORCH_NON_PRODUCTION_BUILDS") 283*da0073e9SAndroid Build Coastguard Worker return PT_PREPROCESSOR_FLAGS 284*da0073e9SAndroid Build Coastguard Worker 285*da0073e9SAndroid Build Coastguard Worker# This needs to be kept in sync with https://github.com/pytorch/pytorch/blob/release/1.9/torchgen/gen.py#L892 286*da0073e9SAndroid Build Coastguard WorkerPT_BACKEND_HEADERS = [ 287*da0073e9SAndroid Build Coastguard Worker "CPU", 288*da0073e9SAndroid Build Coastguard Worker "CUDA", 289*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutograd", 290*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradNonFunctional", 291*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutograd", 292*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradNestedTensor", 293*da0073e9SAndroid Build Coastguard Worker "Meta", 294*da0073e9SAndroid Build Coastguard Worker] 295*da0073e9SAndroid Build Coastguard Worker 296*da0073e9SAndroid Build Coastguard Workerdef get_aten_static_dispatch_backend_headers(existing_headers): 297*da0073e9SAndroid Build Coastguard Worker static_backends = get_static_dispatch_backend() 298*da0073e9SAndroid Build Coastguard Worker for backend in static_backends: 299*da0073e9SAndroid Build Coastguard Worker if backend != "CPU": 300*da0073e9SAndroid Build Coastguard Worker existing_headers["{}Functions.h".format(backend)] = ":gen_aten[{}Functions.h]".format(backend) 301*da0073e9SAndroid Build Coastguard Worker existing_headers["{}Functions_inl.h".format(backend)] = ":gen_aten[{}Functions_inl.h]".format(backend) 302*da0073e9SAndroid Build Coastguard Worker return existing_headers 303*da0073e9SAndroid Build Coastguard Worker 304*da0073e9SAndroid Build Coastguard Workerdef get_aten_codegen_extra_params(backends): 305*da0073e9SAndroid Build Coastguard Worker extra_params = { 306*da0073e9SAndroid Build Coastguard Worker "force_schema_registration": True, 307*da0073e9SAndroid Build Coastguard Worker } 308*da0073e9SAndroid Build Coastguard Worker static_backends = get_static_dispatch_backend() 309*da0073e9SAndroid Build Coastguard Worker if static_backends: 310*da0073e9SAndroid Build Coastguard Worker extra_params["static_dispatch_backend"] = static_backends 311*da0073e9SAndroid Build Coastguard Worker extra_params["enabled_backends"] = static_backends 312*da0073e9SAndroid Build Coastguard Worker else: 313*da0073e9SAndroid Build Coastguard Worker extra_params["enabled_backends"] = backends 314*da0073e9SAndroid Build Coastguard Worker return extra_params 315*da0073e9SAndroid Build Coastguard Worker 316*da0073e9SAndroid Build Coastguard Workerdef get_jit_codegen_params(): 317*da0073e9SAndroid Build Coastguard Worker return [] 318*da0073e9SAndroid Build Coastguard Worker 319*da0073e9SAndroid Build Coastguard Workerdef get_unboxing_generated_files(): 320*da0073e9SAndroid Build Coastguard Worker srcs = [] 321*da0073e9SAndroid Build Coastguard Worker if _get_enable_lightweight_dispatch(): 322*da0073e9SAndroid Build Coastguard Worker srcs = [ 323*da0073e9SAndroid Build Coastguard Worker "UnboxingFunctions.h", 324*da0073e9SAndroid Build Coastguard Worker "UnboxingFunctions_0.cpp", 325*da0073e9SAndroid Build Coastguard Worker "UnboxingFunctions_1.cpp", 326*da0073e9SAndroid Build Coastguard Worker "UnboxingFunctions_2.cpp", 327*da0073e9SAndroid Build Coastguard Worker "UnboxingFunctions_3.cpp", 328*da0073e9SAndroid Build Coastguard Worker "UnboxingFunctions_4.cpp", 329*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_0.cpp", 330*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_1.cpp", 331*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_2.cpp", 332*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_3.cpp", 333*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_4.cpp", 334*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_5.cpp", 335*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_6.cpp", 336*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_7.cpp", 337*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_8.cpp", 338*da0073e9SAndroid Build Coastguard Worker "RegisterCodegenUnboxedKernels_9.cpp", 339*da0073e9SAndroid Build Coastguard Worker ] 340*da0073e9SAndroid Build Coastguard Worker res = {} 341*da0073e9SAndroid Build Coastguard Worker for file_name in srcs: 342*da0073e9SAndroid Build Coastguard Worker res[file_name] = [file_name] 343*da0073e9SAndroid Build Coastguard Worker return res 344*da0073e9SAndroid Build Coastguard Worker 345*da0073e9SAndroid Build Coastguard Workerdef get_aten_generated_files(enabled_backends): 346*da0073e9SAndroid Build Coastguard Worker # NB: RegisterMeta counts as an optionally enabled backend, 347*da0073e9SAndroid Build Coastguard Worker # and is intentionally omitted from here 348*da0073e9SAndroid Build Coastguard Worker src_files = [ 349*da0073e9SAndroid Build Coastguard Worker "RegisterBackendSelect.cpp", 350*da0073e9SAndroid Build Coastguard Worker "RegisterCompositeImplicitAutograd.cpp", 351*da0073e9SAndroid Build Coastguard Worker "RegisterCompositeImplicitAutogradNestedTensor.cpp", 352*da0073e9SAndroid Build Coastguard Worker "RegisterCompositeExplicitAutograd.cpp", 353*da0073e9SAndroid Build Coastguard Worker "RegisterCompositeExplicitAutogradNonFunctional.cpp", 354*da0073e9SAndroid Build Coastguard Worker "CompositeViewCopyKernels.cpp", 355*da0073e9SAndroid Build Coastguard Worker "RegisterSchema.cpp", 356*da0073e9SAndroid Build Coastguard Worker "Declarations.yaml", 357*da0073e9SAndroid Build Coastguard Worker "Functions.cpp", 358*da0073e9SAndroid Build Coastguard Worker "Functions.h", 359*da0073e9SAndroid Build Coastguard Worker "RedispatchFunctions.h", 360*da0073e9SAndroid Build Coastguard Worker "NativeFunctions.h", 361*da0073e9SAndroid Build Coastguard Worker "NativeMetaFunctions.h", 362*da0073e9SAndroid Build Coastguard Worker "MethodOperators.h", 363*da0073e9SAndroid Build Coastguard Worker "FunctionalInverses.h", 364*da0073e9SAndroid Build Coastguard Worker "Operators.h", 365*da0073e9SAndroid Build Coastguard Worker "Operators_0.cpp", 366*da0073e9SAndroid Build Coastguard Worker "Operators_1.cpp", 367*da0073e9SAndroid Build Coastguard Worker "Operators_2.cpp", 368*da0073e9SAndroid Build Coastguard Worker "Operators_3.cpp", 369*da0073e9SAndroid Build Coastguard Worker "Operators_4.cpp", 370*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradFunctions.h", 371*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradFunctions_inl.h", 372*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradNestedTensorFunctions.h", 373*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradNestedTensorFunctions_inl.h", 374*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradFunctions.h", 375*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradFunctions_inl.h", 376*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradNonFunctionalFunctions.h", 377*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradNonFunctionalFunctions_inl.h", 378*da0073e9SAndroid Build Coastguard Worker "VmapGeneratedPlumbing.h", 379*da0073e9SAndroid Build Coastguard Worker "core/ATenOpList.cpp", 380*da0073e9SAndroid Build Coastguard Worker "core/TensorBody.h", 381*da0073e9SAndroid Build Coastguard Worker "core/TensorMethods.cpp", 382*da0073e9SAndroid Build Coastguard Worker "core/aten_interned_strings.h", 383*da0073e9SAndroid Build Coastguard Worker "core/enum_tag.h", 384*da0073e9SAndroid Build Coastguard Worker "torch/csrc/inductor/aoti_torch/generated/c_shim_cpu.cpp", 385*da0073e9SAndroid Build Coastguard Worker ] + get_aten_derived_type_srcs(enabled_backends) 386*da0073e9SAndroid Build Coastguard Worker 387*da0073e9SAndroid Build Coastguard Worker # This is tiresome. A better strategy would be to unconditionally 388*da0073e9SAndroid Build Coastguard Worker # generate these files, and then only actually COMPILE them depended 389*da0073e9SAndroid Build Coastguard Worker # on the generated set. C'est la vie... 390*da0073e9SAndroid Build Coastguard Worker if "CPU" in enabled_backends: 391*da0073e9SAndroid Build Coastguard Worker src_files.extend(aten_ufunc_generated_cpu_sources()) 392*da0073e9SAndroid Build Coastguard Worker src_files.extend(aten_ufunc_generated_cpu_kernel_sources()) 393*da0073e9SAndroid Build Coastguard Worker if "CUDA" in enabled_backends: 394*da0073e9SAndroid Build Coastguard Worker # Cannot unconditionally include this, because in the Edge selective 395*da0073e9SAndroid Build Coastguard Worker # build CUDA is not enabled and thus the ufunc codegen for CUDA gets 396*da0073e9SAndroid Build Coastguard Worker # skipped 397*da0073e9SAndroid Build Coastguard Worker src_files.extend(aten_ufunc_generated_cuda_sources()) 398*da0073e9SAndroid Build Coastguard Worker 399*da0073e9SAndroid Build Coastguard Worker res = {} 400*da0073e9SAndroid Build Coastguard Worker for file_name in src_files: 401*da0073e9SAndroid Build Coastguard Worker res[file_name] = [file_name] 402*da0073e9SAndroid Build Coastguard Worker return res 403*da0073e9SAndroid Build Coastguard Worker 404*da0073e9SAndroid Build Coastguard Workerdef get_aten_derived_type_src_rules(aten_rule_name, enabled_backends): 405*da0073e9SAndroid Build Coastguard Worker return [ 406*da0073e9SAndroid Build Coastguard Worker ":{}[{}]".format(aten_rule_name, "Register" + backend + ".cpp") 407*da0073e9SAndroid Build Coastguard Worker for backend in enabled_backends 408*da0073e9SAndroid Build Coastguard Worker ] 409*da0073e9SAndroid Build Coastguard Worker 410*da0073e9SAndroid Build Coastguard Workerdef get_aten_selective_cpp_rules(aten_rule_name, enabled_backends): 411*da0073e9SAndroid Build Coastguard Worker return [ 412*da0073e9SAndroid Build Coastguard Worker ":{}[{}]".format(aten_rule_name, f) 413*da0073e9SAndroid Build Coastguard Worker for f in ["RegisterCompositeImplicitAutograd.cpp", "RegisterCompositeImplicitAutogradNestedTensor.cpp", "RegisterCompositeExplicitAutograd.cpp", "RegisterCompositeExplicitAutogradNonFunctional.cpp", "RegisterSchema.cpp", "RegisterBackendSelect.cpp", "CompositeViewCopyKernels.cpp"] 414*da0073e9SAndroid Build Coastguard Worker ] + get_aten_derived_type_src_rules(aten_rule_name, enabled_backends) 415*da0073e9SAndroid Build Coastguard Worker 416*da0073e9SAndroid Build Coastguard Workerdef get_aten_derived_type_srcs(enabled_backends): 417*da0073e9SAndroid Build Coastguard Worker return [ 418*da0073e9SAndroid Build Coastguard Worker "Register" + derived_type + ".cpp" 419*da0073e9SAndroid Build Coastguard Worker for derived_type in enabled_backends 420*da0073e9SAndroid Build Coastguard Worker ] + [ 421*da0073e9SAndroid Build Coastguard Worker derived_type + "Functions.h" 422*da0073e9SAndroid Build Coastguard Worker for derived_type in enabled_backends 423*da0073e9SAndroid Build Coastguard Worker if derived_type in PT_BACKEND_HEADERS or derived_type in get_static_dispatch_backend() 424*da0073e9SAndroid Build Coastguard Worker ] + [ 425*da0073e9SAndroid Build Coastguard Worker derived_type + "Functions_inl.h" 426*da0073e9SAndroid Build Coastguard Worker for derived_type in enabled_backends 427*da0073e9SAndroid Build Coastguard Worker if derived_type in PT_BACKEND_HEADERS or derived_type in get_static_dispatch_backend() 428*da0073e9SAndroid Build Coastguard Worker ] 429*da0073e9SAndroid Build Coastguard Worker 430*da0073e9SAndroid Build Coastguard Workerdef gen_aten_files( 431*da0073e9SAndroid Build Coastguard Worker name, 432*da0073e9SAndroid Build Coastguard Worker extra_flags = {}, 433*da0073e9SAndroid Build Coastguard Worker visibility = [], 434*da0073e9SAndroid Build Coastguard Worker compatible_with = [], 435*da0073e9SAndroid Build Coastguard Worker apple_sdks = None): 436*da0073e9SAndroid Build Coastguard Worker extra_params = [] 437*da0073e9SAndroid Build Coastguard Worker force_schema_registration = extra_flags.get("force_schema_registration", False) 438*da0073e9SAndroid Build Coastguard Worker op_registration_allowlist = extra_flags.get("op_registration_allowlist", None) 439*da0073e9SAndroid Build Coastguard Worker op_selection_yaml_path = extra_flags.get("op_selection_yaml_path", None) 440*da0073e9SAndroid Build Coastguard Worker enabled_backends = extra_flags.get("enabled_backends", None) 441*da0073e9SAndroid Build Coastguard Worker static_dispatch_backend = extra_flags.get("static_dispatch_backend", None) 442*da0073e9SAndroid Build Coastguard Worker 443*da0073e9SAndroid Build Coastguard Worker if force_schema_registration: 444*da0073e9SAndroid Build Coastguard Worker extra_params.append("--force_schema_registration") 445*da0073e9SAndroid Build Coastguard Worker if op_registration_allowlist != None and is_string(op_registration_allowlist): 446*da0073e9SAndroid Build Coastguard Worker extra_params.append("--op_registration_whitelist") 447*da0073e9SAndroid Build Coastguard Worker extra_params.append(op_registration_allowlist) 448*da0073e9SAndroid Build Coastguard Worker if op_selection_yaml_path != None and is_string(op_selection_yaml_path): 449*da0073e9SAndroid Build Coastguard Worker extra_params.append("--op_selection_yaml_path") 450*da0073e9SAndroid Build Coastguard Worker extra_params.append(op_selection_yaml_path) 451*da0073e9SAndroid Build Coastguard Worker if enabled_backends != None and is_list(enabled_backends): 452*da0073e9SAndroid Build Coastguard Worker extra_params.append("--backend_whitelist") 453*da0073e9SAndroid Build Coastguard Worker extra_params.extend(enabled_backends) 454*da0073e9SAndroid Build Coastguard Worker if _get_enable_lightweight_dispatch(): 455*da0073e9SAndroid Build Coastguard Worker extra_params.append("--skip_dispatcher_op_registration") 456*da0073e9SAndroid Build Coastguard Worker if static_dispatch_backend: 457*da0073e9SAndroid Build Coastguard Worker extra_params.append("--static_dispatch_backend") 458*da0073e9SAndroid Build Coastguard Worker extra_params.extend(static_dispatch_backend) 459*da0073e9SAndroid Build Coastguard Worker backends = static_dispatch_backend 460*da0073e9SAndroid Build Coastguard Worker else: 461*da0073e9SAndroid Build Coastguard Worker backends = enabled_backends 462*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 463*da0073e9SAndroid Build Coastguard Worker name = name, 464*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 465*da0073e9SAndroid Build Coastguard Worker outs = get_aten_generated_files(backends), 466*da0073e9SAndroid Build Coastguard Worker cmd = "$(exe {}torchgen:gen) ".format(ROOT_PATH) + " ".join([ 467*da0073e9SAndroid Build Coastguard Worker "--source-path $(location {}:aten_src_path)/aten/src/ATen".format(ROOT), 468*da0073e9SAndroid Build Coastguard Worker "--install_dir $OUT", 469*da0073e9SAndroid Build Coastguard Worker "--aoti_install_dir $OUT/torch/csrc/inductor/aoti_torch/generated" 470*da0073e9SAndroid Build Coastguard Worker ] + extra_params), 471*da0073e9SAndroid Build Coastguard Worker visibility = visibility, 472*da0073e9SAndroid Build Coastguard Worker compatible_with = compatible_with, 473*da0073e9SAndroid Build Coastguard Worker apple_sdks = apple_sdks, 474*da0073e9SAndroid Build Coastguard Worker ) 475*da0073e9SAndroid Build Coastguard Worker 476*da0073e9SAndroid Build Coastguard Workerdef gen_aten_unboxing_files( 477*da0073e9SAndroid Build Coastguard Worker genrule_name, 478*da0073e9SAndroid Build Coastguard Worker extra_flags = {}): 479*da0073e9SAndroid Build Coastguard Worker extra_params = [] 480*da0073e9SAndroid Build Coastguard Worker op_selection_yaml_path = extra_flags.get("op_selection_yaml_path", None) 481*da0073e9SAndroid Build Coastguard Worker op_registration_allowlist = extra_flags.get("op_registration_allowlist", None) 482*da0073e9SAndroid Build Coastguard Worker if op_selection_yaml_path != None and is_string(op_selection_yaml_path): 483*da0073e9SAndroid Build Coastguard Worker extra_params.append("--op_selection_yaml_path") 484*da0073e9SAndroid Build Coastguard Worker extra_params.append(op_selection_yaml_path) 485*da0073e9SAndroid Build Coastguard Worker if op_registration_allowlist != None and is_string(op_registration_allowlist): 486*da0073e9SAndroid Build Coastguard Worker extra_params.append("--op_registration_allowlist") 487*da0073e9SAndroid Build Coastguard Worker extra_params.append(op_registration_allowlist) 488*da0073e9SAndroid Build Coastguard Worker 489*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 490*da0073e9SAndroid Build Coastguard Worker name = genrule_name, 491*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 492*da0073e9SAndroid Build Coastguard Worker outs = get_unboxing_generated_files(), 493*da0073e9SAndroid Build Coastguard Worker cmd = "$(exe {}tools:gen_unboxing_bin) ".format(ROOT_PATH) + " ".join([ 494*da0073e9SAndroid Build Coastguard Worker "--source-path $(location {}:aten_src_path)/aten/src/ATen".format(ROOT), 495*da0073e9SAndroid Build Coastguard Worker "--install_dir $OUT", 496*da0073e9SAndroid Build Coastguard Worker ] + extra_params), 497*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 498*da0073e9SAndroid Build Coastguard Worker ) 499*da0073e9SAndroid Build Coastguard Worker 500*da0073e9SAndroid Build Coastguard Workerdef copy_template_registration_files(name, apple_sdks = None): 501*da0073e9SAndroid Build Coastguard Worker cmd = [] 502*da0073e9SAndroid Build Coastguard Worker cmd_exe = [] 503*da0073e9SAndroid Build Coastguard Worker 504*da0073e9SAndroid Build Coastguard Worker template_source_dict = get_template_source_dict() 505*da0073e9SAndroid Build Coastguard Worker 506*da0073e9SAndroid Build Coastguard Worker # Ideally, we would run one copy command for a single source directory along 507*da0073e9SAndroid Build Coastguard Worker # with all its child directories, but it's somewhat hard to know if a directory 508*da0073e9SAndroid Build Coastguard Worker # is a child of another just bu looking at the metadata (directory relative 509*da0073e9SAndroid Build Coastguard Worker # path) that we currently have since 1 directory could look like a parent of 510*da0073e9SAndroid Build Coastguard Worker # another and yet come from a different filegroup() rule. 511*da0073e9SAndroid Build Coastguard Worker # 512*da0073e9SAndroid Build Coastguard Worker for (path_prefix, file_paths) in template_source_dict.items(): 513*da0073e9SAndroid Build Coastguard Worker cmd.append("mkdir -p $OUT/{}".format(path_prefix)) 514*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("md $OUT/{}".format(path_prefix)) 515*da0073e9SAndroid Build Coastguard Worker 516*da0073e9SAndroid Build Coastguard Worker # Adding *.cpp is a workaround to prevent cp from thrown an error when it 517*da0073e9SAndroid Build Coastguard Worker # encounters a directory (since -r was not specified). If files with an 518*da0073e9SAndroid Build Coastguard Worker # extension other than .cpp need to be copied, then the command below 519*da0073e9SAndroid Build Coastguard Worker # will not work and will need to be updated. 520*da0073e9SAndroid Build Coastguard Worker # 521*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f $(location {0}:templated_selective_build_srcs)/{1}/*.cpp $OUT/{1}/".format(ROOT, path_prefix)) 522*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("robocopy /E $(location {0}:templated_selective_build_srcs)/{1} $OUT/{1}".format(ROOT, path_prefix)) 523*da0073e9SAndroid Build Coastguard Worker 524*da0073e9SAndroid Build Coastguard Worker if NOT_OSS: 525*da0073e9SAndroid Build Coastguard Worker for file_path in TEMPLATE_MASKRCNN_SOURCE_LIST: 526*da0073e9SAndroid Build Coastguard Worker maskrcnn_file = "$(location //xplat/caffe2/fb/custom_ops/maskrcnn:templated_selective_build_srcs)/" + file_path 527*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f " + maskrcnn_file + " $OUT") 528*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("copy " + maskrcnn_file + " $OUT") 529*da0073e9SAndroid Build Coastguard Worker 530*da0073e9SAndroid Build Coastguard Worker cmd.append("mkdir -p $OUT/aten/src/ATen") 531*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("md $OUT/aten/src/ATen") 532*da0073e9SAndroid Build Coastguard Worker 533*da0073e9SAndroid Build Coastguard Worker # NB: CUDA is skipped here because this is selective build and CUDA is not 534*da0073e9SAndroid Build Coastguard Worker # supported for selective build 535*da0073e9SAndroid Build Coastguard Worker for ufunc_file in aten_ufunc_generated_all_cpu_sources("$(location " + ROOT + ":gen_aten[{}])"): 536*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f " + ufunc_file + " $OUT/aten/src/ATen") 537*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("copy " + ufunc_file + " $OUT/aten/src/ATen") 538*da0073e9SAndroid Build Coastguard Worker 539*da0073e9SAndroid Build Coastguard Worker if NOT_OSS: 540*da0073e9SAndroid Build Coastguard Worker pvd_batch_box_cox_file = "$(location //xplat/caffe2/fb/custom_ops/batch_box_cox:templated_selective_build_srcs)/register_batch_box_cox_ops.cpp" 541*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f " + pvd_batch_box_cox_file + " $OUT") 542*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("copy " + pvd_batch_box_cox_file + " $OUT") 543*da0073e9SAndroid Build Coastguard Worker 544*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 545*da0073e9SAndroid Build Coastguard Worker name = name, 546*da0073e9SAndroid Build Coastguard Worker cmd = " && ".join(cmd), 547*da0073e9SAndroid Build Coastguard Worker cmd_exe = "@powershell -Command " + ("; ".join(cmd_exe)), 548*da0073e9SAndroid Build Coastguard Worker outs = get_template_registration_files_outs(IS_OSS), 549*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 550*da0073e9SAndroid Build Coastguard Worker apple_sdks = apple_sdks, 551*da0073e9SAndroid Build Coastguard Worker ) 552*da0073e9SAndroid Build Coastguard Worker 553*da0073e9SAndroid Build Coastguard Workerdef get_feature_tracer_source_list(): 554*da0073e9SAndroid Build Coastguard Worker """ 555*da0073e9SAndroid Build Coastguard Worker Return just the Feature specific handlers used in the model tracer. 556*da0073e9SAndroid Build Coastguard Worker """ 557*da0073e9SAndroid Build Coastguard Worker sources = [] 558*da0073e9SAndroid Build Coastguard Worker for s in torch_mobile_tracer_sources: 559*da0073e9SAndroid Build Coastguard Worker if s.endswith("Tracer.cpp"): 560*da0073e9SAndroid Build Coastguard Worker sources.append(s) 561*da0073e9SAndroid Build Coastguard Worker return sources 562*da0073e9SAndroid Build Coastguard Worker 563*da0073e9SAndroid Build Coastguard Workerdef pt_operator_query_codegen( 564*da0073e9SAndroid Build Coastguard Worker name, 565*da0073e9SAndroid Build Coastguard Worker deps = [], 566*da0073e9SAndroid Build Coastguard Worker train = False, 567*da0073e9SAndroid Build Coastguard Worker enforce_traced_op_list = False, 568*da0073e9SAndroid Build Coastguard Worker pt_allow_forced_schema_registration = True, 569*da0073e9SAndroid Build Coastguard Worker compatible_with = [], 570*da0073e9SAndroid Build Coastguard Worker apple_sdks = None): 571*da0073e9SAndroid Build Coastguard Worker oplist_dir_name = name + "_pt_oplist" 572*da0073e9SAndroid Build Coastguard Worker 573*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 574*da0073e9SAndroid Build Coastguard Worker fb_native.genrule( 575*da0073e9SAndroid Build Coastguard Worker name = oplist_dir_name, 576*da0073e9SAndroid Build Coastguard Worker cmd = ("$(exe {}tools:gen_oplist) ".format(ROOT_PATH) + 577*da0073e9SAndroid Build Coastguard Worker "--model_file_list_path $(@query_outputs 'attrfilter(labels, pt_operator_library, deps(set({deps})))') " + 578*da0073e9SAndroid Build Coastguard Worker ("" if enforce_traced_op_list else "--allow_include_all_overloads ") + 579*da0073e9SAndroid Build Coastguard Worker "--output_dir $OUT ").format(deps = " ".join(["\"{}\"".format(d) for d in deps])), 580*da0073e9SAndroid Build Coastguard Worker outs = get_gen_oplist_outs(), 581*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 582*da0073e9SAndroid Build Coastguard Worker compatible_with = compatible_with, 583*da0073e9SAndroid Build Coastguard Worker ) 584*da0073e9SAndroid Build Coastguard Worker 585*da0073e9SAndroid Build Coastguard Worker # Aten files 586*da0073e9SAndroid Build Coastguard Worker aten_genrule = name + "_aten" 587*da0073e9SAndroid Build Coastguard Worker extra_flags = { 588*da0073e9SAndroid Build Coastguard Worker "enabled_backends": USED_PT_BACKENDS, 589*da0073e9SAndroid Build Coastguard Worker "op_selection_yaml_path": "$(location :{}[selected_operators.yaml])".format(oplist_dir_name), 590*da0073e9SAndroid Build Coastguard Worker } 591*da0073e9SAndroid Build Coastguard Worker 592*da0073e9SAndroid Build Coastguard Worker if train and pt_allow_forced_schema_registration: 593*da0073e9SAndroid Build Coastguard Worker extra_flags["force_schema_registration"] = True 594*da0073e9SAndroid Build Coastguard Worker 595*da0073e9SAndroid Build Coastguard Worker unboxing_genrule = name + "_unboxing" 596*da0073e9SAndroid Build Coastguard Worker if _get_enable_lightweight_dispatch(): 597*da0073e9SAndroid Build Coastguard Worker gen_aten_unboxing_files( 598*da0073e9SAndroid Build Coastguard Worker unboxing_genrule, 599*da0073e9SAndroid Build Coastguard Worker extra_flags = extra_flags, 600*da0073e9SAndroid Build Coastguard Worker ) 601*da0073e9SAndroid Build Coastguard Worker 602*da0073e9SAndroid Build Coastguard Worker static_dispatch_backend = get_static_dispatch_backend() 603*da0073e9SAndroid Build Coastguard Worker if static_dispatch_backend: 604*da0073e9SAndroid Build Coastguard Worker extra_flags["static_dispatch_backend"] = static_dispatch_backend 605*da0073e9SAndroid Build Coastguard Worker 606*da0073e9SAndroid Build Coastguard Worker gen_aten_files( 607*da0073e9SAndroid Build Coastguard Worker aten_genrule, 608*da0073e9SAndroid Build Coastguard Worker extra_flags = extra_flags, 609*da0073e9SAndroid Build Coastguard Worker compatible_with = compatible_with, 610*da0073e9SAndroid Build Coastguard Worker apple_sdks = apple_sdks, 611*da0073e9SAndroid Build Coastguard Worker ) 612*da0073e9SAndroid Build Coastguard Worker 613*da0073e9SAndroid Build Coastguard Worker # unboxing_wrappers files 614*da0073e9SAndroid Build Coastguard Worker extra_params = [ 615*da0073e9SAndroid Build Coastguard Worker "--operators_yaml_path", 616*da0073e9SAndroid Build Coastguard Worker "$(location :" + oplist_dir_name + "[selected_operators.yaml])", 617*da0073e9SAndroid Build Coastguard Worker ] 618*da0073e9SAndroid Build Coastguard Worker unboxing_and_autograd_genrule = name + "_unboxing_and_autograd" 619*da0073e9SAndroid Build Coastguard Worker gen_aten_libtorch_files( 620*da0073e9SAndroid Build Coastguard Worker unboxing_and_autograd_genrule, 621*da0073e9SAndroid Build Coastguard Worker extra_params, 622*da0073e9SAndroid Build Coastguard Worker compatible_with, 623*da0073e9SAndroid Build Coastguard Worker apple_sdks = apple_sdks, 624*da0073e9SAndroid Build Coastguard Worker ) 625*da0073e9SAndroid Build Coastguard Worker 626*da0073e9SAndroid Build Coastguard Worker # Template runtime files (prim ops, etc) 627*da0073e9SAndroid Build Coastguard Worker template_registration_genrule = name + "_template_registration" 628*da0073e9SAndroid Build Coastguard Worker copy_template_registration_files(template_registration_genrule, apple_sdks = apple_sdks) 629*da0073e9SAndroid Build Coastguard Worker 630*da0073e9SAndroid Build Coastguard Worker # Files needed for metal 631*da0073e9SAndroid Build Coastguard Worker if NOT_OSS: 632*da0073e9SAndroid Build Coastguard Worker metal_genrule = name + "_metal" 633*da0073e9SAndroid Build Coastguard Worker copy_metal(metal_genrule, apple_sdks = apple_sdks) 634*da0073e9SAndroid Build Coastguard Worker 635*da0073e9SAndroid Build Coastguard Worker srcs = get_aten_selective_cpp_rules( 636*da0073e9SAndroid Build Coastguard Worker aten_genrule, 637*da0073e9SAndroid Build Coastguard Worker static_dispatch_backend if static_dispatch_backend else USED_PT_BACKENDS, 638*da0073e9SAndroid Build Coastguard Worker ) + get_template_registration_file_rules(template_registration_genrule, IS_OSS) + ([ 639*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/VariableType_0.cpp]".format(unboxing_and_autograd_genrule), 640*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/VariableType_1.cpp]".format(unboxing_and_autograd_genrule), 641*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/VariableType_2.cpp]".format(unboxing_and_autograd_genrule), 642*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/VariableType_3.cpp]".format(unboxing_and_autograd_genrule), 643*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/VariableType_4.cpp]".format(unboxing_and_autograd_genrule), 644*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/ADInplaceOrViewType_0.cpp]".format(unboxing_and_autograd_genrule), 645*da0073e9SAndroid Build Coastguard Worker ":{}[autograd/generated/ADInplaceOrViewType_1.cpp]".format(unboxing_and_autograd_genrule), 646*da0073e9SAndroid Build Coastguard Worker ] if train else []) + ([ 647*da0073e9SAndroid Build Coastguard Worker ":{}[SupportedMobileModelsRegistration.cpp]".format(oplist_dir_name), 648*da0073e9SAndroid Build Coastguard Worker ] if NOT_OSS else []) 649*da0073e9SAndroid Build Coastguard Worker 650*da0073e9SAndroid Build Coastguard Worker headers = { 651*da0073e9SAndroid Build Coastguard Worker "selected_mobile_ops.h": ":{}[selected_mobile_ops.h]".format(oplist_dir_name), 652*da0073e9SAndroid Build Coastguard Worker } 653*da0073e9SAndroid Build Coastguard Worker 654*da0073e9SAndroid Build Coastguard Worker if _get_enable_lightweight_dispatch(): 655*da0073e9SAndroid Build Coastguard Worker srcs.extend([ 656*da0073e9SAndroid Build Coastguard Worker ":{}[UnboxingFunctions_0.cpp]".format(unboxing_genrule), 657*da0073e9SAndroid Build Coastguard Worker ":{}[UnboxingFunctions_1.cpp]".format(unboxing_genrule), 658*da0073e9SAndroid Build Coastguard Worker ":{}[UnboxingFunctions_2.cpp]".format(unboxing_genrule), 659*da0073e9SAndroid Build Coastguard Worker ":{}[UnboxingFunctions_3.cpp]".format(unboxing_genrule), 660*da0073e9SAndroid Build Coastguard Worker ":{}[UnboxingFunctions_4.cpp]".format(unboxing_genrule), 661*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_0.cpp]".format(unboxing_genrule), 662*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_1.cpp]".format(unboxing_genrule), 663*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_2.cpp]".format(unboxing_genrule), 664*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_3.cpp]".format(unboxing_genrule), 665*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_4.cpp]".format(unboxing_genrule), 666*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_5.cpp]".format(unboxing_genrule), 667*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_6.cpp]".format(unboxing_genrule), 668*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_7.cpp]".format(unboxing_genrule), 669*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_8.cpp]".format(unboxing_genrule), 670*da0073e9SAndroid Build Coastguard Worker ":{}[RegisterCodegenUnboxedKernels_9.cpp]".format(unboxing_genrule), 671*da0073e9SAndroid Build Coastguard Worker ]) 672*da0073e9SAndroid Build Coastguard Worker headers["UnboxingFunctions.h"] = ":{}[UnboxingFunctions.h]".format(unboxing_genrule) 673*da0073e9SAndroid Build Coastguard Worker return {"headers": headers, "srcs": srcs} 674*da0073e9SAndroid Build Coastguard Worker 675*da0073e9SAndroid Build Coastguard Workerdef gen_aten_libtorch_files(name, extra_params = [], compatible_with = [], apple_sdks = None): 676*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 677*da0073e9SAndroid Build Coastguard Worker name = name, 678*da0073e9SAndroid Build Coastguard Worker outs = get_generate_code_bin_outs(), 679*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 680*da0073e9SAndroid Build Coastguard Worker bash = "mkdir -p tools && " + 681*da0073e9SAndroid Build Coastguard Worker "$(exe {}tools:generate_code_bin) ".format(ROOT_PATH) + " ".join( 682*da0073e9SAndroid Build Coastguard Worker # Mobile build only needs libtorch - skip python bindings for now, except 683*da0073e9SAndroid Build Coastguard Worker # for ovrsource, which needs Python bindings. 684*da0073e9SAndroid Build Coastguard Worker (["--subset libtorch"] if not is_arvr_mode() else []) + [ 685*da0073e9SAndroid Build Coastguard Worker "--native-functions-path $(location {}:aten_src_path)/aten/src/ATen/native/native_functions.yaml".format(ROOT), 686*da0073e9SAndroid Build Coastguard Worker "--tags-path $(location {}:aten_src_path)/aten/src/ATen/native/tags.yaml".format(ROOT), 687*da0073e9SAndroid Build Coastguard Worker "--install_dir $OUT", 688*da0073e9SAndroid Build Coastguard Worker ] + extra_params, 689*da0073e9SAndroid Build Coastguard Worker ), 690*da0073e9SAndroid Build Coastguard Worker cmd_exe = "@powershell -Command New-Item -Path tools -ItemType Directory -Force; " + 691*da0073e9SAndroid Build Coastguard Worker "$(exe {}tools:generate_code_bin) ".format(ROOT_PATH) + " ".join( 692*da0073e9SAndroid Build Coastguard Worker # Mobile build only needs libtorch - skip python bindings for now, except 693*da0073e9SAndroid Build Coastguard Worker # for ovrsource, which needs Python bindings. 694*da0073e9SAndroid Build Coastguard Worker (["--subset libtorch"] if not is_arvr_mode() else []) + [ 695*da0073e9SAndroid Build Coastguard Worker "--native-functions-path $(location {}:aten_src_path)/aten/src/ATen/native/native_functions.yaml".format(ROOT), 696*da0073e9SAndroid Build Coastguard Worker "--tags-path $(location {}:aten_src_path)/aten/src/ATen/native/tags.yaml".format(ROOT), 697*da0073e9SAndroid Build Coastguard Worker "--install_dir $OUT", 698*da0073e9SAndroid Build Coastguard Worker ] + extra_params, 699*da0073e9SAndroid Build Coastguard Worker ), 700*da0073e9SAndroid Build Coastguard Worker compatible_with = compatible_with, 701*da0073e9SAndroid Build Coastguard Worker apple_sdks = apple_sdks, 702*da0073e9SAndroid Build Coastguard Worker ) 703*da0073e9SAndroid Build Coastguard Worker 704*da0073e9SAndroid Build Coastguard Workerdef vulkan_spv_shader_library(name, spv_filegroup): 705*da0073e9SAndroid Build Coastguard Worker genrule_cmd = [ 706*da0073e9SAndroid Build Coastguard Worker "$(exe //xplat/caffe2/tools:gen_aten_vulkan_spv_bin)", 707*da0073e9SAndroid Build Coastguard Worker "--glsl-paths $(location {})".format(spv_filegroup), 708*da0073e9SAndroid Build Coastguard Worker "--output-path $OUT --env FLOAT_IMAGE_FORMAT={}".format(get_glsl_image_format()), 709*da0073e9SAndroid Build Coastguard Worker "--glslc-path=$(exe //xplat/caffe2/fb/vulkan/dotslash:glslc)", 710*da0073e9SAndroid Build Coastguard Worker "--tmp-dir-path=$TMP", 711*da0073e9SAndroid Build Coastguard Worker ] 712*da0073e9SAndroid Build Coastguard Worker 713*da0073e9SAndroid Build Coastguard Worker genrule_name = "gen_{}_cpp".format(name) 714*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 715*da0073e9SAndroid Build Coastguard Worker name = "gen_{}_cpp".format(name), 716*da0073e9SAndroid Build Coastguard Worker outs = { 717*da0073e9SAndroid Build Coastguard Worker "{}.cpp".format(name): ["spv.cpp"], 718*da0073e9SAndroid Build Coastguard Worker }, 719*da0073e9SAndroid Build Coastguard Worker cmd = " ".join(genrule_cmd), 720*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 721*da0073e9SAndroid Build Coastguard Worker labels = ["uses_dotslash"], 722*da0073e9SAndroid Build Coastguard Worker ) 723*da0073e9SAndroid Build Coastguard Worker 724*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 725*da0073e9SAndroid Build Coastguard Worker name = name, 726*da0073e9SAndroid Build Coastguard Worker srcs = [ 727*da0073e9SAndroid Build Coastguard Worker ":{}[{}.cpp]".format(genrule_name, name), 728*da0073e9SAndroid Build Coastguard Worker ], 729*da0073e9SAndroid Build Coastguard Worker # Static initialization is used to register shaders to the global shader registry, 730*da0073e9SAndroid Build Coastguard Worker # therefore link_whole must be True to make sure unused symbols are not discarded. 731*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: Avoid `link_whole=True` 732*da0073e9SAndroid Build Coastguard Worker link_whole = True, 733*da0073e9SAndroid Build Coastguard Worker # Define a soname that can be used for dynamic loading in Java, Python, etc. 734*da0073e9SAndroid Build Coastguard Worker soname = "lib{}.$(ext)".format(name), 735*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 736*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 737*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2:torch_vulkan_api", 738*da0073e9SAndroid Build Coastguard Worker ], 739*da0073e9SAndroid Build Coastguard Worker ) 740*da0073e9SAndroid Build Coastguard Worker 741*da0073e9SAndroid Build Coastguard Workerdef copy_metal(name, apple_sdks = None): 742*da0073e9SAndroid Build Coastguard Worker cmd = [] 743*da0073e9SAndroid Build Coastguard Worker cmd_exe = [] 744*da0073e9SAndroid Build Coastguard Worker metal_source_dict = get_metal_source_dict() 745*da0073e9SAndroid Build Coastguard Worker 746*da0073e9SAndroid Build Coastguard Worker # Copy all source files over to bring them into the per app build 747*da0073e9SAndroid Build Coastguard Worker for path_prefix in sorted(metal_source_dict.keys()): 748*da0073e9SAndroid Build Coastguard Worker cmd.append("mkdir -p $OUT/{}".format(path_prefix)) 749*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("mkdir -Force $OUT/{0}".format(path_prefix)) 750*da0073e9SAndroid Build Coastguard Worker 751*da0073e9SAndroid Build Coastguard Worker # Not every directory has a mm or cpp file so '2>/dev/null || :' are tricks to suppress the error messages and codes. 752*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f {0}/{1}/*.mm $OUT/{1}/ 2>/dev/null || :".format("$(location //xplat/caffe2:metal_build_srcs)", path_prefix)) 753*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f {0}/{1}/*.cpp $OUT/{1}/ 2>/dev/null || :".format("$(location //xplat/caffe2:metal_build_srcs)", path_prefix)) 754*da0073e9SAndroid Build Coastguard Worker 755*da0073e9SAndroid Build Coastguard Worker # Robocopy has a default success code of 1 which buck treats as failure so the echo masks that problem 756*da0073e9SAndroid Build Coastguard Worker cmd_exe.append("(robocopy /E /NFL /NDL /NJH /NJS {0}/{1} $OUT/{1}) || ECHO robocopy failed".format("$(location //xplat/caffe2:metal_build_srcs)", path_prefix)) 757*da0073e9SAndroid Build Coastguard Worker 758*da0073e9SAndroid Build Coastguard Worker # Metal custom ops currently have to be brought into selective build because they directly reference metal ops instead of 759*da0073e9SAndroid Build Coastguard Worker # going through the dispatcher. There is some weird issues with the genrule and these files locations on windows though, so 760*da0073e9SAndroid Build Coastguard Worker # for now we simply skip building them for windows where they very likely arent needed anyway. 761*da0073e9SAndroid Build Coastguard Worker # Metal MaskRCNN custom op 762*da0073e9SAndroid Build Coastguard Worker for full_path in METAL_MASKRCNN_SOURCE_LIST: 763*da0073e9SAndroid Build Coastguard Worker path_prefix = paths.dirname(full_path) 764*da0073e9SAndroid Build Coastguard Worker cmd.append("mkdir -p $OUT/{}".format(path_prefix)) 765*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f {0}/{1}/*.mm $OUT/{1}/ 2>/dev/null || :".format("$(location //xplat/caffe2/fb/metal:metal_maskrcnn_sources)", path_prefix)) 766*da0073e9SAndroid Build Coastguard Worker 767*da0073e9SAndroid Build Coastguard Worker # Unet Metal Prepack Custom op 768*da0073e9SAndroid Build Coastguard Worker unet_metal_prepack_file = "$(location //xplat/caffe2/fb/custom_ops/unet_metal_prepack:unet_metal_prepack_sources)" 769*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f " + unet_metal_prepack_file + "/unet_metal_prepack.cpp" + " $OUT") 770*da0073e9SAndroid Build Coastguard Worker cmd.append("cp -f " + unet_metal_prepack_file + "/unet_metal_prepack.mm" + " $OUT") 771*da0073e9SAndroid Build Coastguard Worker 772*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 773*da0073e9SAndroid Build Coastguard Worker name = name, 774*da0073e9SAndroid Build Coastguard Worker cmd = " && ".join(cmd), 775*da0073e9SAndroid Build Coastguard Worker cmd_exe = "@powershell -Command " + ("; ".join(cmd_exe)), 776*da0073e9SAndroid Build Coastguard Worker # due to an obscure bug certain custom ops werent being copied correctly on windows. ARVR also sometimes builds android targets on windows, 777*da0073e9SAndroid Build Coastguard Worker # so we just exclude those targets from being copied for those platforms (They end up uncompiled anyway). 778*da0073e9SAndroid Build Coastguard Worker outs = select({ 779*da0073e9SAndroid Build Coastguard Worker "DEFAULT": get_metal_registration_files_outs(), 780*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:android": get_metal_registration_files_outs_windows(), 781*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:windows": get_metal_registration_files_outs_windows(), 782*da0073e9SAndroid Build Coastguard Worker }), 783*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 784*da0073e9SAndroid Build Coastguard Worker apple_sdks = apple_sdks, 785*da0073e9SAndroid Build Coastguard Worker ) 786*da0073e9SAndroid Build Coastguard Worker 787*da0073e9SAndroid Build Coastguard Workerdef get_pt_operator_registry_dict( 788*da0073e9SAndroid Build Coastguard Worker name, 789*da0073e9SAndroid Build Coastguard Worker deps = [], 790*da0073e9SAndroid Build Coastguard Worker train = False, 791*da0073e9SAndroid Build Coastguard Worker labels = [], 792*da0073e9SAndroid Build Coastguard Worker env = [], 793*da0073e9SAndroid Build Coastguard Worker template_select = True, 794*da0073e9SAndroid Build Coastguard Worker enforce_traced_op_list = False, 795*da0073e9SAndroid Build Coastguard Worker pt_allow_forced_schema_registration = True, 796*da0073e9SAndroid Build Coastguard Worker enable_flatbuffer = False, 797*da0073e9SAndroid Build Coastguard Worker **kwargs): 798*da0073e9SAndroid Build Coastguard Worker code_gen_files = pt_operator_query_codegen( 799*da0073e9SAndroid Build Coastguard Worker name, 800*da0073e9SAndroid Build Coastguard Worker deps = deps, 801*da0073e9SAndroid Build Coastguard Worker train = train, 802*da0073e9SAndroid Build Coastguard Worker enforce_traced_op_list = enforce_traced_op_list, 803*da0073e9SAndroid Build Coastguard Worker pt_allow_forced_schema_registration = pt_allow_forced_schema_registration, 804*da0073e9SAndroid Build Coastguard Worker compatible_with = kwargs.get("compatible_with", []), 805*da0073e9SAndroid Build Coastguard Worker apple_sdks = kwargs.get("apple_sdks"), 806*da0073e9SAndroid Build Coastguard Worker ) 807*da0073e9SAndroid Build Coastguard Worker 808*da0073e9SAndroid Build Coastguard Worker return dict( 809*da0073e9SAndroid Build Coastguard Worker srcs = code_gen_files["srcs"], 810*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 811*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 812*da0073e9SAndroid Build Coastguard Worker ], 813*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 814*da0073e9SAndroid Build Coastguard Worker link_whole = True, 815*da0073e9SAndroid Build Coastguard Worker soname = "libtorch-code-gen.$(ext)", 816*da0073e9SAndroid Build Coastguard Worker header_namespace = "ATen", 817*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_aten_compiler_flags(), 818*da0073e9SAndroid Build Coastguard Worker exported_headers = code_gen_files["headers"], 819*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_aten_preprocessor_flags() + (["-DTEMPLATE_SELECTIVE_BUILD"] if template_select else []), 820*da0073e9SAndroid Build Coastguard Worker headers = kwargs.pop("headers", []), 821*da0073e9SAndroid Build Coastguard Worker labels = kwargs.pop("labels", []) + [ 822*da0073e9SAndroid Build Coastguard Worker # This library has multiple sources with the same file name 823*da0073e9SAndroid Build Coastguard Worker # and does not work with Buck filegroup used in bad practices. 824*da0073e9SAndroid Build Coastguard Worker # Opt out of the bad practices check with the below label. 825*da0073e9SAndroid Build Coastguard Worker "bad_practices_ignore_override", 826*da0073e9SAndroid Build Coastguard Worker "pt_operator_registry", 827*da0073e9SAndroid Build Coastguard Worker ], 828*da0073e9SAndroid Build Coastguard Worker deps = [ 829*da0073e9SAndroid Build Coastguard Worker # need absolute path here 830*da0073e9SAndroid Build Coastguard Worker ROOT + ":torch_mobile_core", 831*da0073e9SAndroid Build Coastguard Worker ROOT + ":aten_cpu", 832*da0073e9SAndroid Build Coastguard Worker ROOT + ":aten_metal_prepack_header", 833*da0073e9SAndroid Build Coastguard Worker third_party("glog"), 834*da0073e9SAndroid Build Coastguard Worker C10, 835*da0073e9SAndroid Build Coastguard Worker ] + ([ROOT + ":torch_mobile_train"] if train else []), 836*da0073e9SAndroid Build Coastguard Worker **kwargs 837*da0073e9SAndroid Build Coastguard Worker ) 838*da0073e9SAndroid Build Coastguard Worker 839*da0073e9SAndroid Build Coastguard Worker# these targets are shared by internal and OSS BUCK 840*da0073e9SAndroid Build Coastguard Workerdef define_buck_targets( 841*da0073e9SAndroid Build Coastguard Worker aten_default_args = dict(), 842*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library = fb_xplat_cxx_library, 843*da0073e9SAndroid Build Coastguard Worker c2_fbandroid_xplat_compiler_flags = [], 844*da0073e9SAndroid Build Coastguard Worker labels = []): 845*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 846*da0073e9SAndroid Build Coastguard Worker fb_native.filegroup( 847*da0073e9SAndroid Build Coastguard Worker name = "metal_build_srcs", 848*da0073e9SAndroid Build Coastguard Worker srcs = glob(METAL_SOURCE_LIST), 849*da0073e9SAndroid Build Coastguard Worker visibility = [ 850*da0073e9SAndroid Build Coastguard Worker "PUBLIC", 851*da0073e9SAndroid Build Coastguard Worker ], 852*da0073e9SAndroid Build Coastguard Worker ) 853*da0073e9SAndroid Build Coastguard Worker 854*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 855*da0073e9SAndroid Build Coastguard Worker fb_native.filegroup( 856*da0073e9SAndroid Build Coastguard Worker name = "templated_selective_build_srcs", 857*da0073e9SAndroid Build Coastguard Worker # NB: no glob here, there are generated targets in this list! 858*da0073e9SAndroid Build Coastguard Worker srcs = glob(TEMPLATE_SOURCE_LIST) + aten_ufunc_generated_all_cpu_sources(":gen_aten[{}]"), 859*da0073e9SAndroid Build Coastguard Worker visibility = [ 860*da0073e9SAndroid Build Coastguard Worker "PUBLIC", 861*da0073e9SAndroid Build Coastguard Worker ], 862*da0073e9SAndroid Build Coastguard Worker ) 863*da0073e9SAndroid Build Coastguard Worker 864*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 865*da0073e9SAndroid Build Coastguard Worker name = "aten_header", 866*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 867*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob([ 868*da0073e9SAndroid Build Coastguard Worker # ATen Core 869*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/core/**/*.h"), 870*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/ops/*.h"), 871*da0073e9SAndroid Build Coastguard Worker # ATen Base 872*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/*.h"), 873*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/cpu/**/*.h"), 874*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/detail/*.h"), 875*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/functorch/**/*.h"), 876*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/quantized/*.h"), 877*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/vulkan/*.h"), 878*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/metal/*.h"), 879*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/nnapi/*.h"), 880*da0073e9SAndroid Build Coastguard Worker # ATen Native 881*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/*.h"), 882*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/ao_sparse/quantized/cpu/*.h"), 883*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/cpu/**/*.h"), 884*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/sparse/*.h"), 885*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/nested/*.h"), 886*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/quantized/*.h"), 887*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/quantized/cpu/*.h"), 888*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/transformers/*.h"), 889*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/ufunc/*.h"), 890*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/utils/*.h"), 891*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/vulkan/ops/*.h"), 892*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/xnnpack/*.h"), 893*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/mps/*.h"), 894*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/mps/*.h"), 895*da0073e9SAndroid Build Coastguard Worker # Remove the following after modifying codegen for mobile. 896*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/mkl/*.h"), 897*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/mkl/*.h"), 898*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/mkldnn/*.h"), 899*da0073e9SAndroid Build Coastguard Worker ]), 900*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 901*da0073e9SAndroid Build Coastguard Worker labels = labels, 902*da0073e9SAndroid Build Coastguard Worker ) 903*da0073e9SAndroid Build Coastguard Worker 904*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 905*da0073e9SAndroid Build Coastguard Worker name = "aten_vulkan_header", 906*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 907*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob([ 908*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/vulkan/*.h"), 909*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/vulkan/ops/*.h"), 910*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/vulkan/*.h"), 911*da0073e9SAndroid Build Coastguard Worker ]), 912*da0073e9SAndroid Build Coastguard Worker labels = labels, 913*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 914*da0073e9SAndroid Build Coastguard Worker ) 915*da0073e9SAndroid Build Coastguard Worker 916*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 917*da0073e9SAndroid Build Coastguard Worker name = "jit_core_headers", 918*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 919*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob([("", x) for x in jit_core_headers]), 920*da0073e9SAndroid Build Coastguard Worker labels = labels, 921*da0073e9SAndroid Build Coastguard Worker ) 922*da0073e9SAndroid Build Coastguard Worker 923*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 924*da0073e9SAndroid Build Coastguard Worker name = "torch_headers", 925*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 926*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob( 927*da0073e9SAndroid Build Coastguard Worker [ 928*da0073e9SAndroid Build Coastguard Worker ("torch/csrc/api/include", "torch/**/*.h"), 929*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/**/*.h"), 930*da0073e9SAndroid Build Coastguard Worker ("", "torch/script.h"), 931*da0073e9SAndroid Build Coastguard Worker ("", "torch/library.h"), 932*da0073e9SAndroid Build Coastguard Worker ("", "torch/custom_class.h"), 933*da0073e9SAndroid Build Coastguard Worker ("", "torch/custom_class_detail.h"), 934*da0073e9SAndroid Build Coastguard Worker # Add again due to namespace difference from aten_header. 935*da0073e9SAndroid Build Coastguard Worker ("", "aten/src/ATen/*.h"), 936*da0073e9SAndroid Build Coastguard Worker ("", "aten/src/ATen/functorch/**/*.h"), 937*da0073e9SAndroid Build Coastguard Worker ("", "aten/src/ATen/quantized/*.h"), 938*da0073e9SAndroid Build Coastguard Worker ], 939*da0073e9SAndroid Build Coastguard Worker exclude = [ 940*da0073e9SAndroid Build Coastguard Worker # Don't need on mobile. 941*da0073e9SAndroid Build Coastguard Worker "torch/csrc/Exceptions.h", 942*da0073e9SAndroid Build Coastguard Worker "torch/csrc/python_headers.h", 943*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/mobile_bytecode_generated.h", 944*da0073e9SAndroid Build Coastguard Worker ], 945*da0073e9SAndroid Build Coastguard Worker ), 946*da0073e9SAndroid Build Coastguard Worker labels = labels, 947*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 948*da0073e9SAndroid Build Coastguard Worker deps = [ 949*da0073e9SAndroid Build Coastguard Worker ":generated-version-header", 950*da0073e9SAndroid Build Coastguard Worker ], 951*da0073e9SAndroid Build Coastguard Worker ) 952*da0073e9SAndroid Build Coastguard Worker 953*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 954*da0073e9SAndroid Build Coastguard Worker name = "aten_test_header", 955*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 956*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob([ 957*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/test/*.h"), 958*da0073e9SAndroid Build Coastguard Worker ]), 959*da0073e9SAndroid Build Coastguard Worker ) 960*da0073e9SAndroid Build Coastguard Worker 961*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 962*da0073e9SAndroid Build Coastguard Worker name = "aten_metal_prepack_header", 963*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 964*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob([ 965*da0073e9SAndroid Build Coastguard Worker ("aten/src", "ATen/native/metal/MetalPrepackOpContext.h"), 966*da0073e9SAndroid Build Coastguard Worker ]), 967*da0073e9SAndroid Build Coastguard Worker labels = labels, 968*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 969*da0073e9SAndroid Build Coastguard Worker ) 970*da0073e9SAndroid Build Coastguard Worker 971*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 972*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_headers", 973*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 974*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob( 975*da0073e9SAndroid Build Coastguard Worker [ 976*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/mobile/*.h"), 977*da0073e9SAndroid Build Coastguard Worker ], 978*da0073e9SAndroid Build Coastguard Worker ), 979*da0073e9SAndroid Build Coastguard Worker labels = labels, 980*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 981*da0073e9SAndroid Build Coastguard Worker ) 982*da0073e9SAndroid Build Coastguard Worker 983*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 984*da0073e9SAndroid Build Coastguard Worker name = "generated_aten_config_header", 985*da0073e9SAndroid Build Coastguard Worker header_namespace = "ATen", 986*da0073e9SAndroid Build Coastguard Worker exported_headers = { 987*da0073e9SAndroid Build Coastguard Worker "Config.h": ":generate_aten_config[Config.h]", 988*da0073e9SAndroid Build Coastguard Worker }, 989*da0073e9SAndroid Build Coastguard Worker labels = labels, 990*da0073e9SAndroid Build Coastguard Worker ) 991*da0073e9SAndroid Build Coastguard Worker 992*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 993*da0073e9SAndroid Build Coastguard Worker name = "generated-autograd-headers", 994*da0073e9SAndroid Build Coastguard Worker header_namespace = "torch/csrc/autograd/generated", 995*da0073e9SAndroid Build Coastguard Worker exported_headers = { 996*da0073e9SAndroid Build Coastguard Worker "Functions.h": ":gen_aten_libtorch[autograd/generated/Functions.h]", 997*da0073e9SAndroid Build Coastguard Worker "VariableType.h": ":gen_aten_libtorch[autograd/generated/VariableType.h]", 998*da0073e9SAndroid Build Coastguard Worker "variable_factories.h": ":gen_aten_libtorch[autograd/generated/variable_factories.h]", 999*da0073e9SAndroid Build Coastguard Worker "ViewFuncs.h": ":gen_aten_libtorch[autograd/generated/ViewFuncs.h]", 1000*da0073e9SAndroid Build Coastguard Worker # Don't build python bindings on mobile. 1001*da0073e9SAndroid Build Coastguard Worker #"python_functions.h", 1002*da0073e9SAndroid Build Coastguard Worker }, 1003*da0073e9SAndroid Build Coastguard Worker labels = labels, 1004*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1005*da0073e9SAndroid Build Coastguard Worker ) 1006*da0073e9SAndroid Build Coastguard Worker 1007*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1008*da0073e9SAndroid Build Coastguard Worker name = "generated-version-header", 1009*da0073e9SAndroid Build Coastguard Worker header_namespace = "torch", 1010*da0073e9SAndroid Build Coastguard Worker exported_headers = { 1011*da0073e9SAndroid Build Coastguard Worker "version.h": ":generate-version-header[version.h]", 1012*da0073e9SAndroid Build Coastguard Worker }, 1013*da0073e9SAndroid Build Coastguard Worker labels = labels, 1014*da0073e9SAndroid Build Coastguard Worker ) 1015*da0073e9SAndroid Build Coastguard Worker 1016*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 1017*da0073e9SAndroid Build Coastguard Worker fb_native.genrule( 1018*da0073e9SAndroid Build Coastguard Worker name = "generate-version-header", 1019*da0073e9SAndroid Build Coastguard Worker srcs = [ 1020*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/include/torch/version.h.in", 1021*da0073e9SAndroid Build Coastguard Worker "version.txt", 1022*da0073e9SAndroid Build Coastguard Worker ], 1023*da0073e9SAndroid Build Coastguard Worker cmd = "$(exe {}tools:gen-version-header) ".format(ROOT_PATH) + " ".join([ 1024*da0073e9SAndroid Build Coastguard Worker "--template-path", 1025*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/include/torch/version.h.in", 1026*da0073e9SAndroid Build Coastguard Worker "--version-path", 1027*da0073e9SAndroid Build Coastguard Worker "version.txt", 1028*da0073e9SAndroid Build Coastguard Worker "--output-path", 1029*da0073e9SAndroid Build Coastguard Worker "$OUT/version.h", 1030*da0073e9SAndroid Build Coastguard Worker ]), 1031*da0073e9SAndroid Build Coastguard Worker outs = { 1032*da0073e9SAndroid Build Coastguard Worker "version.h": ["version.h"], 1033*da0073e9SAndroid Build Coastguard Worker }, 1034*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 1035*da0073e9SAndroid Build Coastguard Worker ) 1036*da0073e9SAndroid Build Coastguard Worker 1037*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 1038*da0073e9SAndroid Build Coastguard Worker fb_native.filegroup( 1039*da0073e9SAndroid Build Coastguard Worker name = "aten_src_path", 1040*da0073e9SAndroid Build Coastguard Worker srcs = [ 1041*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/native/native_functions.yaml", 1042*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/native/tags.yaml", 1043*da0073e9SAndroid Build Coastguard Worker ] + glob(["aten/src/ATen/templates/*"]), 1044*da0073e9SAndroid Build Coastguard Worker visibility = [ 1045*da0073e9SAndroid Build Coastguard Worker "PUBLIC", 1046*da0073e9SAndroid Build Coastguard Worker ], 1047*da0073e9SAndroid Build Coastguard Worker ) 1048*da0073e9SAndroid Build Coastguard Worker 1049*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1050*da0073e9SAndroid Build Coastguard Worker name = "common_core", 1051*da0073e9SAndroid Build Coastguard Worker srcs = [ 1052*da0073e9SAndroid Build Coastguard Worker "caffe2/core/common.cc", 1053*da0073e9SAndroid Build Coastguard Worker ], 1054*da0073e9SAndroid Build Coastguard Worker apple_sdks = (IOS, MACOSX, APPLETVOS), 1055*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1056*da0073e9SAndroid Build Coastguard Worker labels = labels, 1057*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1058*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1059*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1060*da0073e9SAndroid Build Coastguard Worker windows_preferred_linkage = "static" if is_arvr_mode() else None, 1061*da0073e9SAndroid Build Coastguard Worker deps = [ 1062*da0073e9SAndroid Build Coastguard Worker ":caffe2_headers", 1063*da0073e9SAndroid Build Coastguard Worker C10, 1064*da0073e9SAndroid Build Coastguard Worker ], 1065*da0073e9SAndroid Build Coastguard Worker ) 1066*da0073e9SAndroid Build Coastguard Worker 1067*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 1068*da0073e9SAndroid Build Coastguard Worker fb_native.genrule( 1069*da0073e9SAndroid Build Coastguard Worker name = "generate_aten_config", 1070*da0073e9SAndroid Build Coastguard Worker srcs = [ 1071*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/Config.h.in", 1072*da0073e9SAndroid Build Coastguard Worker ], 1073*da0073e9SAndroid Build Coastguard Worker cmd = "$(exe {}tools:substitute) ".format(ROOT_PATH) + " ".join([ 1074*da0073e9SAndroid Build Coastguard Worker "--install_dir", 1075*da0073e9SAndroid Build Coastguard Worker "$OUT", 1076*da0073e9SAndroid Build Coastguard Worker "--input-file", 1077*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/Config.h.in", 1078*da0073e9SAndroid Build Coastguard Worker "--output-file", 1079*da0073e9SAndroid Build Coastguard Worker "Config.h", 1080*da0073e9SAndroid Build Coastguard Worker "--replace", 1081*da0073e9SAndroid Build Coastguard Worker "@AT_MKLDNN_ENABLED@", 1082*da0073e9SAndroid Build Coastguard Worker "ATEN_MKLDNN_ENABLED_FBXPLAT", 1083*da0073e9SAndroid Build Coastguard Worker "--replace", 1084*da0073e9SAndroid Build Coastguard Worker "@AT_MKLDNN_ACL_ENABLED@", 1085*da0073e9SAndroid Build Coastguard Worker "ATEN_MKLDNN_ACL_ENABLED_FBXPLAT", 1086*da0073e9SAndroid Build Coastguard Worker "--replace", 1087*da0073e9SAndroid Build Coastguard Worker "@AT_MKL_ENABLED@", 1088*da0073e9SAndroid Build Coastguard Worker "ATEN_MKL_ENABLED_FBXPLAT", 1089*da0073e9SAndroid Build Coastguard Worker "--replace", 1090*da0073e9SAndroid Build Coastguard Worker "@AT_MKL_SEQUENTIAL@", 1091*da0073e9SAndroid Build Coastguard Worker "ATEN_MKL_SEQUENTIAL_FBXPLAT", 1092*da0073e9SAndroid Build Coastguard Worker "--replace", 1093*da0073e9SAndroid Build Coastguard Worker "@AT_POCKETFFT_ENABLED@", 1094*da0073e9SAndroid Build Coastguard Worker "1", 1095*da0073e9SAndroid Build Coastguard Worker "--replace", 1096*da0073e9SAndroid Build Coastguard Worker "@AT_NNPACK_ENABLED@", 1097*da0073e9SAndroid Build Coastguard Worker "ATEN_NNPACK_ENABLED_FBXPLAT", 1098*da0073e9SAndroid Build Coastguard Worker "--replace", 1099*da0073e9SAndroid Build Coastguard Worker "@CAFFE2_STATIC_LINK_CUDA_INT@", 1100*da0073e9SAndroid Build Coastguard Worker "CAFFE2_STATIC_LINK_CUDA_FBXPLAT", 1101*da0073e9SAndroid Build Coastguard Worker "--replace", 1102*da0073e9SAndroid Build Coastguard Worker "@AT_BUILD_WITH_BLAS@", 1103*da0073e9SAndroid Build Coastguard Worker "USE_BLAS_FBXPLAT", 1104*da0073e9SAndroid Build Coastguard Worker "--replace", 1105*da0073e9SAndroid Build Coastguard Worker "@AT_PARALLEL_OPENMP@", 1106*da0073e9SAndroid Build Coastguard Worker "AT_PARALLEL_OPENMP_FBXPLAT", 1107*da0073e9SAndroid Build Coastguard Worker "--replace", 1108*da0073e9SAndroid Build Coastguard Worker "@AT_PARALLEL_NATIVE@", 1109*da0073e9SAndroid Build Coastguard Worker "AT_PARALLEL_NATIVE_FBXPLAT", 1110*da0073e9SAndroid Build Coastguard Worker "--replace", 1111*da0073e9SAndroid Build Coastguard Worker "@AT_BUILD_WITH_LAPACK@", 1112*da0073e9SAndroid Build Coastguard Worker "USE_LAPACK_FBXPLAT", 1113*da0073e9SAndroid Build Coastguard Worker "--replace", 1114*da0073e9SAndroid Build Coastguard Worker "@AT_BLAS_F2C@", 1115*da0073e9SAndroid Build Coastguard Worker "AT_BLAS_F2C_FBXPLAT", 1116*da0073e9SAndroid Build Coastguard Worker "--replace", 1117*da0073e9SAndroid Build Coastguard Worker "@AT_BLAS_USE_CBLAS_DOT@", 1118*da0073e9SAndroid Build Coastguard Worker "AT_BLAS_USE_CBLAS_DOT_FBXPLAT", 1119*da0073e9SAndroid Build Coastguard Worker ]), 1120*da0073e9SAndroid Build Coastguard Worker outs = { 1121*da0073e9SAndroid Build Coastguard Worker "Config.h": ["Config.h"], 1122*da0073e9SAndroid Build Coastguard Worker }, 1123*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 1124*da0073e9SAndroid Build Coastguard Worker ) 1125*da0073e9SAndroid Build Coastguard Worker 1126*da0073e9SAndroid Build Coastguard Worker gen_aten_files( 1127*da0073e9SAndroid Build Coastguard Worker name = "gen_aten", 1128*da0073e9SAndroid Build Coastguard Worker extra_flags = get_aten_codegen_extra_params(USED_PT_BACKENDS), 1129*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1130*da0073e9SAndroid Build Coastguard Worker ) 1131*da0073e9SAndroid Build Coastguard Worker 1132*da0073e9SAndroid Build Coastguard Worker gen_aten_libtorch_files(name = "gen_aten_libtorch") 1133*da0073e9SAndroid Build Coastguard Worker 1134*da0073e9SAndroid Build Coastguard Worker gen_aten_libtorch_files( 1135*da0073e9SAndroid Build Coastguard Worker name = "gen_aten_libtorch_lite", 1136*da0073e9SAndroid Build Coastguard Worker extra_params = get_jit_codegen_params(), 1137*da0073e9SAndroid Build Coastguard Worker ) 1138*da0073e9SAndroid Build Coastguard Worker 1139*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1140*da0073e9SAndroid Build Coastguard Worker name = "generated_aten_headers_cpu", 1141*da0073e9SAndroid Build Coastguard Worker header_namespace = "ATen", 1142*da0073e9SAndroid Build Coastguard Worker exported_headers = get_aten_static_dispatch_backend_headers({ 1143*da0073e9SAndroid Build Coastguard Worker "CPUFunctions.h": ":gen_aten[CPUFunctions.h]", 1144*da0073e9SAndroid Build Coastguard Worker "CPUFunctions_inl.h": ":gen_aten[CPUFunctions_inl.h]", 1145*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradFunctions.h": ":gen_aten[CompositeExplicitAutogradFunctions.h]", 1146*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradFunctions_inl.h": ":gen_aten[CompositeExplicitAutogradFunctions_inl.h]", 1147*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradNonFunctionalFunctions.h": ":gen_aten[CompositeExplicitAutogradNonFunctionalFunctions.h]", 1148*da0073e9SAndroid Build Coastguard Worker "CompositeExplicitAutogradNonFunctionalFunctions_inl.h": ":gen_aten[CompositeExplicitAutogradNonFunctionalFunctions_inl.h]", 1149*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradFunctions.h": ":gen_aten[CompositeImplicitAutogradFunctions.h]", 1150*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradFunctions_inl.h": ":gen_aten[CompositeImplicitAutogradFunctions_inl.h]", 1151*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradNestedTensorFunctions.h": ":gen_aten[CompositeImplicitAutogradNestedTensorFunctions.h]", 1152*da0073e9SAndroid Build Coastguard Worker "CompositeImplicitAutogradNestedTensorFunctions_inl.h": ":gen_aten[CompositeImplicitAutogradNestedTensorFunctions_inl.h]", 1153*da0073e9SAndroid Build Coastguard Worker "FunctionalInverses.h": ":gen_aten[FunctionalInverses.h]", 1154*da0073e9SAndroid Build Coastguard Worker "Functions.h": ":gen_aten[Functions.h]", 1155*da0073e9SAndroid Build Coastguard Worker "MethodOperators.h": ":gen_aten[MethodOperators.h]", 1156*da0073e9SAndroid Build Coastguard Worker "NativeFunctions.h": ":gen_aten[NativeFunctions.h]", 1157*da0073e9SAndroid Build Coastguard Worker "NativeMetaFunctions.h": ":gen_aten[NativeMetaFunctions.h]", 1158*da0073e9SAndroid Build Coastguard Worker "Operators.h": ":gen_aten[Operators.h]", 1159*da0073e9SAndroid Build Coastguard Worker "RedispatchFunctions.h": ":gen_aten[RedispatchFunctions.h]", 1160*da0073e9SAndroid Build Coastguard Worker "core/TensorBody.h": ":gen_aten[core/TensorBody.h]", 1161*da0073e9SAndroid Build Coastguard Worker "core/aten_interned_strings.h": ":gen_aten[core/aten_interned_strings.h]", 1162*da0073e9SAndroid Build Coastguard Worker "core/enum_tag.h": ":gen_aten[core/enum_tag.h]", 1163*da0073e9SAndroid Build Coastguard Worker }), 1164*da0073e9SAndroid Build Coastguard Worker labels = labels, 1165*da0073e9SAndroid Build Coastguard Worker ) 1166*da0073e9SAndroid Build Coastguard Worker 1167*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1168*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_observer", 1169*da0073e9SAndroid Build Coastguard Worker srcs = [ 1170*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/observer.cpp", 1171*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else ["torch/fb/observers/MobileObserverUtil.cpp"]), 1172*da0073e9SAndroid Build Coastguard Worker compiler_flags = ["-fexceptions"], 1173*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1174*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob( 1175*da0073e9SAndroid Build Coastguard Worker [ 1176*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/mobile/observer.h"), 1177*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else [ 1178*da0073e9SAndroid Build Coastguard Worker ("", "torch/fb/observers/ObserverUtil.h"), 1179*da0073e9SAndroid Build Coastguard Worker ("", "torch/fb/observers/MobileObserverUtil.h"), 1180*da0073e9SAndroid Build Coastguard Worker ]), 1181*da0073e9SAndroid Build Coastguard Worker ), 1182*da0073e9SAndroid Build Coastguard Worker fbobjc_compiler_flags = [ 1183*da0073e9SAndroid Build Coastguard Worker "-Wno-missing-prototypes", 1184*da0073e9SAndroid Build Coastguard Worker ], 1185*da0073e9SAndroid Build Coastguard Worker labels = labels, 1186*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1187*da0073e9SAndroid Build Coastguard Worker deps = [ 1188*da0073e9SAndroid Build Coastguard Worker C10, 1189*da0073e9SAndroid Build Coastguard Worker ], 1190*da0073e9SAndroid Build Coastguard Worker ) 1191*da0073e9SAndroid Build Coastguard Worker 1192*da0073e9SAndroid Build Coastguard Worker # Base library shared by lite-interpreter and full-jit. 1193*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1194*da0073e9SAndroid Build Coastguard Worker name = "torch_common", 1195*da0073e9SAndroid Build Coastguard Worker srcs = core_sources_common, 1196*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1197*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1198*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1199*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1200*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1201*da0073e9SAndroid Build Coastguard Worker deps = [ 1202*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1203*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1204*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1205*da0073e9SAndroid Build Coastguard Worker C10, 1206*da0073e9SAndroid Build Coastguard Worker third_party("libkineto_headers"), 1207*da0073e9SAndroid Build Coastguard Worker ], 1208*da0073e9SAndroid Build Coastguard Worker ) 1209*da0073e9SAndroid Build Coastguard Worker 1210*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1211*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_deserialize_common", 1212*da0073e9SAndroid Build Coastguard Worker srcs = [ 1213*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/parse_bytecode.cpp", 1214*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/parse_operators.cpp", 1215*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/upgrader_mobile.cpp", 1216*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/import_read.cpp", 1217*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/unpickler.cpp", 1218*da0073e9SAndroid Build Coastguard Worker ], 1219*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1220*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1221*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/import_read.h", 1222*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/unpickler.h", 1223*da0073e9SAndroid Build Coastguard Worker ], 1224*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1225*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1226*da0073e9SAndroid Build Coastguard Worker extra_flags = { 1227*da0073e9SAndroid Build Coastguard Worker "fbandroid_compiler_flags": ["-frtti"], 1228*da0073e9SAndroid Build Coastguard Worker }, 1229*da0073e9SAndroid Build Coastguard Worker # torch_mobile_deserialize brings in sources neccessary to read a module 1230*da0073e9SAndroid Build Coastguard Worker # which depends on mobile module definition 1231*da0073e9SAndroid Build Coastguard Worker # link_whole is enable so that all symbols neccessary for mobile module are compiled 1232*da0073e9SAndroid Build Coastguard Worker # instead of only symbols used while loading; this prevents symbol 1233*da0073e9SAndroid Build Coastguard Worker # found definied in runtime 1234*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1235*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1236*da0073e9SAndroid Build Coastguard Worker linker_flags = ["-Wl,--no-as-needed"], 1237*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1238*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1239*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1240*da0073e9SAndroid Build Coastguard Worker ":caffe2_headers", 1241*da0073e9SAndroid Build Coastguard Worker ":caffe2_serialize", 1242*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1243*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1244*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1245*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_module", 1246*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1247*da0073e9SAndroid Build Coastguard Worker C10, 1248*da0073e9SAndroid Build Coastguard Worker ], 1249*da0073e9SAndroid Build Coastguard Worker ) 1250*da0073e9SAndroid Build Coastguard Worker 1251*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1252*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_module", 1253*da0073e9SAndroid Build Coastguard Worker srcs = [ 1254*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/function.cpp", 1255*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/interpreter.cpp", 1256*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/module.cpp", 1257*da0073e9SAndroid Build Coastguard Worker ], 1258*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1259*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1260*da0073e9SAndroid Build Coastguard Worker ], 1261*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1262*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DSYMBOLICATE_MOBILE_DEBUG_HANDLE"] if get_enable_eager_symbolication() else []), 1263*da0073e9SAndroid Build Coastguard Worker extra_flags = { 1264*da0073e9SAndroid Build Coastguard Worker "fbandroid_compiler_flags": ["-frtti"], 1265*da0073e9SAndroid Build Coastguard Worker }, 1266*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1267*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1268*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1269*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1270*da0073e9SAndroid Build Coastguard Worker ], 1271*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1272*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1273*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1274*da0073e9SAndroid Build Coastguard Worker ":caffe2_headers", 1275*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1276*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1277*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1278*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1279*da0073e9SAndroid Build Coastguard Worker C10, 1280*da0073e9SAndroid Build Coastguard Worker ], 1281*da0073e9SAndroid Build Coastguard Worker ) 1282*da0073e9SAndroid Build Coastguard Worker 1283*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1284*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_debug_symbolication", 1285*da0073e9SAndroid Build Coastguard Worker srcs = [ 1286*da0073e9SAndroid Build Coastguard Worker # included in aten_cpu "torch/csrc/jit/frontend/source_range.cpp", 1287*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/ir/scope.cpp", 1288*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/debug_info.cpp", 1289*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/callstack_debug_info_serialization.cpp", 1290*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/source_range_serialization.cpp", 1291*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/pickle.cpp", 1292*da0073e9SAndroid Build Coastguard Worker # pickler.cpp doesn't seem to be needed. 1293*da0073e9SAndroid Build Coastguard Worker # "torch/csrc/jit/serialization/pickler.cpp", 1294*da0073e9SAndroid Build Coastguard Worker # included in core_sources_common "torch/csrc/jit/serialization/unpickler.cpp", 1295*da0073e9SAndroid Build Coastguard Worker ], 1296*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1297*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1298*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1299*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1300*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1301*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1302*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1303*da0073e9SAndroid Build Coastguard Worker ], 1304*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1305*da0073e9SAndroid Build Coastguard Worker deps = [ 1306*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1307*da0073e9SAndroid Build Coastguard Worker ], 1308*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1309*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1310*da0073e9SAndroid Build Coastguard Worker ], 1311*da0073e9SAndroid Build Coastguard Worker ) 1312*da0073e9SAndroid Build Coastguard Worker 1313*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1314*da0073e9SAndroid Build Coastguard Worker name = "torch_model_tracer", 1315*da0073e9SAndroid Build Coastguard Worker srcs = [ 1316*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/model_tracer/TracerRunner.cpp", 1317*da0073e9SAndroid Build Coastguard Worker ] + get_feature_tracer_source_list(), 1318*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1319*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1320*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DSYMBOLICATE_MOBILE_DEBUG_HANDLE"] if get_enable_eager_symbolication() else []), 1321*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1322*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1323*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1324*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1325*da0073e9SAndroid Build Coastguard Worker ], 1326*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1327*da0073e9SAndroid Build Coastguard Worker deps = [ 1328*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1329*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1330*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1331*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1332*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else ["//xplat/folly:molly"]), 1333*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1334*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1335*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1336*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else [ 1337*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/batch_box_cox:batch_box_cox", 1338*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/maskrcnn:maskrcnn", 1339*da0073e9SAndroid Build Coastguard Worker ]), 1340*da0073e9SAndroid Build Coastguard Worker ) 1341*da0073e9SAndroid Build Coastguard Worker 1342*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1343*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_deserialize", 1344*da0073e9SAndroid Build Coastguard Worker srcs = [ 1345*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/import.cpp", 1346*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/flatbuffer_loader.cpp", 1347*da0073e9SAndroid Build Coastguard Worker ], 1348*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1349*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DFB_XPLAT_BUILD"] if not IS_OSS else []), 1350*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1351*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1352*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/import.h", 1353*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/flatbuffer_loader.h", 1354*da0073e9SAndroid Build Coastguard Worker ], 1355*da0073e9SAndroid Build Coastguard Worker # torch_mobile_deserialize brings in sources neccessary to read a module 1356*da0073e9SAndroid Build Coastguard Worker # which depends on mobile module definition 1357*da0073e9SAndroid Build Coastguard Worker # link_whole is enable so that all symbols neccessary for mobile module are compiled 1358*da0073e9SAndroid Build Coastguard Worker # instead of only symbols used while loading; this prevents symbol 1359*da0073e9SAndroid Build Coastguard Worker # found definied in runtime 1360*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1361*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1362*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1363*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1364*da0073e9SAndroid Build Coastguard Worker ], 1365*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1366*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1367*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1368*da0073e9SAndroid Build Coastguard Worker ":caffe2_headers", 1369*da0073e9SAndroid Build Coastguard Worker ":caffe2_serialize", 1370*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1371*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1372*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1373*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_module", 1374*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1375*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize_common", 1376*da0073e9SAndroid Build Coastguard Worker ":mobile_bytecode", 1377*da0073e9SAndroid Build Coastguard Worker C10, 1378*da0073e9SAndroid Build Coastguard Worker ], 1379*da0073e9SAndroid Build Coastguard Worker ) 1380*da0073e9SAndroid Build Coastguard Worker 1381*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1382*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_core", 1383*da0073e9SAndroid Build Coastguard Worker srcs = [], 1384*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1385*da0073e9SAndroid Build Coastguard Worker exported_headers = [], 1386*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1387*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DSYMBOLICATE_MOBILE_DEBUG_HANDLE"] if get_enable_eager_symbolication() else []), 1388*da0073e9SAndroid Build Coastguard Worker # torch_mobile_core brings in sources neccessary to read and run a module 1389*da0073e9SAndroid Build Coastguard Worker # link_whole is enabled so that all symbols linked 1390*da0073e9SAndroid Build Coastguard Worker # operators, registerations and other few symbols are need in runtime 1391*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1392*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1393*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1394*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1395*da0073e9SAndroid Build Coastguard Worker ], 1396*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1397*da0073e9SAndroid Build Coastguard Worker deps = [ 1398*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1399*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1400*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1401*da0073e9SAndroid Build Coastguard Worker ], 1402*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1403*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1404*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1405*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1406*da0073e9SAndroid Build Coastguard Worker ":torch_supported_mobile_models", 1407*da0073e9SAndroid Build Coastguard Worker ], 1408*da0073e9SAndroid Build Coastguard Worker ) 1409*da0073e9SAndroid Build Coastguard Worker 1410*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1411*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_core_pickle_and_flatbuffer", 1412*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1413*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1414*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1415*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1416*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_mobile", 1417*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_core", 1418*da0073e9SAndroid Build Coastguard Worker ], 1419*da0073e9SAndroid Build Coastguard Worker ) 1420*da0073e9SAndroid Build Coastguard Worker 1421*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1422*da0073e9SAndroid Build Coastguard Worker name = "torch_cpp_cpu", 1423*da0073e9SAndroid Build Coastguard Worker srcs = torch_cpp_srcs, 1424*da0073e9SAndroid Build Coastguard Worker headers = native.glob(["torch/csrc/api/include/**/*.h"]) + ["torch/script.h"], 1425*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1426*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1427*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1428*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1429*da0073e9SAndroid Build Coastguard Worker ":torch", 1430*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize_common", # for torch/csrc/api/src/serialize/input-archive.cpp 1431*da0073e9SAndroid Build Coastguard Worker ], 1432*da0073e9SAndroid Build Coastguard Worker ) 1433*da0073e9SAndroid Build Coastguard Worker 1434*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1435*da0073e9SAndroid Build Coastguard Worker name = "torch_core", 1436*da0073e9SAndroid Build Coastguard Worker srcs = core_sources_full_mobile_no_backend_interface_xplat, 1437*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1438*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1439*da0073e9SAndroid Build Coastguard Worker visibility = [ 1440*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/android/...", 1441*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/...", 1442*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/model_tracer/...", 1443*da0073e9SAndroid Build Coastguard Worker ], 1444*da0073e9SAndroid Build Coastguard Worker deps = [ 1445*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1446*da0073e9SAndroid Build Coastguard Worker ":backend_interface_lib", 1447*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1448*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1449*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1450*da0073e9SAndroid Build Coastguard Worker third_party("glog"), 1451*da0073e9SAndroid Build Coastguard Worker third_party("rt"), 1452*da0073e9SAndroid Build Coastguard Worker C10, 1453*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else [ 1454*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/batch_box_cox:batch_box_cox", 1455*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/maskrcnn:maskrcnn", 1456*da0073e9SAndroid Build Coastguard Worker ]), 1457*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1458*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1459*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_train", 1460*da0073e9SAndroid Build Coastguard Worker ], 1461*da0073e9SAndroid Build Coastguard Worker ) 1462*da0073e9SAndroid Build Coastguard Worker 1463*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1464*da0073e9SAndroid Build Coastguard Worker name = "torch_train", 1465*da0073e9SAndroid Build Coastguard Worker srcs = [ 1466*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/data/samplers/random.cpp", 1467*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/data/samplers/sequential.cpp", 1468*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/optim/optimizer.cpp", 1469*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/optim/serialize.cpp", 1470*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/optim/sgd.cpp", 1471*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/serialize/input-archive.cpp", 1472*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/serialize/output-archive.cpp", 1473*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/api/module_save.cpp", 1474*da0073e9SAndroid Build Coastguard Worker ], 1475*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1476*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1477*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1478*da0073e9SAndroid Build Coastguard Worker deps = [ 1479*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1480*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1481*da0073e9SAndroid Build Coastguard Worker ":torch", 1482*da0073e9SAndroid Build Coastguard Worker ":torch_core", 1483*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1484*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_train", 1485*da0073e9SAndroid Build Coastguard Worker ":jit_module_saving", 1486*da0073e9SAndroid Build Coastguard Worker C10, 1487*da0073e9SAndroid Build Coastguard Worker ], 1488*da0073e9SAndroid Build Coastguard Worker ) 1489*da0073e9SAndroid Build Coastguard Worker 1490*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1491*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_train", 1492*da0073e9SAndroid Build Coastguard Worker srcs = core_trainer_sources + [ 1493*da0073e9SAndroid Build Coastguard Worker "torch/csrc/autograd/VariableTypeManual.cpp", 1494*da0073e9SAndroid Build Coastguard Worker "torch/csrc/autograd/FunctionsManual.cpp", 1495*da0073e9SAndroid Build Coastguard Worker "torch/csrc/api/src/data/datasets/mnist.cpp", 1496*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/quantization.cpp", 1497*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/train/export_data.cpp", 1498*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/train/optim/sgd.cpp", 1499*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/train/random.cpp", 1500*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/train/sequential.cpp", 1501*da0073e9SAndroid Build Coastguard Worker ":gen_aten_libtorch[autograd/generated/Functions.cpp]", 1502*da0073e9SAndroid Build Coastguard Worker ":gen_aten_libtorch[autograd/generated/ViewFuncs.cpp]", 1503*da0073e9SAndroid Build Coastguard Worker ], 1504*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1505*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + ["-DUSE_MOBILE_CLASSTYPE"], 1506*da0073e9SAndroid Build Coastguard Worker # torch_mobile_train brings in sources neccessary to read and run a mobile 1507*da0073e9SAndroid Build Coastguard Worker # and save and load mobile params along with autograd 1508*da0073e9SAndroid Build Coastguard Worker # link_whole is enabled so that all symbols linked 1509*da0073e9SAndroid Build Coastguard Worker # operators, registerations and autograd related symbols are need in runtime 1510*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1511*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1512*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1513*da0073e9SAndroid Build Coastguard Worker deps = [ 1514*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1515*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1516*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1517*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1518*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_serializer_mobile", 1519*da0073e9SAndroid Build Coastguard Worker C10, 1520*da0073e9SAndroid Build Coastguard Worker ], 1521*da0073e9SAndroid Build Coastguard Worker ) 1522*da0073e9SAndroid Build Coastguard Worker 1523*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1524*da0073e9SAndroid Build Coastguard Worker name = "torch", 1525*da0073e9SAndroid Build Coastguard Worker srcs = [ 1526*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/register_c10_ops.cpp", 1527*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/register_prim_ops_fulljit.cpp", 1528*da0073e9SAndroid Build Coastguard Worker ], 1529*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1530*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags(), 1531*da0073e9SAndroid Build Coastguard Worker # torch brings in all sources neccessary to read and run a mobile module/jit module 1532*da0073e9SAndroid Build Coastguard Worker # link_whole is enabled so that all symbols linked 1533*da0073e9SAndroid Build Coastguard Worker # operators, registerations and other few symbols are need in runtime 1534*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1535*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1536*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1537*da0073e9SAndroid Build Coastguard Worker deps = [ 1538*da0073e9SAndroid Build Coastguard Worker # This is to have autograd profiler available 1539*da0073e9SAndroid Build Coastguard Worker # in xplat/caffe2:torch which some builds are using 1540*da0073e9SAndroid Build Coastguard Worker # notable xplate/facegen:testsAndroid 1541*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1542*da0073e9SAndroid Build Coastguard Worker ":torch_kineto_profiling", 1543*da0073e9SAndroid Build Coastguard Worker ], 1544*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1545*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1546*da0073e9SAndroid Build Coastguard Worker ":torch_core", 1547*da0073e9SAndroid Build Coastguard Worker C10, 1548*da0073e9SAndroid Build Coastguard Worker ], 1549*da0073e9SAndroid Build Coastguard Worker ) 1550*da0073e9SAndroid Build Coastguard Worker 1551*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1552*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_train_import_data", 1553*da0073e9SAndroid Build Coastguard Worker srcs = [ 1554*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/import_data.cpp", 1555*da0073e9SAndroid Build Coastguard Worker ], 1556*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1557*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + ["-DUSE_MOBILE_CLASSTYPE"], 1558*da0073e9SAndroid Build Coastguard Worker # torch_mobile_train_import_data brings in sources neccessary to read a mobile module 1559*da0073e9SAndroid Build Coastguard Worker # link_whole is enabled so that all symbols linked 1560*da0073e9SAndroid Build Coastguard Worker # operators other few symbols are need in runtime 1561*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1562*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1563*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1564*da0073e9SAndroid Build Coastguard Worker deps = [ 1565*da0073e9SAndroid Build Coastguard Worker ":torch_headers", 1566*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1567*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_core", 1568*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_train", 1569*da0073e9SAndroid Build Coastguard Worker ], 1570*da0073e9SAndroid Build Coastguard Worker ) 1571*da0073e9SAndroid Build Coastguard Worker 1572*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1573*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_compatibility", 1574*da0073e9SAndroid Build Coastguard Worker srcs = [ 1575*da0073e9SAndroid Build Coastguard Worker # These .cpp brought in through core_sources_common 1576*da0073e9SAndroid Build Coastguard Worker # "torch/csrc/jit/mobile/compatibility/runtime_compatibility.cpp", 1577*da0073e9SAndroid Build Coastguard Worker # "torch/csrc/jit/serialization/unpickler.cpp", 1578*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/compatibility/model_compatibility.cpp", 1579*da0073e9SAndroid Build Coastguard Worker ], 1580*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1581*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1582*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/compatibility/backport.h", 1583*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/compatibility/backport_manager.h", 1584*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/compatibility/model_compatibility.h", 1585*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/compatibility/runtime_compatibility.h", 1586*da0073e9SAndroid Build Coastguard Worker ], 1587*da0073e9SAndroid Build Coastguard Worker compiler_flags = [ 1588*da0073e9SAndroid Build Coastguard Worker "-fexceptions", 1589*da0073e9SAndroid Build Coastguard Worker "-frtti", 1590*da0073e9SAndroid Build Coastguard Worker "-Wno-deprecated-declarations", 1591*da0073e9SAndroid Build Coastguard Worker "-Wno-global-constructors", 1592*da0073e9SAndroid Build Coastguard Worker ], 1593*da0073e9SAndroid Build Coastguard Worker labels = labels, 1594*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1595*da0073e9SAndroid Build Coastguard Worker deps = [ 1596*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1597*da0073e9SAndroid Build Coastguard Worker ], 1598*da0073e9SAndroid Build Coastguard Worker ) 1599*da0073e9SAndroid Build Coastguard Worker 1600*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1601*da0073e9SAndroid Build Coastguard Worker name = "jit_module_saving", 1602*da0073e9SAndroid Build Coastguard Worker srcs = [ 1603*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/api/module_save.cpp", 1604*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/export_bytecode.cpp", 1605*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/export_module.cpp", 1606*da0073e9SAndroid Build Coastguard Worker ], 1607*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1608*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + 1609*da0073e9SAndroid Build Coastguard Worker (["-DFB_XPLAT_BUILD"] if not IS_OSS else []), 1610*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1611*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/export.h", 1612*da0073e9SAndroid Build Coastguard Worker ], 1613*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1614*da0073e9SAndroid Build Coastguard Worker deps = [ 1615*da0073e9SAndroid Build Coastguard Worker ":torch", 1616*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_core", 1617*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_serializer_mobile", 1618*da0073e9SAndroid Build Coastguard Worker ], 1619*da0073e9SAndroid Build Coastguard Worker ) 1620*da0073e9SAndroid Build Coastguard Worker 1621*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1622*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_model_tracer", 1623*da0073e9SAndroid Build Coastguard Worker srcs = [ 1624*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/model_tracer/MobileModelRunner.cpp", 1625*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/model_tracer/TensorUtils.cpp", 1626*da0073e9SAndroid Build Coastguard Worker ], 1627*da0073e9SAndroid Build Coastguard Worker headers = [ 1628*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/model_tracer/MobileModelRunner.h", 1629*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/model_tracer/TensorUtils.h", 1630*da0073e9SAndroid Build Coastguard Worker ], 1631*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1632*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1633*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/model_tracer/MobileModelRunner.h", 1634*da0073e9SAndroid Build Coastguard Worker ], 1635*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1636*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DSYMBOLICATE_MOBILE_DEBUG_HANDLE"] if get_enable_eager_symbolication() else []), 1637*da0073e9SAndroid Build Coastguard Worker # torch_mobile_model_tracer brings in sources neccessary to read and run a jit module 1638*da0073e9SAndroid Build Coastguard Worker # and trace the ops 1639*da0073e9SAndroid Build Coastguard Worker # link_whole is enabled so that all symbols linked 1640*da0073e9SAndroid Build Coastguard Worker # operators, registerations and other few symbols are need in runtime 1641*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1642*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1643*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1644*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1645*da0073e9SAndroid Build Coastguard Worker ], 1646*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1647*da0073e9SAndroid Build Coastguard Worker deps = [ 1648*da0073e9SAndroid Build Coastguard Worker ":caffe2_serialize", 1649*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1650*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1651*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1652*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_core", 1653*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else ["//xplat/folly:molly"]), 1654*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1655*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1656*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1657*da0073e9SAndroid Build Coastguard Worker ] + ([] if IS_OSS else [ 1658*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/batch_box_cox:batch_box_cox", 1659*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/maskrcnn:maskrcnn", 1660*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/sparsenn:sparsenn-all", 1661*da0073e9SAndroid Build Coastguard Worker ]), 1662*da0073e9SAndroid Build Coastguard Worker ) 1663*da0073e9SAndroid Build Coastguard Worker 1664*da0073e9SAndroid Build Coastguard Worker #TODO(qihan) delete 1665*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1666*da0073e9SAndroid Build Coastguard Worker name = "torch_mobile_core_flatbuffer", 1667*da0073e9SAndroid Build Coastguard Worker srcs = [], 1668*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1669*da0073e9SAndroid Build Coastguard Worker exported_headers = [], 1670*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1671*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DSYMBOLICATE_MOBILE_DEBUG_HANDLE"] if get_enable_eager_symbolication() else []), 1672*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1673*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1674*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1675*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1676*da0073e9SAndroid Build Coastguard Worker ], 1677*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1678*da0073e9SAndroid Build Coastguard Worker deps = [ 1679*da0073e9SAndroid Build Coastguard Worker ":generated-autograd-headers", 1680*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 1681*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_observer", 1682*da0073e9SAndroid Build Coastguard Worker ], 1683*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1684*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1685*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1686*da0073e9SAndroid Build Coastguard Worker ], 1687*da0073e9SAndroid Build Coastguard Worker ) 1688*da0073e9SAndroid Build Coastguard Worker 1689*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1690*da0073e9SAndroid Build Coastguard Worker name = "backend_interface_lib", 1691*da0073e9SAndroid Build Coastguard Worker srcs = [ 1692*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/backends/backend_debug_info.cpp", 1693*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/backends/backend_interface.cpp", 1694*da0073e9SAndroid Build Coastguard Worker ], 1695*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags(), 1696*da0073e9SAndroid Build Coastguard Worker fbandroid_compiler_flags = c2_fbandroid_xplat_compiler_flags, 1697*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1698*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1699*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1700*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1701*da0073e9SAndroid Build Coastguard Worker ], 1702*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1703*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1704*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1705*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1706*da0073e9SAndroid Build Coastguard Worker ], 1707*da0073e9SAndroid Build Coastguard Worker ) 1708*da0073e9SAndroid Build Coastguard Worker 1709*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1710*da0073e9SAndroid Build Coastguard Worker name = "torch_kineto_profiling", 1711*da0073e9SAndroid Build Coastguard Worker srcs = libtorch_profiler_sources, 1712*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + ["-Wno-error"], 1713*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + [ 1714*da0073e9SAndroid Build Coastguard Worker "-DUSE_KINETO", 1715*da0073e9SAndroid Build Coastguard Worker # Need this otherwise USE_KINETO is undefed 1716*da0073e9SAndroid Build Coastguard Worker # for mobile 1717*da0073e9SAndroid Build Coastguard Worker "-DEDGE_PROFILER_USE_KINETO", 1718*da0073e9SAndroid Build Coastguard Worker ], 1719*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1720*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1721*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1722*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1723*da0073e9SAndroid Build Coastguard Worker ], 1724*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1725*da0073e9SAndroid Build Coastguard Worker deps = [ 1726*da0073e9SAndroid Build Coastguard Worker third_party("glog"), 1727*da0073e9SAndroid Build Coastguard Worker third_party("kineto"), 1728*da0073e9SAndroid Build Coastguard Worker ], 1729*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1730*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1731*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1732*da0073e9SAndroid Build Coastguard Worker ], 1733*da0073e9SAndroid Build Coastguard Worker ) 1734*da0073e9SAndroid Build Coastguard Worker 1735*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1736*da0073e9SAndroid Build Coastguard Worker name = "torch_edge_profiling", 1737*da0073e9SAndroid Build Coastguard Worker srcs = ["torch/csrc/jit/mobile/profiler_edge.cpp"], 1738*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + ["-Wno-error"], 1739*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + [ 1740*da0073e9SAndroid Build Coastguard Worker "-DUSE_KINETO", 1741*da0073e9SAndroid Build Coastguard Worker "-DEDGE_PROFILER_USE_KINETO", 1742*da0073e9SAndroid Build Coastguard Worker ], 1743*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1744*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1745*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1746*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1747*da0073e9SAndroid Build Coastguard Worker ], 1748*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1749*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1750*da0073e9SAndroid Build Coastguard Worker ":torch_common", 1751*da0073e9SAndroid Build Coastguard Worker ":torch_kineto_profiling", 1752*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_core", 1753*da0073e9SAndroid Build Coastguard Worker ], 1754*da0073e9SAndroid Build Coastguard Worker ) 1755*da0073e9SAndroid Build Coastguard Worker 1756*da0073e9SAndroid Build Coastguard Worker fb_xplat_genrule( 1757*da0073e9SAndroid Build Coastguard Worker name = "mobile_bytecode_header", 1758*da0073e9SAndroid Build Coastguard Worker srcs = [ 1759*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/mobile_bytecode.fbs", 1760*da0073e9SAndroid Build Coastguard Worker ], 1761*da0073e9SAndroid Build Coastguard Worker outs = { 1762*da0073e9SAndroid Build Coastguard Worker "mobile_bytecode_generated_fbsource.h": ["mobile_bytecode_generated.h"], 1763*da0073e9SAndroid Build Coastguard Worker }, 1764*da0073e9SAndroid Build Coastguard Worker cmd = "$(exe {})".format(third_party("flatc")) + 1765*da0073e9SAndroid Build Coastguard Worker " --cpp --gen-mutable --scoped-enums -o ${OUT} ${SRCS}", 1766*da0073e9SAndroid Build Coastguard Worker default_outs = ["."], 1767*da0073e9SAndroid Build Coastguard Worker visibility = [ 1768*da0073e9SAndroid Build Coastguard Worker "{}:mobile_bytecode".format(ROOT), 1769*da0073e9SAndroid Build Coastguard Worker ], 1770*da0073e9SAndroid Build Coastguard Worker ) 1771*da0073e9SAndroid Build Coastguard Worker 1772*da0073e9SAndroid Build Coastguard Worker # Users of this target will need to add third_party("flatbuffers-api") as a 1773*da0073e9SAndroid Build Coastguard Worker # dep. 1774*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1775*da0073e9SAndroid Build Coastguard Worker name = "mobile_bytecode", 1776*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1777*da0073e9SAndroid Build Coastguard Worker exported_headers = { 1778*da0073e9SAndroid Build Coastguard Worker ("torch/csrc/jit/serialization/mobile_bytecode_generated.h" if IS_OSS else "torch/csrc/jit/serialization/mobile_bytecode_generated_fbsource.h"): ":mobile_bytecode_header[mobile_bytecode_generated_fbsource.h]", 1779*da0073e9SAndroid Build Coastguard Worker }, 1780*da0073e9SAndroid Build Coastguard Worker # Avoid leaking implementation details by only exposing this header to 1781*da0073e9SAndroid Build Coastguard Worker # the internals of the loader/serializer layer. 1782*da0073e9SAndroid Build Coastguard Worker visibility = [ 1783*da0073e9SAndroid Build Coastguard Worker "{}:flatbuffer_loader".format(ROOT), 1784*da0073e9SAndroid Build Coastguard Worker "{}:flatbuffers_serializer_mobile".format(ROOT), 1785*da0073e9SAndroid Build Coastguard Worker ], 1786*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1787*da0073e9SAndroid Build Coastguard Worker third_party("flatbuffers-api"), 1788*da0073e9SAndroid Build Coastguard Worker ], 1789*da0073e9SAndroid Build Coastguard Worker ) 1790*da0073e9SAndroid Build Coastguard Worker 1791*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1792*da0073e9SAndroid Build Coastguard Worker name = "flatbuffers_serializer_mobile", 1793*da0073e9SAndroid Build Coastguard Worker srcs = ["torch/csrc/jit/serialization/flatbuffer_serializer.cpp"], 1794*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1795*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/flatbuffer_serializer.h", 1796*da0073e9SAndroid Build Coastguard Worker ], 1797*da0073e9SAndroid Build Coastguard Worker compiler_flags = [ 1798*da0073e9SAndroid Build Coastguard Worker "-g0", 1799*da0073e9SAndroid Build Coastguard Worker "-O3", 1800*da0073e9SAndroid Build Coastguard Worker "-fexceptions", 1801*da0073e9SAndroid Build Coastguard Worker "-frtti", 1802*da0073e9SAndroid Build Coastguard Worker "-Wno-deprecated-declarations", 1803*da0073e9SAndroid Build Coastguard Worker ] + (["-DFB_XPLAT_BUILD"] if not IS_OSS else []), 1804*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1805*da0073e9SAndroid Build Coastguard Worker deps = [ 1806*da0073e9SAndroid Build Coastguard Worker ":mobile_bytecode", 1807*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_module", 1808*da0073e9SAndroid Build Coastguard Worker C10, 1809*da0073e9SAndroid Build Coastguard Worker ], 1810*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1811*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_deserialize", 1812*da0073e9SAndroid Build Coastguard Worker ":mobile_bytecode", 1813*da0073e9SAndroid Build Coastguard Worker ], 1814*da0073e9SAndroid Build Coastguard Worker ) 1815*da0073e9SAndroid Build Coastguard Worker 1816*da0073e9SAndroid Build Coastguard Worker # TODO (qihan) delete 1817*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1818*da0073e9SAndroid Build Coastguard Worker name = "flatbuffer_loader", 1819*da0073e9SAndroid Build Coastguard Worker srcs = [ 1820*da0073e9SAndroid Build Coastguard Worker ], 1821*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 1822*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/flatbuffer_loader.h", 1823*da0073e9SAndroid Build Coastguard Worker ], 1824*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + ["-Wno-error"], 1825*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + [ 1826*da0073e9SAndroid Build Coastguard Worker "-DUSE_KINETO", 1827*da0073e9SAndroid Build Coastguard Worker # Need this otherwise USE_KINETO is undefed 1828*da0073e9SAndroid Build Coastguard Worker # for mobile 1829*da0073e9SAndroid Build Coastguard Worker "-DEDGE_PROFILER_USE_KINETO", 1830*da0073e9SAndroid Build Coastguard Worker ] + (["-DFB_XPLAT_BUILD"] if not IS_OSS else []), 1831*da0073e9SAndroid Build Coastguard Worker extra_flags = { 1832*da0073e9SAndroid Build Coastguard Worker "fbandroid_compiler_flags": ["-frtti"], 1833*da0073e9SAndroid Build Coastguard Worker }, 1834*da0073e9SAndroid Build Coastguard Worker # torch_mobile_deserialize brings in sources neccessary to read a module 1835*da0073e9SAndroid Build Coastguard Worker # which depends on mobile module definition 1836*da0073e9SAndroid Build Coastguard Worker # link_whole is enable so that all symbols neccessary for mobile module are compiled 1837*da0073e9SAndroid Build Coastguard Worker # instead of only symbols used while loading; this prevents symbol 1838*da0073e9SAndroid Build Coastguard Worker # found definied in runtime 1839*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1840*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1841*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1842*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1843*da0073e9SAndroid Build Coastguard Worker ], 1844*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1845*da0073e9SAndroid Build Coastguard Worker deps = [ 1846*da0073e9SAndroid Build Coastguard Worker ":mobile_bytecode", 1847*da0073e9SAndroid Build Coastguard Worker ], 1848*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1849*da0073e9SAndroid Build Coastguard Worker C10, 1850*da0073e9SAndroid Build Coastguard Worker ], 1851*da0073e9SAndroid Build Coastguard Worker ) 1852*da0073e9SAndroid Build Coastguard Worker 1853*da0073e9SAndroid Build Coastguard Worker # TODO(qihan) delete 1854*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1855*da0073e9SAndroid Build Coastguard Worker name = "flatbuffers_serializer_jit", 1856*da0073e9SAndroid Build Coastguard Worker compiler_flags = [ 1857*da0073e9SAndroid Build Coastguard Worker "-g0", 1858*da0073e9SAndroid Build Coastguard Worker "-O3", 1859*da0073e9SAndroid Build Coastguard Worker "-fexceptions", 1860*da0073e9SAndroid Build Coastguard Worker "-frtti", 1861*da0073e9SAndroid Build Coastguard Worker "-Wno-deprecated-declarations", 1862*da0073e9SAndroid Build Coastguard Worker ], 1863*da0073e9SAndroid Build Coastguard Worker headers = [ 1864*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/flatbuffer_serializer_jit.h", 1865*da0073e9SAndroid Build Coastguard Worker ], 1866*da0073e9SAndroid Build Coastguard Worker srcs = [ 1867*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/flatbuffer_serializer_jit.cpp", 1868*da0073e9SAndroid Build Coastguard Worker ], 1869*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1870*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1871*da0073e9SAndroid Build Coastguard Worker ], 1872*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1873*da0073e9SAndroid Build Coastguard Worker deps = [ 1874*da0073e9SAndroid Build Coastguard Worker ":flatbuffer_loader", 1875*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_serializer_mobile", 1876*da0073e9SAndroid Build Coastguard Worker ":torch_core", 1877*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_module", 1878*da0073e9SAndroid Build Coastguard Worker C10, 1879*da0073e9SAndroid Build Coastguard Worker ], 1880*da0073e9SAndroid Build Coastguard Worker ) 1881*da0073e9SAndroid Build Coastguard Worker 1882*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1883*da0073e9SAndroid Build Coastguard Worker name = "flatbuffers_jit", 1884*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1885*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1886*da0073e9SAndroid Build Coastguard Worker ":flatbuffer_loader", 1887*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_serializer_mobile", 1888*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_serializer_jit", 1889*da0073e9SAndroid Build Coastguard Worker ], 1890*da0073e9SAndroid Build Coastguard Worker ) 1891*da0073e9SAndroid Build Coastguard Worker 1892*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1893*da0073e9SAndroid Build Coastguard Worker name = "flatbuffers_mobile", 1894*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1895*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1896*da0073e9SAndroid Build Coastguard Worker ":flatbuffer_loader", 1897*da0073e9SAndroid Build Coastguard Worker ":flatbuffers_serializer_mobile", 1898*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_train", 1899*da0073e9SAndroid Build Coastguard Worker ], 1900*da0073e9SAndroid Build Coastguard Worker ) 1901*da0073e9SAndroid Build Coastguard Worker 1902*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 1903*da0073e9SAndroid Build Coastguard Worker name = "torch_supported_mobile_models", 1904*da0073e9SAndroid Build Coastguard Worker srcs = [ 1905*da0073e9SAndroid Build Coastguard Worker "fb/supported_mobile_models/SupportedMobileModels.cpp", 1906*da0073e9SAndroid Build Coastguard Worker ] if NOT_OSS else [], 1907*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1908*da0073e9SAndroid Build Coastguard Worker exported_headers = ["fb/supported_mobile_models/SupportedMobileModels.h"] if NOT_OSS else [], 1909*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + ["-Wno-error"], 1910*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + (["-DSYMBOLICATE_MOBILE_DEBUG_HANDLE"] if get_enable_eager_symbolication() else []), 1911*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1912*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1913*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 1914*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 1915*da0073e9SAndroid Build Coastguard Worker ], 1916*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1917*da0073e9SAndroid Build Coastguard Worker deps = [], 1918*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1919*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/batch_box_cox:batch_box_cox", 1920*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/fb/custom_ops/maskrcnn:maskrcnn", 1921*da0073e9SAndroid Build Coastguard Worker ] if NOT_OSS else [], 1922*da0073e9SAndroid Build Coastguard Worker ) 1923*da0073e9SAndroid Build Coastguard Worker 1924*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1925*da0073e9SAndroid Build Coastguard Worker name = "static_runtime", 1926*da0073e9SAndroid Build Coastguard Worker srcs = [ 1927*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/fusion.cpp", 1928*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/generated_ops.cpp", 1929*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/impl.cpp", 1930*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/memory_planner.cpp", 1931*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/native_ops.cpp", 1932*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/ops.cpp", 1933*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/passes.cpp", 1934*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/static/te_wrapper.cpp", 1935*da0073e9SAndroid Build Coastguard Worker ], 1936*da0073e9SAndroid Build Coastguard Worker compiler_flags = ["-fexceptions"], 1937*da0073e9SAndroid Build Coastguard Worker labels = labels, 1938*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 1939*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1940*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1941*da0073e9SAndroid Build Coastguard Worker windows_preferred_linkage = "static" if is_arvr_mode() else None, 1942*da0073e9SAndroid Build Coastguard Worker deps = [ 1943*da0073e9SAndroid Build Coastguard Worker ":aten_cpu", 1944*da0073e9SAndroid Build Coastguard Worker ":caffe2_headers", 1945*da0073e9SAndroid Build Coastguard Worker ":torch_core", 1946*da0073e9SAndroid Build Coastguard Worker C10, 1947*da0073e9SAndroid Build Coastguard Worker ], 1948*da0073e9SAndroid Build Coastguard Worker ) 1949*da0073e9SAndroid Build Coastguard Worker 1950*da0073e9SAndroid Build Coastguard Worker # aten_cpu and aten_native_cpu 1951*da0073e9SAndroid Build Coastguard Worker for name, srcs in [ 1952*da0073e9SAndroid Build Coastguard Worker ("aten_cpu", jit_core_sources + aten_cpu_source_list + [ 1953*da0073e9SAndroid Build Coastguard Worker # Generated 1954*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Functions.cpp]", 1955*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_0.cpp]", 1956*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_1.cpp]", 1957*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_2.cpp]", 1958*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_3.cpp]", 1959*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_4.cpp]", 1960*da0073e9SAndroid Build Coastguard Worker ":gen_aten[core/ATenOpList.cpp]", 1961*da0073e9SAndroid Build Coastguard Worker ":gen_aten[core/TensorMethods.cpp]", 1962*da0073e9SAndroid Build Coastguard Worker # Needed by ATen/native/EmbeddingBag.cpp 1963*da0073e9SAndroid Build Coastguard Worker "caffe2/perfkernels/embedding_lookup_idx.cc", 1964*da0073e9SAndroid Build Coastguard Worker ]), 1965*da0073e9SAndroid Build Coastguard Worker ("aten_native_cpu", aten_native_source_list), 1966*da0073e9SAndroid Build Coastguard Worker ]: 1967*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 1968*da0073e9SAndroid Build Coastguard Worker name = name, 1969*da0073e9SAndroid Build Coastguard Worker srcs = srcs, 1970*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 1971*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT 1972*da0073e9SAndroid Build Coastguard Worker link_whole = True, 1973*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 1974*da0073e9SAndroid Build Coastguard Worker deps = [ 1975*da0073e9SAndroid Build Coastguard Worker third_party("omp"), 1976*da0073e9SAndroid Build Coastguard Worker third_party("cpuinfo"), 1977*da0073e9SAndroid Build Coastguard Worker third_party("glog"), 1978*da0073e9SAndroid Build Coastguard Worker third_party("XNNPACK"), 1979*da0073e9SAndroid Build Coastguard Worker third_party("pocketfft"), 1980*da0073e9SAndroid Build Coastguard Worker ] + select({ 1981*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 1982*da0073e9SAndroid Build Coastguard Worker "ovr_config//runtime:fbcode-arm64": [ 1983*da0073e9SAndroid Build Coastguard Worker third_party("sleef_arm"), 1984*da0073e9SAndroid Build Coastguard Worker ], 1985*da0073e9SAndroid Build Coastguard Worker }), 1986*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_aten_compiler_flags(), 1987*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_aten_preprocessor_flags(), 1988*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 1989*da0073e9SAndroid Build Coastguard Worker ":aten_header", 1990*da0073e9SAndroid Build Coastguard Worker ":caffe2_headers", 1991*da0073e9SAndroid Build Coastguard Worker ":common_core", 1992*da0073e9SAndroid Build Coastguard Worker ":generated_aten_config_header", 1993*da0073e9SAndroid Build Coastguard Worker ":generated_aten_headers_cpu", 1994*da0073e9SAndroid Build Coastguard Worker ":jit_core_headers", 1995*da0073e9SAndroid Build Coastguard Worker ":pthreadpool", 1996*da0073e9SAndroid Build Coastguard Worker third_party("fmt"), 1997*da0073e9SAndroid Build Coastguard Worker third_party("ruy"), 1998*da0073e9SAndroid Build Coastguard Worker C10, 1999*da0073e9SAndroid Build Coastguard Worker ROOT_PATH + "aten/src/ATen/native/quantized/cpu/qnnpack:pytorch_qnnpack", 2000*da0073e9SAndroid Build Coastguard Worker ], 2001*da0073e9SAndroid Build Coastguard Worker labels = labels, 2002*da0073e9SAndroid Build Coastguard Worker **aten_default_args 2003*da0073e9SAndroid Build Coastguard Worker ) 2004*da0073e9SAndroid Build Coastguard Worker 2005*da0073e9SAndroid Build Coastguard Worker fb_xplat_cxx_library( 2006*da0073e9SAndroid Build Coastguard Worker name = "lean_runtime_with_flatbuffer", 2007*da0073e9SAndroid Build Coastguard Worker srcs = [ 2008*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/DeprecatedTypePropertiesRegistry.cpp", 2009*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/import.cpp", 2010*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/module.cpp", 2011*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/observer.cpp", 2012*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/import_read.cpp", 2013*da0073e9SAndroid Build Coastguard Worker ], 2014*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 2015*da0073e9SAndroid Build Coastguard Worker exported_headers = subdir_glob( 2016*da0073e9SAndroid Build Coastguard Worker [ 2017*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/ir/*.h"), 2018*da0073e9SAndroid Build Coastguard Worker ("", "caffe2/serialize/*.h"), 2019*da0073e9SAndroid Build Coastguard Worker ("", "caffe2/utils/*.h"), 2020*da0073e9SAndroid Build Coastguard Worker ("", "caffe2/core/*.h"), 2021*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/*.h"), 2022*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/api/include/torch/*.h"), 2023*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/autograd/*.h"), 2024*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/autograd/*/*.h"), 2025*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/api/*.h"), 2026*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/backends/*.h"), 2027*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/mobile/*.h"), 2028*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/runtime/*.h"), 2029*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/passes/*.h"), 2030*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/python/*.h"), 2031*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/frontend/*.h"), 2032*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/jit/serialization/*.h"), 2033*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/profiler/**/*.h"), 2034*da0073e9SAndroid Build Coastguard Worker ("", "torch/csrc/utils/*.h"), 2035*da0073e9SAndroid Build Coastguard Worker ("", "aten/src/ATen/quantized/*.h"), 2036*da0073e9SAndroid Build Coastguard Worker ] + ([ 2037*da0073e9SAndroid Build Coastguard Worker ("third_party/miniz-2.1.0", "*.h"), 2038*da0073e9SAndroid Build Coastguard Worker ] if NOT_OSS else []), 2039*da0073e9SAndroid Build Coastguard Worker exclude = [ 2040*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/mobile_bytecode_generated.h", 2041*da0073e9SAndroid Build Coastguard Worker ], 2042*da0073e9SAndroid Build Coastguard Worker ), 2043*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + select({ 2044*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2045*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2046*da0073e9SAndroid Build Coastguard Worker "-fdata-sections", 2047*da0073e9SAndroid Build Coastguard Worker "-ffunction-sections", 2048*da0073e9SAndroid Build Coastguard Worker ], 2049*da0073e9SAndroid Build Coastguard Worker }), 2050*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + [ 2051*da0073e9SAndroid Build Coastguard Worker "-DMIN_EDGE_RUNTIME", 2052*da0073e9SAndroid Build Coastguard Worker ], 2053*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 2054*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 2055*da0073e9SAndroid Build Coastguard Worker ] + select({ 2056*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2057*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:macos": [ 2058*da0073e9SAndroid Build Coastguard Worker "-dead_strip", 2059*da0073e9SAndroid Build Coastguard Worker ], 2060*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2061*da0073e9SAndroid Build Coastguard Worker "-Wl,--gc-sections", 2062*da0073e9SAndroid Build Coastguard Worker ], 2063*da0073e9SAndroid Build Coastguard Worker }), 2064*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 2065*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 2066*da0073e9SAndroid Build Coastguard Worker ":lean_runtime_with_tensor", 2067*da0073e9SAndroid Build Coastguard Worker ], 2068*da0073e9SAndroid Build Coastguard Worker ) 2069*da0073e9SAndroid Build Coastguard Worker 2070*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 2071*da0073e9SAndroid Build Coastguard Worker name = "lean_runtime_with_tensor", 2072*da0073e9SAndroid Build Coastguard Worker srcs = [ 2073*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/Context.cpp", 2074*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/EmptyTensor.cpp", 2075*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/Utils.cpp", 2076*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/detail/CUDAHooksInterface.cpp", 2077*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/detail/PrivateUse1HooksInterface.cpp", 2078*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_0.cpp]", 2079*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_1.cpp]", 2080*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_2.cpp]", 2081*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_3.cpp]", 2082*da0073e9SAndroid Build Coastguard Worker ":gen_aten[Operators_4.cpp]", 2083*da0073e9SAndroid Build Coastguard Worker ":gen_aten[core/TensorMethods.cpp]", 2084*da0073e9SAndroid Build Coastguard Worker ], 2085*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 2086*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 2087*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/custom_operator.h", 2088*da0073e9SAndroid Build Coastguard Worker ":gen_aten[core/TensorBody.h]", 2089*da0073e9SAndroid Build Coastguard Worker ], 2090*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + select({ 2091*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2092*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2093*da0073e9SAndroid Build Coastguard Worker "-fdata-sections", 2094*da0073e9SAndroid Build Coastguard Worker "-ffunction-sections", 2095*da0073e9SAndroid Build Coastguard Worker ], 2096*da0073e9SAndroid Build Coastguard Worker }), 2097*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + ["-DMIN_EDGE_RUNTIME"] + select({ 2098*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2099*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2100*da0073e9SAndroid Build Coastguard Worker "-Dthread_local=", 2101*da0073e9SAndroid Build Coastguard Worker ], 2102*da0073e9SAndroid Build Coastguard Worker }), 2103*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 2104*da0073e9SAndroid Build Coastguard Worker link_whole = True, 2105*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 2106*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 2107*da0073e9SAndroid Build Coastguard Worker ], 2108*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 2109*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 2110*da0073e9SAndroid Build Coastguard Worker ":generated_aten_config_header", 2111*da0073e9SAndroid Build Coastguard Worker ":lean_runtime_with_op", 2112*da0073e9SAndroid Build Coastguard Worker ":aten_header", 2113*da0073e9SAndroid Build Coastguard Worker C10, 2114*da0073e9SAndroid Build Coastguard Worker ] + (["//xplat/caffe2/fb/embedded:experimental"] if NOT_OSS else []), 2115*da0073e9SAndroid Build Coastguard Worker ) 2116*da0073e9SAndroid Build Coastguard Worker 2117*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 2118*da0073e9SAndroid Build Coastguard Worker name = "lean_runtime_with_op", 2119*da0073e9SAndroid Build Coastguard Worker srcs = [ 2120*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/SequenceNumber.cpp", 2121*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/boxing/KernelFunction.cpp", 2122*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/custom_class.cpp", 2123*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/dispatch/DispatchKeyExtractor.cpp", 2124*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/dispatch/Dispatcher.cpp", 2125*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/dispatch/ObservedOperators.cpp", 2126*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/dispatch/OperatorEntry.cpp", 2127*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/PythonOpRegistrationTrampoline.cpp", 2128*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/interned_strings.cpp", 2129*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/library.cpp", 2130*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/op_registration/infer_schema.cpp", 2131*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/function_schema.cpp", 2132*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/operator_name.cpp", 2133*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/register_symbols.cpp", 2134*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/tensor_type.cpp", 2135*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/union_type.cpp", 2136*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/record_function.cpp", 2137*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/edit_distance.cpp", 2138*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/error_report.cpp", 2139*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/function_schema_parser.cpp", 2140*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/lexer.cpp", 2141*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/schema_type_parser.cpp", 2142*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/source_range.cpp", 2143*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/strtod.cpp", 2144*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/parse_operators.cpp", 2145*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/prim_ops_registery.cpp", 2146*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/operator.cpp", 2147*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/slice_indices_adjust.cpp", 2148*da0073e9SAndroid Build Coastguard Worker ], 2149*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 2150*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 2151*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/frontend/edit_distance.h", 2152*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/slice_indices_adjust.h", 2153*da0073e9SAndroid Build Coastguard Worker ], 2154*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + select({ 2155*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2156*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2157*da0073e9SAndroid Build Coastguard Worker "-fdata-sections", 2158*da0073e9SAndroid Build Coastguard Worker "-ffunction-sections", 2159*da0073e9SAndroid Build Coastguard Worker ], 2160*da0073e9SAndroid Build Coastguard Worker }), 2161*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + ["-DMIN_EDGE_RUNTIME"] + select({ 2162*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2163*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2164*da0073e9SAndroid Build Coastguard Worker "-Dthread_local=", 2165*da0073e9SAndroid Build Coastguard Worker ], 2166*da0073e9SAndroid Build Coastguard Worker }), 2167*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 2168*da0073e9SAndroid Build Coastguard Worker link_whole = True, 2169*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 2170*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 2171*da0073e9SAndroid Build Coastguard Worker ], 2172*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 2173*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 2174*da0073e9SAndroid Build Coastguard Worker ":min_runtime_lib", 2175*da0073e9SAndroid Build Coastguard Worker C10, 2176*da0073e9SAndroid Build Coastguard Worker ], 2177*da0073e9SAndroid Build Coastguard Worker ) 2178*da0073e9SAndroid Build Coastguard Worker 2179*da0073e9SAndroid Build Coastguard Worker pt_xplat_cxx_library( 2180*da0073e9SAndroid Build Coastguard Worker name = "min_runtime_lib", 2181*da0073e9SAndroid Build Coastguard Worker srcs = [ 2182*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/ScalarOps.cpp", 2183*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/Dict.cpp", 2184*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/List.cpp", 2185*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/class_type.cpp", 2186*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/dynamic_type.cpp", 2187*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/ivalue.cpp", 2188*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/type.cpp", 2189*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/core/type_factory.cpp", 2190*da0073e9SAndroid Build Coastguard Worker "aten/src/ATen/native/prim_native_functions.cpp", 2191*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/function.cpp", 2192*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/interpreter.cpp", 2193*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/parse_bytecode.cpp", 2194*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/promoted_prim_ops.cpp", 2195*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/register_ops_common_utils.cpp", 2196*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/type_parser.cpp", 2197*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/instruction.cpp", 2198*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/jit_exception.cpp", 2199*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/vararg_functions.cpp", 2200*da0073e9SAndroid Build Coastguard Worker ], 2201*da0073e9SAndroid Build Coastguard Worker header_namespace = "", 2202*da0073e9SAndroid Build Coastguard Worker exported_headers = [ 2203*da0073e9SAndroid Build Coastguard Worker "caffe2/serialize/versions.h", 2204*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/backends/backend_exception.h", 2205*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/mobile/register_ops_common_utils.h", 2206*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/instruction.h", 2207*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/jit_exception.h", 2208*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/operator.h", 2209*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/operator_options.h", 2210*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/runtime/vararg_functions.h", 2211*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/import_export_constants.h", 2212*da0073e9SAndroid Build Coastguard Worker "torch/csrc/jit/serialization/import_export_functions.h", 2213*da0073e9SAndroid Build Coastguard Worker ], 2214*da0073e9SAndroid Build Coastguard Worker compiler_flags = get_pt_compiler_flags() + select({ 2215*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2216*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2217*da0073e9SAndroid Build Coastguard Worker "-fexceptions", 2218*da0073e9SAndroid Build Coastguard Worker "-fdata-sections", 2219*da0073e9SAndroid Build Coastguard Worker "-ffunction-sections", 2220*da0073e9SAndroid Build Coastguard Worker ], 2221*da0073e9SAndroid Build Coastguard Worker }), 2222*da0073e9SAndroid Build Coastguard Worker exported_preprocessor_flags = get_pt_preprocessor_flags() + ["-DMIN_EDGE_RUNTIME"] + select({ 2223*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 2224*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:xtensa-xos": [ 2225*da0073e9SAndroid Build Coastguard Worker "-Dthread_local=", 2226*da0073e9SAndroid Build Coastguard Worker ], 2227*da0073e9SAndroid Build Coastguard Worker }), 2228*da0073e9SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT link_whole 2229*da0073e9SAndroid Build Coastguard Worker link_whole = True, 2230*da0073e9SAndroid Build Coastguard Worker linker_flags = [ 2231*da0073e9SAndroid Build Coastguard Worker "-Wl,--no-as-needed", 2232*da0073e9SAndroid Build Coastguard Worker ], 2233*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 2234*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 2235*da0073e9SAndroid Build Coastguard Worker ":aten_header", 2236*da0073e9SAndroid Build Coastguard Worker ":generated_aten_headers_cpu", 2237*da0073e9SAndroid Build Coastguard Worker ":jit_core_headers", 2238*da0073e9SAndroid Build Coastguard Worker ":torch_mobile_headers", 2239*da0073e9SAndroid Build Coastguard Worker C10, 2240*da0073e9SAndroid Build Coastguard Worker ], 2241*da0073e9SAndroid Build Coastguard Worker ) 2242