BEGINE_DEFINE_TARGET(neutral)
    DEFINE_NEUTRAL_RUNTIME_OP(binary,               Binary,             0x0)
    DEFINE_NEUTRAL_RUNTIME_OP(concat,               Concat,             0x1)
    DEFINE_NEUTRAL_RUNTIME_OP(conv2d,               Conv2D,             0x2)
    DEFINE_NEUTRAL_RUNTIME_OP(dequantize,           Dequantize,         0x3)
    DEFINE_NEUTRAL_RUNTIME_OP(matmul,               MatMul,             0x4)
    DEFINE_NEUTRAL_RUNTIME_OP(pad,                  Pad,                0x5)
    DEFINE_NEUTRAL_RUNTIME_OP(quantize,             Quantize,           0x6)
    DEFINE_NEUTRAL_RUNTIME_OP(reduce,               Reduce,             0x7)
    DEFINE_NEUTRAL_RUNTIME_OP(reduce_window2d,      ReduceWindow2D,     0x8)
    DEFINE_NEUTRAL_RUNTIME_OP(memory_copy,          MemoryCopy,         0x9)
    DEFINE_NEUTRAL_RUNTIME_OP(resize_image,         ResizeImage,        0x0A)
    DEFINE_NEUTRAL_RUNTIME_OP(softmax,              Softmax,            0x0B)
    DEFINE_NEUTRAL_RUNTIME_OP(transpose,            Transpose,          0x0C)
    DEFINE_NEUTRAL_RUNTIME_OP(strided_slice,        StridedSlice,       0x0D)
    DEFINE_NEUTRAL_RUNTIME_OP(unary,                Unary,              0x0E)
    DEFINE_NEUTRAL_RUNTIME_OP(quantized_conv2d,     QuantizedConv2D,    0x0F)
    DEFINE_NEUTRAL_RUNTIME_OP(quantized_matmul,     QuantizedMatMul,    0x10)
    DEFINE_NEUTRAL_RUNTIME_OP(quantized_binary,     QuantizedBinary,    0x11)
    DEFINE_NEUTRAL_RUNTIME_OP(table_lookup1d,       TableLookup1D,      0x12)
    DEFINE_NEUTRAL_RUNTIME_OP(conv2d_transpose,     QuantizedBinary,    0x13)
    DEFINE_NEUTRAL_RUNTIME_OP(nnil_unary_method,    NNILUnaryMethod,    0x14)
END_DEFINE_TARGET()

// CPU
BEGINE_DEFINE_TARGET(cpu)
     DEFINE_RUNTIME_OP(cpu, cpu_conv2d,                     CPUConv2D,                      0x1001)
     DEFINE_RUNTIME_OP(cpu, cpu_depthwise_conv2d,           CPUDepthwiseConv2D,             0x1002)
     DEFINE_RUNTIME_OP(cpu, cpu_reduce_window2d,            CPUReduceWindow2D,              0x1003)
     DEFINE_RUNTIME_OP(cpu, cpu_quantized_conv2d,           CPUQuantizedConv2D,             0x1004)
     DEFINE_RUNTIME_OP(cpu, cpu_quantized_depthwise_conv2d, CPUQuantizedDepthwiseConv2D,    0x1005)
END_DEFINE_TARGET()

// K210
BEGINE_DEFINE_TARGET(k210)
     DEFINE_RUNTIME_OP(k210, kpu_upload,    KPUUpload,  0x2001)
     DEFINE_RUNTIME_OP(k210, kpu_conv2d,    KPUConv2D,  0x2002)
END_DEFINE_TARGET()
