xref: /aosp_15_r20/external/pytorch/test/edge/templates/RegisterCodegenUnboxedKernels.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #include <operator_registry.h>
2*da0073e9SAndroid Build Coastguard Worker #include <event_tracer_hooks.h>
3*da0073e9SAndroid Build Coastguard Worker #include "${fn_header}" // Generated Function import headers
4*da0073e9SAndroid Build Coastguard Worker 
5*da0073e9SAndroid Build Coastguard Worker namespace torch {
6*da0073e9SAndroid Build Coastguard Worker namespace executor {
7*da0073e9SAndroid Build Coastguard Worker 
8*da0073e9SAndroid Build Coastguard Worker using namespace internal;
9*da0073e9SAndroid Build Coastguard Worker 
10*da0073e9SAndroid Build Coastguard Worker namespace {
11*da0073e9SAndroid Build Coastguard Worker using KernelArrayRef = ::at::ArrayRef<::torch::executor::Kernel>;
12*da0073e9SAndroid Build Coastguard Worker 
13*da0073e9SAndroid Build Coastguard Worker static Kernel kernels_to_register[] = {
14*da0073e9SAndroid Build Coastguard Worker     ${unboxed_kernels} // Generated operators
15*da0073e9SAndroid Build Coastguard Worker };
16*da0073e9SAndroid Build Coastguard Worker 
17*da0073e9SAndroid Build Coastguard Worker // Explicitly convert to ArrayRef, so that the API can take an empty C array of
18*da0073e9SAndroid Build Coastguard Worker // Kernels.
19*da0073e9SAndroid Build Coastguard Worker static KernelArrayRef kernel_array_ref(
20*da0073e9SAndroid Build Coastguard Worker     kernels_to_register,
21*da0073e9SAndroid Build Coastguard Worker     kernels_to_register + sizeof(kernels_to_register) / sizeof(Kernel));
22*da0073e9SAndroid Build Coastguard Worker 
23*da0073e9SAndroid Build Coastguard Worker // Return value not used. Keep the static variable assignment to register
24*da0073e9SAndroid Build Coastguard Worker // operators in static initialization time.
25*da0073e9SAndroid Build Coastguard Worker static auto success_with_kernel_reg = register_kernels(kernel_array_ref);
26*da0073e9SAndroid Build Coastguard Worker } // namespace
27*da0073e9SAndroid Build Coastguard Worker } // namespace executor
28*da0073e9SAndroid Build Coastguard Worker } // namespace torch
29