xref: /aosp_15_r20/external/pytorch/pt_ops.bzl (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:expect.bzl", "expect")
2*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fb_native_wrapper.bzl", "fb_native")
3*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:fb_xplat_genrule.bzl", "fb_xplat_genrule")
4*da0073e9SAndroid Build Coastguard Workerload("//tools/build_defs:type_defs.bzl", "is_list", "is_string")
5*da0073e9SAndroid Build Coastguard Worker
6*da0073e9SAndroid Build Coastguard WorkerIS_OSS = read_config("pt", "is_oss", "0") == "1"  # True for OSS BUCK build, and False for internal BUCK build
7*da0073e9SAndroid Build Coastguard Worker
8*da0073e9SAndroid Build Coastguard WorkerUSED_PT_BACKENDS = [
9*da0073e9SAndroid Build Coastguard Worker    "CPU",
10*da0073e9SAndroid Build Coastguard Worker    "QuantizedCPU",
11*da0073e9SAndroid Build Coastguard Worker    "SparseCPU",  # brings ~20 kb size regression
12*da0073e9SAndroid Build Coastguard Worker]
13*da0073e9SAndroid Build Coastguard Worker
14*da0073e9SAndroid Build Coastguard Workerdef pt_operator_library(
15*da0073e9SAndroid Build Coastguard Worker        name,
16*da0073e9SAndroid Build Coastguard Worker        ops = [],
17*da0073e9SAndroid Build Coastguard Worker        exported_deps = [],
18*da0073e9SAndroid Build Coastguard Worker        check_decl = True,
19*da0073e9SAndroid Build Coastguard Worker        train = False,
20*da0073e9SAndroid Build Coastguard Worker        model = None,
21*da0073e9SAndroid Build Coastguard Worker        include_all_operators = False,
22*da0073e9SAndroid Build Coastguard Worker        include_base_operators = True,
23*da0073e9SAndroid Build Coastguard Worker        **kwargs):
24*da0073e9SAndroid Build Coastguard Worker    (model_name, model_versions, model_assets, model_traced_backends) = validate_and_extract_model_information(
25*da0073e9SAndroid Build Coastguard Worker        name,
26*da0073e9SAndroid Build Coastguard Worker        model,
27*da0073e9SAndroid Build Coastguard Worker    )
28*da0073e9SAndroid Build Coastguard Worker
29*da0073e9SAndroid Build Coastguard Worker    ops = [op.strip() for op in ops]
30*da0073e9SAndroid Build Coastguard Worker
31*da0073e9SAndroid Build Coastguard Worker    # If ops are specified, then we are in static selective build mode, so we append
32*da0073e9SAndroid Build Coastguard Worker    # base ops to this list to avoid additional special case logic in subsequent code,
33*da0073e9SAndroid Build Coastguard Worker    # unless include_base_operators is explicitly set to False (the default is True)
34*da0073e9SAndroid Build Coastguard Worker    if len(ops) > 0 and include_base_operators:
35*da0073e9SAndroid Build Coastguard Worker        ops.extend(PT_BASE_OPS)
36*da0073e9SAndroid Build Coastguard Worker
37*da0073e9SAndroid Build Coastguard Worker    labels = kwargs.pop("labels", [])
38*da0073e9SAndroid Build Coastguard Worker    visibility = kwargs.pop("visibility", ["PUBLIC"])
39*da0073e9SAndroid Build Coastguard Worker
40*da0073e9SAndroid Build Coastguard Worker    # Sanity check the model name and versions.  While the input to both is an array, the
41*da0073e9SAndroid Build Coastguard Worker    # codegen script only ever outputs a single item in the array so we can just assume that
42*da0073e9SAndroid Build Coastguard Worker    # here. If you ever need to depends on more than one assets, just break it up into a separate
43*da0073e9SAndroid Build Coastguard Worker    # BUCK targets.
44*da0073e9SAndroid Build Coastguard Worker    if model_assets or model_versions:
45*da0073e9SAndroid Build Coastguard Worker        if len(model_assets) != 1:
46*da0073e9SAndroid Build Coastguard Worker            fail("Model assets must be of size 1")
47*da0073e9SAndroid Build Coastguard Worker        if len(model_versions) != 1:
48*da0073e9SAndroid Build Coastguard Worker            fail("Model versions must be of size 1")
49*da0073e9SAndroid Build Coastguard Worker
50*da0073e9SAndroid Build Coastguard Worker    # Is this a traced operator therefore has a YAML file with ops?
51*da0073e9SAndroid Build Coastguard Worker    yaml_option = ""
52*da0073e9SAndroid Build Coastguard Worker    if model_assets and len(model_assets) > 0:
53*da0073e9SAndroid Build Coastguard Worker        # We know these lists are only of length 1 via earlier assert.
54*da0073e9SAndroid Build Coastguard Worker        model_asset = model_assets[0]
55*da0073e9SAndroid Build Coastguard Worker        model_version = model_versions[0]
56*da0073e9SAndroid Build Coastguard Worker
57*da0073e9SAndroid Build Coastguard Worker        # Pass the YAML file from this asset to the genrule below.
58*da0073e9SAndroid Build Coastguard Worker        yaml_dep = "{}_v{}_yaml".format(model_asset, model_version)
59*da0073e9SAndroid Build Coastguard Worker        fb_native.filegroup(
60*da0073e9SAndroid Build Coastguard Worker            name = yaml_dep,
61*da0073e9SAndroid Build Coastguard Worker            srcs = [
62*da0073e9SAndroid Build Coastguard Worker                model_asset + ".yaml",
63*da0073e9SAndroid Build Coastguard Worker            ],
64*da0073e9SAndroid Build Coastguard Worker            # The visibility is not set to PUBLIC as this an internal detail.  If you see this error
65*da0073e9SAndroid Build Coastguard Worker            # in your buck build flow, you are trying to use a hand-crafted "pt_operator_library" that
66*da0073e9SAndroid Build Coastguard Worker            # with parameters not supported outside of codegen targets!
67*da0073e9SAndroid Build Coastguard Worker        )
68*da0073e9SAndroid Build Coastguard Worker
69*da0073e9SAndroid Build Coastguard Worker        # Since all selective traced ops are created by automation, we can assume they
70*da0073e9SAndroid Build Coastguard Worker        # have a YAML file at this very location.  If it doesn't exist, it means the targets
71*da0073e9SAndroid Build Coastguard Worker        # was hand-crafted which is not a support workflow for traced ops.
72*da0073e9SAndroid Build Coastguard Worker        yaml_option = "--models_yaml_path $(location fbsource//xplat/pytorch_models/build/{}/v{}:{})/{}.yaml".format(model_name, model_version, yaml_dep, model_asset)
73*da0073e9SAndroid Build Coastguard Worker
74*da0073e9SAndroid Build Coastguard Worker    not_include_all_overloads_static_root_ops = kwargs.pop(
75*da0073e9SAndroid Build Coastguard Worker        "not_include_all_overloads_static_root_ops",
76*da0073e9SAndroid Build Coastguard Worker        False,
77*da0073e9SAndroid Build Coastguard Worker    )
78*da0073e9SAndroid Build Coastguard Worker
79*da0073e9SAndroid Build Coastguard Worker    not_include_all_overloads_closure_ops = kwargs.pop("not_include_all_overloads_closure_ops", False)
80*da0073e9SAndroid Build Coastguard Worker
81*da0073e9SAndroid Build Coastguard Worker    if False:
82*da0073e9SAndroid Build Coastguard Worker        # TODO(nga): `yaml_option` is never `None`, but it is checked against `None` below.
83*da0073e9SAndroid Build Coastguard Worker        #   Typechecker (`--unstable-typecheck`) catches it.
84*da0073e9SAndroid Build Coastguard Worker        yaml_option = None
85*da0073e9SAndroid Build Coastguard Worker
86*da0073e9SAndroid Build Coastguard Worker    fb_xplat_genrule(
87*da0073e9SAndroid Build Coastguard Worker        name = name,
88*da0073e9SAndroid Build Coastguard Worker        out = "model_operators.yaml",
89*da0073e9SAndroid Build Coastguard Worker        cmd = (
90*da0073e9SAndroid Build Coastguard Worker            "$(exe {exe}) " +
91*da0073e9SAndroid Build Coastguard Worker            "{optionally_root_ops} " +
92*da0073e9SAndroid Build Coastguard Worker            "{optionally_training_root_ops} " +
93*da0073e9SAndroid Build Coastguard Worker            "--rule_name {rule_name} " +
94*da0073e9SAndroid Build Coastguard Worker            "--output_path \"${{OUT}}\" " +
95*da0073e9SAndroid Build Coastguard Worker            "--model_name {model_name} " +
96*da0073e9SAndroid Build Coastguard Worker            "--dep_graph_yaml_path {dep_graph_yaml} " +
97*da0073e9SAndroid Build Coastguard Worker            "{optionally_model_yamls} " +
98*da0073e9SAndroid Build Coastguard Worker            "{optionally_model_versions} " +
99*da0073e9SAndroid Build Coastguard Worker            "{optionally_model_assets} " +
100*da0073e9SAndroid Build Coastguard Worker            "{optionally_model_traced_backends} " +
101*da0073e9SAndroid Build Coastguard Worker            "{optionally_include_all_operators}" +
102*da0073e9SAndroid Build Coastguard Worker            "{not_include_all_overloads_static_root_ops}" +
103*da0073e9SAndroid Build Coastguard Worker            "{not_include_all_overloads_closure_ops}"
104*da0073e9SAndroid Build Coastguard Worker        ).format(
105*da0073e9SAndroid Build Coastguard Worker            exe = "//tools:gen_operators_yaml" if IS_OSS else "fbsource//xplat/caffe2/tools:gen_operators_yaml",
106*da0073e9SAndroid Build Coastguard Worker            rule_name = name,
107*da0073e9SAndroid Build Coastguard Worker            model_name = model_name,
108*da0073e9SAndroid Build Coastguard Worker            dep_graph_yaml = "none" if IS_OSS else "$(location fbsource//xplat/caffe2:pytorch_op_deps)/fb/pytorch_op_deps.yaml ",
109*da0073e9SAndroid Build Coastguard Worker            optionally_model_yamls = "" if (IS_OSS or yaml_option == None) else yaml_option,
110*da0073e9SAndroid Build Coastguard Worker            optionally_root_ops = "--root_ops " + (",".join(ops)) if len(ops) > 0 else "",
111*da0073e9SAndroid Build Coastguard Worker            optionally_training_root_ops = "--training_root_ops " + (",".join(ops)) if len(ops) > 0 and train else "",
112*da0073e9SAndroid Build Coastguard Worker            optionally_model_versions = "--model_versions " + (",".join(model_versions)) if model_versions != None else "",
113*da0073e9SAndroid Build Coastguard Worker            optionally_model_assets = "--model_assets " + (",".join(model_assets)) if model_assets != None else "",
114*da0073e9SAndroid Build Coastguard Worker            optionally_model_traced_backends = "--model_traced_backends " + (",".join(model_traced_backends)) if model_traced_backends != None else "",
115*da0073e9SAndroid Build Coastguard Worker            optionally_include_all_operators = "--include_all_operators " if include_all_operators else "",
116*da0073e9SAndroid Build Coastguard Worker            not_include_all_overloads_static_root_ops = "--not_include_all_overloads_static_root_ops " if not_include_all_overloads_static_root_ops else "",
117*da0073e9SAndroid Build Coastguard Worker            not_include_all_overloads_closure_ops = "--not_include_all_overloads_closure_ops " if not_include_all_overloads_closure_ops else "",
118*da0073e9SAndroid Build Coastguard Worker        ),
119*da0073e9SAndroid Build Coastguard Worker        labels = labels + [
120*da0073e9SAndroid Build Coastguard Worker            "pt_operator_library",
121*da0073e9SAndroid Build Coastguard Worker            "supermodule:android/default/pytorch",
122*da0073e9SAndroid Build Coastguard Worker            "supermodule:ios/default/public.pytorch",
123*da0073e9SAndroid Build Coastguard Worker        ] + (["pt_train_operator_library"] if train else []),
124*da0073e9SAndroid Build Coastguard Worker        visibility = visibility,
125*da0073e9SAndroid Build Coastguard Worker        **kwargs
126*da0073e9SAndroid Build Coastguard Worker    )
127*da0073e9SAndroid Build Coastguard Worker
128*da0073e9SAndroid Build Coastguard Workerdef validate_and_extract_model_information(name, model):
129*da0073e9SAndroid Build Coastguard Worker    model_name = name
130*da0073e9SAndroid Build Coastguard Worker    model_versions = None
131*da0073e9SAndroid Build Coastguard Worker    model_assets = None
132*da0073e9SAndroid Build Coastguard Worker    model_traced_backends = None
133*da0073e9SAndroid Build Coastguard Worker
134*da0073e9SAndroid Build Coastguard Worker    if model != None:
135*da0073e9SAndroid Build Coastguard Worker        model_name = model.get("name")
136*da0073e9SAndroid Build Coastguard Worker        expect(model_name != None, "Expected Model Name to be present")
137*da0073e9SAndroid Build Coastguard Worker        model_versions = model.get("versions")
138*da0073e9SAndroid Build Coastguard Worker        expect(is_list(model_versions), "Expected model versions to be a list of string")
139*da0073e9SAndroid Build Coastguard Worker        for ver in model_versions or []:
140*da0073e9SAndroid Build Coastguard Worker            expect(is_string(ver), "Expected version '{}' to be string".format(str(ver)))
141*da0073e9SAndroid Build Coastguard Worker        model_assets = model.get("assets")
142*da0073e9SAndroid Build Coastguard Worker        expect(
143*da0073e9SAndroid Build Coastguard Worker            model_assets == None or is_list(model_assets),
144*da0073e9SAndroid Build Coastguard Worker            "Expected model assets to be a list of string if specified",
145*da0073e9SAndroid Build Coastguard Worker        )
146*da0073e9SAndroid Build Coastguard Worker        for asset_name in model_assets or []:
147*da0073e9SAndroid Build Coastguard Worker            expect(is_string(asset_name), "Expected asset_name '{}' to be string".format(str(asset_name)))
148*da0073e9SAndroid Build Coastguard Worker        model_traced_backends = model.get("traced_backends")
149*da0073e9SAndroid Build Coastguard Worker        expect(
150*da0073e9SAndroid Build Coastguard Worker            model_traced_backends == None or is_list(model_traced_backends),
151*da0073e9SAndroid Build Coastguard Worker            "Expected model traced backends to be a list of string if specified",
152*da0073e9SAndroid Build Coastguard Worker        )
153*da0073e9SAndroid Build Coastguard Worker
154*da0073e9SAndroid Build Coastguard Worker        if model_traced_backends != None:
155*da0073e9SAndroid Build Coastguard Worker            for backend in model_traced_backends:
156*da0073e9SAndroid Build Coastguard Worker                expect(is_string(backend), "Expected backend name '{}' to be string".format(str(backend)))
157*da0073e9SAndroid Build Coastguard Worker                expect(
158*da0073e9SAndroid Build Coastguard Worker                    backend in USED_PT_BACKENDS,
159*da0073e9SAndroid Build Coastguard Worker                    "Expected backend name ({}) to be in set: {}".format(backend, ",".join(USED_PT_BACKENDS)),
160*da0073e9SAndroid Build Coastguard Worker                )
161*da0073e9SAndroid Build Coastguard Worker
162*da0073e9SAndroid Build Coastguard Worker    return (model_name, model_versions, model_assets, model_traced_backends)
163*da0073e9SAndroid Build Coastguard Worker
164*da0073e9SAndroid Build Coastguard Worker# This file keeps a list of PyTorch operators used by any targets in
165*da0073e9SAndroid Build Coastguard Worker# @fbsource//xplat/...
166*da0073e9SAndroid Build Coastguard Worker# The purpose of the list is to avoid generating large number of unused
167*da0073e9SAndroid Build Coastguard Worker# operator registration code / BUCK rules at build time.
168*da0073e9SAndroid Build Coastguard Worker# See more detail at: https://fb.quip.com/ZVh1AgOKW8Vv
169*da0073e9SAndroid Build Coastguard Worker
170*da0073e9SAndroid Build Coastguard WorkerPT_OPS_PRIM = [
171*da0073e9SAndroid Build Coastguard Worker    "aten::str",
172*da0073e9SAndroid Build Coastguard Worker    "aten::list",
173*da0073e9SAndroid Build Coastguard Worker    "aten::__range_length",
174*da0073e9SAndroid Build Coastguard Worker    "aten::__derive_index",
175*da0073e9SAndroid Build Coastguard Worker    "prim::TupleUnpack",
176*da0073e9SAndroid Build Coastguard Worker    "prim::unchecked_cast",
177*da0073e9SAndroid Build Coastguard Worker    "aten::IntImplicit",
178*da0073e9SAndroid Build Coastguard Worker    "aten::FloatImplicit",
179*da0073e9SAndroid Build Coastguard Worker    "aten::ScalarImplicit",
180*da0073e9SAndroid Build Coastguard Worker    "aten::Bool.Tensor",
181*da0073e9SAndroid Build Coastguard Worker    "aten::Bool.int",
182*da0073e9SAndroid Build Coastguard Worker    "aten::Bool.float",
183*da0073e9SAndroid Build Coastguard Worker    "aten::Int.Tensor",
184*da0073e9SAndroid Build Coastguard Worker    "aten::Int.Scalar",
185*da0073e9SAndroid Build Coastguard Worker    "aten::Int.int",
186*da0073e9SAndroid Build Coastguard Worker    "aten::Int.bool",
187*da0073e9SAndroid Build Coastguard Worker    "aten::Int.str",
188*da0073e9SAndroid Build Coastguard Worker    "aten::Float.Tensor",
189*da0073e9SAndroid Build Coastguard Worker    "aten::Float.Scalar",
190*da0073e9SAndroid Build Coastguard Worker    "aten::Float.int",
191*da0073e9SAndroid Build Coastguard Worker    "aten::Float.bool",
192*da0073e9SAndroid Build Coastguard Worker    "aten::Float.str",
193*da0073e9SAndroid Build Coastguard Worker    "aten::format",
194*da0073e9SAndroid Build Coastguard Worker    "prim::NumToTensor.Scalar",
195*da0073e9SAndroid Build Coastguard Worker    "prim::RaiseException",
196*da0073e9SAndroid Build Coastguard Worker    "aten::Size",
197*da0073e9SAndroid Build Coastguard Worker    "aten::size",
198*da0073e9SAndroid Build Coastguard Worker    "prim::EnumName",
199*da0073e9SAndroid Build Coastguard Worker    "prim::EnumValue.int",
200*da0073e9SAndroid Build Coastguard Worker    "prim::EnumValue.float",
201*da0073e9SAndroid Build Coastguard Worker    "prim::EnumValue.str",
202*da0073e9SAndroid Build Coastguard Worker    "prim::TupleIndex",
203*da0073e9SAndroid Build Coastguard Worker    "aten::ne.int_list",
204*da0073e9SAndroid Build Coastguard Worker    "prim::unchecked_unwrap_optional",
205*da0073e9SAndroid Build Coastguard Worker    "prim::device",
206*da0073e9SAndroid Build Coastguard Worker    "prim::dtype",
207*da0073e9SAndroid Build Coastguard Worker    "aten::__not__",
208*da0073e9SAndroid Build Coastguard Worker    "aten::__is__",
209*da0073e9SAndroid Build Coastguard Worker    "aten::__isnot__",
210*da0073e9SAndroid Build Coastguard Worker    "aten::element_size",
211*da0073e9SAndroid Build Coastguard Worker    "aten::numel",
212*da0073e9SAndroid Build Coastguard Worker    "aten::dim",
213*da0073e9SAndroid Build Coastguard Worker    "aten::get_device",
214*da0073e9SAndroid Build Coastguard Worker    "aten::storage_offset",
215*da0073e9SAndroid Build Coastguard Worker    "aten::is_contiguous",
216*da0073e9SAndroid Build Coastguard Worker    "aten::select.t",
217*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.t",
218*da0073e9SAndroid Build Coastguard Worker    "aten::append.t",
219*da0073e9SAndroid Build Coastguard Worker    "aten::reverse.t",
220*da0073e9SAndroid Build Coastguard Worker    "aten::extend.t",
221*da0073e9SAndroid Build Coastguard Worker    "aten::copy.t",
222*da0073e9SAndroid Build Coastguard Worker    "aten::_set_item.t",
223*da0073e9SAndroid Build Coastguard Worker    "aten::clear.t",
224*da0073e9SAndroid Build Coastguard Worker    "aten::Delete.t",
225*da0073e9SAndroid Build Coastguard Worker    "aten::insert.t",
226*da0073e9SAndroid Build Coastguard Worker    "aten::pop.t",
227*da0073e9SAndroid Build Coastguard Worker    "aten::add.t",
228*da0073e9SAndroid Build Coastguard Worker    "aten::add_.t",
229*da0073e9SAndroid Build Coastguard Worker    "aten::slice.t",
230*da0073e9SAndroid Build Coastguard Worker    "aten::list.t",
231*da0073e9SAndroid Build Coastguard Worker    "aten::mul.left_t",
232*da0073e9SAndroid Build Coastguard Worker    "aten::mul.right_",
233*da0073e9SAndroid Build Coastguard Worker    "aten::mul_.t",
234*da0073e9SAndroid Build Coastguard Worker    "aten::len.t",
235*da0073e9SAndroid Build Coastguard Worker    "aten::eq.int_list",
236*da0073e9SAndroid Build Coastguard Worker    "prim::Uninitialized",
237*da0073e9SAndroid Build Coastguard Worker    "prim::Print",
238*da0073e9SAndroid Build Coastguard Worker    "aten::eq.enum",
239*da0073e9SAndroid Build Coastguard Worker    "aten::ne.enum",
240*da0073e9SAndroid Build Coastguard Worker    "aten::dequantize.tensor",
241*da0073e9SAndroid Build Coastguard Worker    "aten::dequantize.any",
242*da0073e9SAndroid Build Coastguard Worker    "aten::add.str",
243*da0073e9SAndroid Build Coastguard Worker    "aten::eq.int",
244*da0073e9SAndroid Build Coastguard Worker    "aten::eq.float",
245*da0073e9SAndroid Build Coastguard Worker    "aten::eq.int_float",
246*da0073e9SAndroid Build Coastguard Worker    "aten::eq.float_int",
247*da0073e9SAndroid Build Coastguard Worker    "aten::eq",
248*da0073e9SAndroid Build Coastguard Worker    "aten::eq.str",
249*da0073e9SAndroid Build Coastguard Worker    "aten::ne.int",
250*da0073e9SAndroid Build Coastguard Worker    "aten::ne.float",
251*da0073e9SAndroid Build Coastguard Worker    "aten::ne.int_float",
252*da0073e9SAndroid Build Coastguard Worker    "aten::ne.float_int",
253*da0073e9SAndroid Build Coastguard Worker    "aten::ne",
254*da0073e9SAndroid Build Coastguard Worker    "aten::ne.str",
255*da0073e9SAndroid Build Coastguard Worker    "aten::lt.int",
256*da0073e9SAndroid Build Coastguard Worker    "aten::lt.float",
257*da0073e9SAndroid Build Coastguard Worker    "aten::lt.int_float",
258*da0073e9SAndroid Build Coastguard Worker    "aten::lt.float_int",
259*da0073e9SAndroid Build Coastguard Worker    "aten::lt",
260*da0073e9SAndroid Build Coastguard Worker    "aten::lt.str",
261*da0073e9SAndroid Build Coastguard Worker    "aten::gt.int",
262*da0073e9SAndroid Build Coastguard Worker    "aten::gt.float",
263*da0073e9SAndroid Build Coastguard Worker    "aten::gt.int_float",
264*da0073e9SAndroid Build Coastguard Worker    "aten::gt.float_int",
265*da0073e9SAndroid Build Coastguard Worker    "aten::gt",
266*da0073e9SAndroid Build Coastguard Worker    "aten::gt.str",
267*da0073e9SAndroid Build Coastguard Worker    "aten::le.int",
268*da0073e9SAndroid Build Coastguard Worker    "aten::le.float",
269*da0073e9SAndroid Build Coastguard Worker    "aten::le.int_float",
270*da0073e9SAndroid Build Coastguard Worker    "aten::le.float_int",
271*da0073e9SAndroid Build Coastguard Worker    "aten::le",
272*da0073e9SAndroid Build Coastguard Worker    "aten::le.str",
273*da0073e9SAndroid Build Coastguard Worker    "aten::ge.int",
274*da0073e9SAndroid Build Coastguard Worker    "aten::ge.float",
275*da0073e9SAndroid Build Coastguard Worker    "aten::ge.int_float",
276*da0073e9SAndroid Build Coastguard Worker    "aten::ge.float_int",
277*da0073e9SAndroid Build Coastguard Worker    "aten::ge",
278*da0073e9SAndroid Build Coastguard Worker    "aten::ge.str",
279*da0073e9SAndroid Build Coastguard Worker    "aten::add.int",
280*da0073e9SAndroid Build Coastguard Worker    "aten::add.float",
281*da0073e9SAndroid Build Coastguard Worker    "aten::add.int_float",
282*da0073e9SAndroid Build Coastguard Worker    "aten::add.float_int",
283*da0073e9SAndroid Build Coastguard Worker    "aten::add",
284*da0073e9SAndroid Build Coastguard Worker    "aten::sub.int",
285*da0073e9SAndroid Build Coastguard Worker    "aten::sub.float",
286*da0073e9SAndroid Build Coastguard Worker    "aten::sub.int_float",
287*da0073e9SAndroid Build Coastguard Worker    "aten::sub.float_int",
288*da0073e9SAndroid Build Coastguard Worker    "aten::sub",
289*da0073e9SAndroid Build Coastguard Worker    "aten::mul.int",
290*da0073e9SAndroid Build Coastguard Worker    "aten::mul.float",
291*da0073e9SAndroid Build Coastguard Worker    "aten::mul.int_float",
292*da0073e9SAndroid Build Coastguard Worker    "aten::mul.float_int",
293*da0073e9SAndroid Build Coastguard Worker    "aten::mul",
294*da0073e9SAndroid Build Coastguard Worker    "aten::__and__.bool",
295*da0073e9SAndroid Build Coastguard Worker    "aten::__or__.bool",
296*da0073e9SAndroid Build Coastguard Worker    "aten::__xor__.bool",
297*da0073e9SAndroid Build Coastguard Worker    "aten::floor.int",
298*da0073e9SAndroid Build Coastguard Worker    "aten::floor.float",
299*da0073e9SAndroid Build Coastguard Worker    "aten::floor.Scalar",
300*da0073e9SAndroid Build Coastguard Worker    "aten::ceil.int",
301*da0073e9SAndroid Build Coastguard Worker    "aten::ceil.float",
302*da0073e9SAndroid Build Coastguard Worker    "aten::ceil.Scalar",
303*da0073e9SAndroid Build Coastguard Worker    "aten::neg.int",
304*da0073e9SAndroid Build Coastguard Worker    "aten::neg.float",
305*da0073e9SAndroid Build Coastguard Worker    "aten::neg.Scalar",
306*da0073e9SAndroid Build Coastguard Worker    "aten::exp.int",
307*da0073e9SAndroid Build Coastguard Worker    "aten::exp.float",
308*da0073e9SAndroid Build Coastguard Worker    "aten::exp.Scalar",
309*da0073e9SAndroid Build Coastguard Worker    "aten::remainder.int",
310*da0073e9SAndroid Build Coastguard Worker    "aten::remainder.float",
311*da0073e9SAndroid Build Coastguard Worker    "aten::remainder.int_float",
312*da0073e9SAndroid Build Coastguard Worker    "aten::remainder.float_int",
313*da0073e9SAndroid Build Coastguard Worker    "aten::remainder",
314*da0073e9SAndroid Build Coastguard Worker    "aten::div.int",
315*da0073e9SAndroid Build Coastguard Worker    "aten::div.float",
316*da0073e9SAndroid Build Coastguard Worker    "aten::div",
317*da0073e9SAndroid Build Coastguard Worker    "aten::floordiv.int",
318*da0073e9SAndroid Build Coastguard Worker    "aten::floordiv.float",
319*da0073e9SAndroid Build Coastguard Worker    "aten::floordiv.int_float",
320*da0073e9SAndroid Build Coastguard Worker    "aten::floordiv.float_int",
321*da0073e9SAndroid Build Coastguard Worker    "aten::floordiv",
322*da0073e9SAndroid Build Coastguard Worker    "aten::pow.int",
323*da0073e9SAndroid Build Coastguard Worker    "aten::pow.float",
324*da0073e9SAndroid Build Coastguard Worker    "aten::pow.int_float",
325*da0073e9SAndroid Build Coastguard Worker    "aten::pow.float_int",
326*da0073e9SAndroid Build Coastguard Worker    "aten::pow.Scalar_Scalar",
327*da0073e9SAndroid Build Coastguard Worker    "aten::pow.int_to_int",
328*da0073e9SAndroid Build Coastguard Worker    "prim::min.int",
329*da0073e9SAndroid Build Coastguard Worker    "prim::min.float",
330*da0073e9SAndroid Build Coastguard Worker    "prim::min.int_float",
331*da0073e9SAndroid Build Coastguard Worker    "prim::min.float_int",
332*da0073e9SAndroid Build Coastguard Worker    "prim::min",
333*da0073e9SAndroid Build Coastguard Worker    "prim::max.int",
334*da0073e9SAndroid Build Coastguard Worker    "prim::max.float",
335*da0073e9SAndroid Build Coastguard Worker    "prim::max.int_float",
336*da0073e9SAndroid Build Coastguard Worker    "prim::max.float_int",
337*da0073e9SAndroid Build Coastguard Worker    "prim::max",
338*da0073e9SAndroid Build Coastguard Worker    "prim::type",
339*da0073e9SAndroid Build Coastguard Worker    "aten::len.Tensor",
340*da0073e9SAndroid Build Coastguard Worker    "aten::ord",
341*da0073e9SAndroid Build Coastguard Worker    "aten::lower",
342*da0073e9SAndroid Build Coastguard Worker    "aten::__contains__.str_list",
343*da0073e9SAndroid Build Coastguard Worker    "aten::len.str",
344*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.str",
345*da0073e9SAndroid Build Coastguard Worker    "aten::copy_.Tensor",
346*da0073e9SAndroid Build Coastguard Worker    "aten::copy_.int",
347*da0073e9SAndroid Build Coastguard Worker    "aten::copy_.float",
348*da0073e9SAndroid Build Coastguard Worker    "aten::backward",
349*da0073e9SAndroid Build Coastguard Worker    "aten::index.Tensor_hacked_twin",
350*da0073e9SAndroid Build Coastguard Worker    "aten::_unsafe_index.Tensor_hacked_twin",
351*da0073e9SAndroid Build Coastguard Worker    "aten::_index_put_impl_.hacked_twin",
352*da0073e9SAndroid Build Coastguard Worker    "aten::index_put_.hacked_twin",
353*da0073e9SAndroid Build Coastguard Worker    "aten::index_put.hacked_twin",
354*da0073e9SAndroid Build Coastguard Worker    "aten::_unsafe_index_put.hacked_twin",
355*da0073e9SAndroid Build Coastguard Worker    "aten::to.prim_Device",
356*da0073e9SAndroid Build Coastguard Worker    "aten::to.prim_dtype",
357*da0073e9SAndroid Build Coastguard Worker    "prim::is_cuda",
358*da0073e9SAndroid Build Coastguard Worker    "prim::data",
359*da0073e9SAndroid Build Coastguard Worker    "prim::min.int_list",
360*da0073e9SAndroid Build Coastguard Worker    "prim::max.int_list",
361*da0073e9SAndroid Build Coastguard Worker    "prim::min.self_int",
362*da0073e9SAndroid Build Coastguard Worker    "prim::max.self_int",
363*da0073e9SAndroid Build Coastguard Worker    "prim::min.float_list",
364*da0073e9SAndroid Build Coastguard Worker    "prim::max.float_list",
365*da0073e9SAndroid Build Coastguard Worker    "prim::min.self_float",
366*da0073e9SAndroid Build Coastguard Worker    "prim::max.self_float",
367*da0073e9SAndroid Build Coastguard Worker    "prim::min.bool_list",
368*da0073e9SAndroid Build Coastguard Worker    "prim::max.bool_list",
369*da0073e9SAndroid Build Coastguard Worker    "prim::min.self_bool",
370*da0073e9SAndroid Build Coastguard Worker    "prim::max.self_bool",
371*da0073e9SAndroid Build Coastguard Worker    "aten::len.Dict_str",
372*da0073e9SAndroid Build Coastguard Worker    "aten::keys.str",
373*da0073e9SAndroid Build Coastguard Worker    "aten::values.str",
374*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.Dict_str",
375*da0073e9SAndroid Build Coastguard Worker    "aten::get.str",
376*da0073e9SAndroid Build Coastguard Worker    "aten::get.default_str",
377*da0073e9SAndroid Build Coastguard Worker    "aten::setdefault.str",
378*da0073e9SAndroid Build Coastguard Worker    "aten::Delete.Dict_str",
379*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_str",
380*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_default_str",
381*da0073e9SAndroid Build Coastguard Worker    "aten::popitem.str",
382*da0073e9SAndroid Build Coastguard Worker    "aten::clear.str",
383*da0073e9SAndroid Build Coastguard Worker    "aten::update.str",
384*da0073e9SAndroid Build Coastguard Worker    "aten::items.str",
385*da0073e9SAndroid Build Coastguard Worker    "aten::copy.Dict_str",
386*da0073e9SAndroid Build Coastguard Worker    "aten::__contains__.str",
387*da0073e9SAndroid Build Coastguard Worker    "aten::_set_item.str",
388*da0073e9SAndroid Build Coastguard Worker    "aten::dict.str",
389*da0073e9SAndroid Build Coastguard Worker    "aten::len.Dict_int",
390*da0073e9SAndroid Build Coastguard Worker    "aten::keys.int",
391*da0073e9SAndroid Build Coastguard Worker    "aten::values.int",
392*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.Dict_int",
393*da0073e9SAndroid Build Coastguard Worker    "aten::get.int",
394*da0073e9SAndroid Build Coastguard Worker    "aten::get.default_int",
395*da0073e9SAndroid Build Coastguard Worker    "aten::setdefault.int",
396*da0073e9SAndroid Build Coastguard Worker    "aten::Delete.Dict_int",
397*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_int",
398*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_default_int",
399*da0073e9SAndroid Build Coastguard Worker    "aten::popitem.int",
400*da0073e9SAndroid Build Coastguard Worker    "aten::clear.int",
401*da0073e9SAndroid Build Coastguard Worker    "aten::update.int",
402*da0073e9SAndroid Build Coastguard Worker    "aten::items.int",
403*da0073e9SAndroid Build Coastguard Worker    "aten::copy.Dict_int",
404*da0073e9SAndroid Build Coastguard Worker    "aten::__contains__.int",
405*da0073e9SAndroid Build Coastguard Worker    "aten::_set_item.int",
406*da0073e9SAndroid Build Coastguard Worker    "aten::dict.int",
407*da0073e9SAndroid Build Coastguard Worker    "aten::len.Dict_bool",
408*da0073e9SAndroid Build Coastguard Worker    "aten::keys.bool",
409*da0073e9SAndroid Build Coastguard Worker    "aten::values.bool",
410*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.Dict_bool",
411*da0073e9SAndroid Build Coastguard Worker    "aten::get.bool",
412*da0073e9SAndroid Build Coastguard Worker    "aten::get.default_bool",
413*da0073e9SAndroid Build Coastguard Worker    "aten::setdefault.bool",
414*da0073e9SAndroid Build Coastguard Worker    "aten::Delete.Dict_bool",
415*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_bool",
416*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_default_bool",
417*da0073e9SAndroid Build Coastguard Worker    "aten::popitem.bool",
418*da0073e9SAndroid Build Coastguard Worker    "aten::clear.bool",
419*da0073e9SAndroid Build Coastguard Worker    "aten::update.bool",
420*da0073e9SAndroid Build Coastguard Worker    "aten::items.bool",
421*da0073e9SAndroid Build Coastguard Worker    "aten::copy.Dict_bool",
422*da0073e9SAndroid Build Coastguard Worker    "aten::__contains__.bool",
423*da0073e9SAndroid Build Coastguard Worker    "aten::_set_item.bool",
424*da0073e9SAndroid Build Coastguard Worker    "aten::dict.bool",
425*da0073e9SAndroid Build Coastguard Worker    "aten::len.Dict_float",
426*da0073e9SAndroid Build Coastguard Worker    "aten::keys.float",
427*da0073e9SAndroid Build Coastguard Worker    "aten::values.float",
428*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.Dict_float",
429*da0073e9SAndroid Build Coastguard Worker    "aten::get.float",
430*da0073e9SAndroid Build Coastguard Worker    "aten::get.default_float",
431*da0073e9SAndroid Build Coastguard Worker    "aten::setdefault.float",
432*da0073e9SAndroid Build Coastguard Worker    "aten::Delete.Dict_float",
433*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_float",
434*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_default_float",
435*da0073e9SAndroid Build Coastguard Worker    "aten::popitem.float",
436*da0073e9SAndroid Build Coastguard Worker    "aten::clear.float",
437*da0073e9SAndroid Build Coastguard Worker    "aten::update.float",
438*da0073e9SAndroid Build Coastguard Worker    "aten::items.float",
439*da0073e9SAndroid Build Coastguard Worker    "aten::copy.Dict_float",
440*da0073e9SAndroid Build Coastguard Worker    "aten::__contains__.float",
441*da0073e9SAndroid Build Coastguard Worker    "aten::_set_item.float",
442*da0073e9SAndroid Build Coastguard Worker    "aten::dict.float",
443*da0073e9SAndroid Build Coastguard Worker    "aten::len.Dict_Tensor",
444*da0073e9SAndroid Build Coastguard Worker    "aten::keys.Tensor",
445*da0073e9SAndroid Build Coastguard Worker    "aten::values.Tensor",
446*da0073e9SAndroid Build Coastguard Worker    "aten::__getitem__.Dict_Tensor",
447*da0073e9SAndroid Build Coastguard Worker    "aten::get.Tensor",
448*da0073e9SAndroid Build Coastguard Worker    "aten::get.default_Tensor",
449*da0073e9SAndroid Build Coastguard Worker    "aten::setdefault.Tensor",
450*da0073e9SAndroid Build Coastguard Worker    "aten::Delete.Dict_Tensor",
451*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_Tensor",
452*da0073e9SAndroid Build Coastguard Worker    "aten::pop.Dict_default_Tensor",
453*da0073e9SAndroid Build Coastguard Worker    "aten::popitem.Tensor",
454*da0073e9SAndroid Build Coastguard Worker    "aten::clear.Tensor",
455*da0073e9SAndroid Build Coastguard Worker    "aten::update.Tensor",
456*da0073e9SAndroid Build Coastguard Worker    "aten::items.Tensor",
457*da0073e9SAndroid Build Coastguard Worker    "aten::copy.Dict_Tensor",
458*da0073e9SAndroid Build Coastguard Worker    "aten::__contains__.Tensor",
459*da0073e9SAndroid Build Coastguard Worker    "aten::_set_item.Tensor",
460*da0073e9SAndroid Build Coastguard Worker    "aten::dict.Tensor",
461*da0073e9SAndroid Build Coastguard Worker    "aten::__round_to_zero_floordiv.int",
462*da0073e9SAndroid Build Coastguard Worker    "aten::mathremainder.int",
463*da0073e9SAndroid Build Coastguard Worker    "aten::mathremainder.float",
464*da0073e9SAndroid Build Coastguard Worker    "aten::mathremainder.int_float",
465*da0073e9SAndroid Build Coastguard Worker    "aten::mathremainder.float_int",
466*da0073e9SAndroid Build Coastguard Worker    "aten::mathremainder",
467*da0073e9SAndroid Build Coastguard Worker    "aten::__and__.int",
468*da0073e9SAndroid Build Coastguard Worker    "aten::__or__.int",
469*da0073e9SAndroid Build Coastguard Worker    "aten::__xor__.int",
470*da0073e9SAndroid Build Coastguard Worker    "aten::__lshift__.int",
471*da0073e9SAndroid Build Coastguard Worker    "aten::__rshift__.int",
472*da0073e9SAndroid Build Coastguard Worker    "aten::round.int",
473*da0073e9SAndroid Build Coastguard Worker    "aten::round.float",
474*da0073e9SAndroid Build Coastguard Worker    "aten::round.Scalar",
475*da0073e9SAndroid Build Coastguard Worker    "aten::log.int",
476*da0073e9SAndroid Build Coastguard Worker    "aten::log.float",
477*da0073e9SAndroid Build Coastguard Worker    "aten::log.Scalar",
478*da0073e9SAndroid Build Coastguard Worker    "aten::log.int_int",
479*da0073e9SAndroid Build Coastguard Worker    "aten::log.float_float",
480*da0073e9SAndroid Build Coastguard Worker    "aten::log.int_float",
481*da0073e9SAndroid Build Coastguard Worker    "aten::log.float_int",
482*da0073e9SAndroid Build Coastguard Worker    "aten::log.Scalar_Scalar",
483*da0073e9SAndroid Build Coastguard Worker    "aten::log1p.int",
484*da0073e9SAndroid Build Coastguard Worker    "aten::log1p.float",
485*da0073e9SAndroid Build Coastguard Worker    "aten::log1p.Scalar",
486*da0073e9SAndroid Build Coastguard Worker    "aten::log10.int",
487*da0073e9SAndroid Build Coastguard Worker    "aten::log10.float",
488*da0073e9SAndroid Build Coastguard Worker    "aten::log10.Scalar",
489*da0073e9SAndroid Build Coastguard Worker    "aten::sqrt.int",
490*da0073e9SAndroid Build Coastguard Worker    "aten::sqrt.float",
491*da0073e9SAndroid Build Coastguard Worker    "aten::sqrt.Scalar",
492*da0073e9SAndroid Build Coastguard Worker    "aten::acos.int",
493*da0073e9SAndroid Build Coastguard Worker    "aten::acos.float",
494*da0073e9SAndroid Build Coastguard Worker    "aten::acos.Scalar",
495*da0073e9SAndroid Build Coastguard Worker    "aten::asin.int",
496*da0073e9SAndroid Build Coastguard Worker    "aten::asin.float",
497*da0073e9SAndroid Build Coastguard Worker    "aten::asin.Scalar",
498*da0073e9SAndroid Build Coastguard Worker    "aten::atan.int",
499*da0073e9SAndroid Build Coastguard Worker    "aten::atan.float",
500*da0073e9SAndroid Build Coastguard Worker    "aten::atan.Scalar",
501*da0073e9SAndroid Build Coastguard Worker    "aten::atan2.int",
502*da0073e9SAndroid Build Coastguard Worker    "aten::atan2.float",
503*da0073e9SAndroid Build Coastguard Worker    "aten::atan2.int_float",
504*da0073e9SAndroid Build Coastguard Worker    "aten::atan2.float_int",
505*da0073e9SAndroid Build Coastguard Worker    "aten::atan2.Scalar_Scalar",
506*da0073e9SAndroid Build Coastguard Worker    "aten::cos.int",
507*da0073e9SAndroid Build Coastguard Worker    "aten::cos.float",
508*da0073e9SAndroid Build Coastguard Worker    "aten::cos.Scalar",
509*da0073e9SAndroid Build Coastguard Worker    "aten::sin.int",
510*da0073e9SAndroid Build Coastguard Worker    "aten::sin.float",
511*da0073e9SAndroid Build Coastguard Worker    "aten::sin.Scalar",
512*da0073e9SAndroid Build Coastguard Worker    "aten::tan.int",
513*da0073e9SAndroid Build Coastguard Worker    "aten::tan.float",
514*da0073e9SAndroid Build Coastguard Worker    "aten::tan.Scalar",
515*da0073e9SAndroid Build Coastguard Worker    "aten::asinh.int",
516*da0073e9SAndroid Build Coastguard Worker    "aten::asinh.float",
517*da0073e9SAndroid Build Coastguard Worker    "aten::asinh.Scalar",
518*da0073e9SAndroid Build Coastguard Worker    "aten::atanh.int",
519*da0073e9SAndroid Build Coastguard Worker    "aten::atanh.float",
520*da0073e9SAndroid Build Coastguard Worker    "aten::atanh.Scalar",
521*da0073e9SAndroid Build Coastguard Worker    "aten::acosh.int",
522*da0073e9SAndroid Build Coastguard Worker    "aten::acosh.float",
523*da0073e9SAndroid Build Coastguard Worker    "aten::acosh.Scalar",
524*da0073e9SAndroid Build Coastguard Worker    "aten::sinh.int",
525*da0073e9SAndroid Build Coastguard Worker    "aten::sinh.float",
526*da0073e9SAndroid Build Coastguard Worker    "aten::sinh.Scalar",
527*da0073e9SAndroid Build Coastguard Worker    "aten::cosh.int",
528*da0073e9SAndroid Build Coastguard Worker    "aten::cosh.float",
529*da0073e9SAndroid Build Coastguard Worker    "aten::cosh.Scalar",
530*da0073e9SAndroid Build Coastguard Worker    "aten::tanh.int",
531*da0073e9SAndroid Build Coastguard Worker    "aten::tanh.float",
532*da0073e9SAndroid Build Coastguard Worker    "aten::tanh.Scalar",
533*da0073e9SAndroid Build Coastguard Worker    "aten::degrees.int",
534*da0073e9SAndroid Build Coastguard Worker    "aten::degrees.float",
535*da0073e9SAndroid Build Coastguard Worker    "aten::degrees.Scalar",
536*da0073e9SAndroid Build Coastguard Worker    "aten::radians.int",
537*da0073e9SAndroid Build Coastguard Worker    "aten::radians.float",
538*da0073e9SAndroid Build Coastguard Worker    "aten::radians.Scalar",
539*da0073e9SAndroid Build Coastguard Worker    "aten::fmod.int",
540*da0073e9SAndroid Build Coastguard Worker    "aten::fmod.float",
541*da0073e9SAndroid Build Coastguard Worker    "aten::fmod.int_float",
542*da0073e9SAndroid Build Coastguard Worker    "aten::fmod.float_int",
543*da0073e9SAndroid Build Coastguard Worker    "aten::fmod",
544*da0073e9SAndroid Build Coastguard Worker    "aten::factorial.int",
545*da0073e9SAndroid Build Coastguard Worker    "aten::isnan.float",
546*da0073e9SAndroid Build Coastguard Worker    "aten::isfinite.float",
547*da0073e9SAndroid Build Coastguard Worker    "aten::isinf.float",
548*da0073e9SAndroid Build Coastguard Worker    "aten::gamma.int",
549*da0073e9SAndroid Build Coastguard Worker    "aten::gamma.float",
550*da0073e9SAndroid Build Coastguard Worker    "aten::gamma.Scalar",
551*da0073e9SAndroid Build Coastguard Worker    "aten::erf.int",
552*da0073e9SAndroid Build Coastguard Worker    "aten::erf.float",
553*da0073e9SAndroid Build Coastguard Worker    "aten::erf.Scalar",
554*da0073e9SAndroid Build Coastguard Worker    "aten::erfc.int",
555*da0073e9SAndroid Build Coastguard Worker    "aten::erfc.float",
556*da0073e9SAndroid Build Coastguard Worker    "aten::erfc.Scalar",
557*da0073e9SAndroid Build Coastguard Worker    "aten::expm1.int",
558*da0073e9SAndroid Build Coastguard Worker    "aten::expm1.float",
559*da0073e9SAndroid Build Coastguard Worker    "aten::expm1.Scalar",
560*da0073e9SAndroid Build Coastguard Worker    "aten::fabs.int",
561*da0073e9SAndroid Build Coastguard Worker    "aten::fabs.float",
562*da0073e9SAndroid Build Coastguard Worker    "aten::fabs.Scalar",
563*da0073e9SAndroid Build Coastguard Worker    "aten::lgamma.int",
564*da0073e9SAndroid Build Coastguard Worker    "aten::lgamma.float",
565*da0073e9SAndroid Build Coastguard Worker    "aten::lgamma.Scalar",
566*da0073e9SAndroid Build Coastguard Worker    "prim::abs.int",
567*da0073e9SAndroid Build Coastguard Worker    "prim::abs.float",
568*da0073e9SAndroid Build Coastguard Worker    "prim::abs.Scalar",
569*da0073e9SAndroid Build Coastguard Worker    "aten::gcd.int",
570*da0073e9SAndroid Build Coastguard Worker    "aten::copysign.int",
571*da0073e9SAndroid Build Coastguard Worker    "aten::copysign.float",
572*da0073e9SAndroid Build Coastguard Worker    "aten::copysign.int_float",
573*da0073e9SAndroid Build Coastguard Worker    "aten::copysign.float_int",
574*da0073e9SAndroid Build Coastguard Worker    "aten::copysign",
575*da0073e9SAndroid Build Coastguard Worker    "aten::split",
576*da0073e9SAndroid Build Coastguard Worker    "aten::tensor.float",
577*da0073e9SAndroid Build Coastguard Worker    "aten::as_tensor.float",
578*da0073e9SAndroid Build Coastguard Worker    "aten::tensor.int",
579*da0073e9SAndroid Build Coastguard Worker    "aten::as_tensor.int",
580*da0073e9SAndroid Build Coastguard Worker    "aten::tensor.bool",
581*da0073e9SAndroid Build Coastguard Worker    "aten::as_tensor.bool",
582*da0073e9SAndroid Build Coastguard Worker    "aten::_infer_size",
583*da0073e9SAndroid Build Coastguard Worker    "aten::_no_grad_embedding_renorm_",
584*da0073e9SAndroid Build Coastguard Worker    "aten::tensor",
585*da0073e9SAndroid Build Coastguard Worker    "aten::as_tensor",
586*da0073e9SAndroid Build Coastguard Worker    "aten::as_tensor.list",
587*da0073e9SAndroid Build Coastguard Worker    "aten::_pack_sequence",
588*da0073e9SAndroid Build Coastguard Worker    "aten::_get_tracing_state",
589*da0073e9SAndroid Build Coastguard Worker    "aten::is_scripting",
590*da0073e9SAndroid Build Coastguard Worker    "aten::_no_grad_uniform_",
591*da0073e9SAndroid Build Coastguard Worker    "aten::_no_grad_normal_",
592*da0073e9SAndroid Build Coastguard Worker    "aten::_no_grad_fill_",
593*da0073e9SAndroid Build Coastguard Worker    "aten::_no_grad_zero_",
594*da0073e9SAndroid Build Coastguard Worker]
595*da0073e9SAndroid Build Coastguard Worker
596*da0073e9SAndroid Build Coastguard WorkerPT_BASE_OPS = [
597*da0073e9SAndroid Build Coastguard Worker    "aten::_coalesced_",
598*da0073e9SAndroid Build Coastguard Worker    "aten::_copy_from",
599*da0073e9SAndroid Build Coastguard Worker    "aten::_empty_affine_quantized",
600*da0073e9SAndroid Build Coastguard Worker    "aten::_empty_per_channel_affine_quantized",
601*da0073e9SAndroid Build Coastguard Worker    "aten::_indices",
602*da0073e9SAndroid Build Coastguard Worker    "aten::_nnz",
603*da0073e9SAndroid Build Coastguard Worker    "aten::_values",
604*da0073e9SAndroid Build Coastguard Worker    "aten::add",
605*da0073e9SAndroid Build Coastguard Worker    "aten::add_",
606*da0073e9SAndroid Build Coastguard Worker    "aten::arange",
607*da0073e9SAndroid Build Coastguard Worker    "aten::as_strided",
608*da0073e9SAndroid Build Coastguard Worker    "aten::as_strided_",
609*da0073e9SAndroid Build Coastguard Worker    "aten::cat",
610*da0073e9SAndroid Build Coastguard Worker    "aten::clone",
611*da0073e9SAndroid Build Coastguard Worker    "aten::coalesce",
612*da0073e9SAndroid Build Coastguard Worker    "aten::contiguous",
613*da0073e9SAndroid Build Coastguard Worker    "aten::copy_",
614*da0073e9SAndroid Build Coastguard Worker    "aten::copy_sparse_to_sparse_",
615*da0073e9SAndroid Build Coastguard Worker    "aten::dense_dim",
616*da0073e9SAndroid Build Coastguard Worker    "aten::dequantize",
617*da0073e9SAndroid Build Coastguard Worker    "aten::div",
618*da0073e9SAndroid Build Coastguard Worker    "aten::div_",
619*da0073e9SAndroid Build Coastguard Worker    "aten::empty",
620*da0073e9SAndroid Build Coastguard Worker    "aten::empty_like",
621*da0073e9SAndroid Build Coastguard Worker    "aten::empty_strided",
622*da0073e9SAndroid Build Coastguard Worker    "aten::eq",
623*da0073e9SAndroid Build Coastguard Worker    "aten::equal",
624*da0073e9SAndroid Build Coastguard Worker    "aten::expand",
625*da0073e9SAndroid Build Coastguard Worker    "aten::fill_",
626*da0073e9SAndroid Build Coastguard Worker    "aten::is_coalesced",
627*da0073e9SAndroid Build Coastguard Worker    "aten::is_complex",
628*da0073e9SAndroid Build Coastguard Worker    "aten::is_floating_point",
629*da0073e9SAndroid Build Coastguard Worker    "aten::is_leaf",
630*da0073e9SAndroid Build Coastguard Worker    "aten::is_nonzero",
631*da0073e9SAndroid Build Coastguard Worker    "aten::item",
632*da0073e9SAndroid Build Coastguard Worker    "aten::max",
633*da0073e9SAndroid Build Coastguard Worker    "aten::min",
634*da0073e9SAndroid Build Coastguard Worker    "aten::mul",
635*da0073e9SAndroid Build Coastguard Worker    "aten::mul_",
636*da0073e9SAndroid Build Coastguard Worker    "aten::narrow",
637*da0073e9SAndroid Build Coastguard Worker    "aten::ne",
638*da0073e9SAndroid Build Coastguard Worker    "aten::permute",
639*da0073e9SAndroid Build Coastguard Worker    "aten::q_per_channel_axis",
640*da0073e9SAndroid Build Coastguard Worker    "aten::q_per_channel_scales",
641*da0073e9SAndroid Build Coastguard Worker    "aten::q_per_channel_zero_points",
642*da0073e9SAndroid Build Coastguard Worker    "aten::q_scale",
643*da0073e9SAndroid Build Coastguard Worker    "aten::q_zero_point",
644*da0073e9SAndroid Build Coastguard Worker    "aten::qscheme",
645*da0073e9SAndroid Build Coastguard Worker    "aten::quantize_per_tensor",
646*da0073e9SAndroid Build Coastguard Worker    "aten::reshape",
647*da0073e9SAndroid Build Coastguard Worker    "aten::_reshape_alias",
648*da0073e9SAndroid Build Coastguard Worker    "aten::resize_",
649*da0073e9SAndroid Build Coastguard Worker    "aten::resize_as_",
650*da0073e9SAndroid Build Coastguard Worker    "aten::scalar_tensor",
651*da0073e9SAndroid Build Coastguard Worker    "aten::select",
652*da0073e9SAndroid Build Coastguard Worker    "aten::set_",
653*da0073e9SAndroid Build Coastguard Worker    "aten::size",
654*da0073e9SAndroid Build Coastguard Worker    "aten::slice",
655*da0073e9SAndroid Build Coastguard Worker    "aten::sparse_dim",
656*da0073e9SAndroid Build Coastguard Worker    "aten::sparse_resize_and_clear_",
657*da0073e9SAndroid Build Coastguard Worker    "aten::squeeze",
658*da0073e9SAndroid Build Coastguard Worker    "aten::squeeze_",
659*da0073e9SAndroid Build Coastguard Worker    "aten::stride",
660*da0073e9SAndroid Build Coastguard Worker    "aten::sub",
661*da0073e9SAndroid Build Coastguard Worker    "aten::sub_",
662*da0073e9SAndroid Build Coastguard Worker    "aten::sum",
663*da0073e9SAndroid Build Coastguard Worker    "aten::t",
664*da0073e9SAndroid Build Coastguard Worker    "aten::to",
665*da0073e9SAndroid Build Coastguard Worker    "aten::_to_copy",
666*da0073e9SAndroid Build Coastguard Worker    "aten::unsqueeze",
667*da0073e9SAndroid Build Coastguard Worker    "aten::view",
668*da0073e9SAndroid Build Coastguard Worker    "aten::zero_",
669*da0073e9SAndroid Build Coastguard Worker    "aten::zeros",
670*da0073e9SAndroid Build Coastguard Worker    "aten::zeros_like",
671*da0073e9SAndroid Build Coastguard Worker]
672