| // Copyright 2019 Google LLC |
| // |
| // This source code is licensed under the BSD-style license found in the |
| // LICENSE file in the root directory of this source tree. |
| |
| #include <math.h> |
| #include <stdlib.h> |
| |
| #include <xnnpack.h> |
| |
| |
| // A dummy program that calls every Operators API function in XNNPACK, for size estimation. |
| int main(int argc, char** argv) { |
| int function_idx = 0; |
| if (argc >= 2) { |
| function_idx = atoi(argv[1]); |
| } |
| |
| xnn_initialize(NULL /* allocator */); |
| |
| xnn_operator_t op = NULL; |
| switch (function_idx) { |
| case -1: |
| xnn_delete_operator(op); |
| break; |
| case 0: |
| xnn_run_operator(op, NULL); |
| break; |
| case 1: |
| xnn_create_add_nd_f32( |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 2: |
| xnn_setup_add_nd_f32( |
| op, 0, NULL, 0, NULL, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 3: |
| xnn_create_argmax_pooling2d_nhwc_f32( |
| 0, 0, 0, 0, |
| 0, 0, |
| 0, 0, 0, |
| 0, &op); |
| break; |
| case 4: |
| xnn_setup_argmax_pooling2d_nhwc_f32( |
| op, 0, 0, 0, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 5: |
| xnn_create_average_pooling2d_nhwc_f32( |
| 0, 0, 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, 0, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 6: |
| xnn_setup_average_pooling2d_nhwc_f32( |
| op, 0, 0, 0, |
| NULL, NULL, NULL); |
| break; |
| case 7: |
| xnn_create_clamp_nc_f32( |
| 0, 0, 0, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 8: |
| xnn_setup_clamp_nc_f32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 9: |
| xnn_create_convolution2d_nhwc_f32( |
| 0, 0, 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, 0, 0, 0, |
| NULL, NULL, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 10: |
| xnn_setup_convolution2d_nhwc_f32( |
| op, 0, 0, 0, |
| NULL, NULL, NULL); |
| break; |
| case 11: |
| xnn_create_deconvolution2d_nhwc_f32( |
| 0, 0, 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, 0, 0, 0, |
| NULL, NULL, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 12: |
| xnn_setup_deconvolution2d_nhwc_f32( |
| op, 0, 0, 0, 0, 0, |
| NULL, NULL, NULL); |
| break; |
| case 13: |
| xnn_create_divide_nd_f32( |
| 0.0f, 0.0f, 0, &op); |
| break; |
| case 14: |
| xnn_setup_divide_nd_f32( |
| op, 0, NULL, 0, NULL, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 15: |
| xnn_create_fully_connected_nc_f32( |
| 0, 0, 0, 0, |
| NULL, NULL, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 16: |
| xnn_setup_fully_connected_nc_f32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 17: |
| xnn_create_global_average_pooling_nwc_f32( |
| 0, 0, 0, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 18: |
| xnn_setup_global_average_pooling_nwc_f32( |
| op, 0, 0, |
| NULL, NULL, NULL); |
| break; |
| case 19: |
| xnn_create_hardswish_nc_f32( |
| 0, 0, 0, |
| 0, &op); |
| break; |
| case 20: |
| xnn_setup_hardswish_nc_f32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 21: |
| xnn_create_max_pooling2d_nhwc_f32( |
| 0, 0, 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, |
| 0, 0, 0, |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 22: |
| xnn_setup_max_pooling2d_nhwc_f32( |
| op, 0, 0, 0, |
| NULL, NULL, NULL); |
| break; |
| case 23: |
| xnn_create_maximum_nd_f32( |
| 0, &op); |
| break; |
| case 24: |
| xnn_setup_maximum_nd_f32( |
| op, 0, NULL, 0, NULL, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 25: |
| xnn_create_minimum_nd_f32( |
| 0, &op); |
| break; |
| case 26: |
| xnn_setup_minimum_nd_f32( |
| op, 0, NULL, 0, NULL, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 27: |
| xnn_create_multiply_nd_f32( |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 28: |
| xnn_setup_multiply_nd_f32( |
| op, 0, NULL, 0, NULL, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 29: |
| xnn_create_prelu_nc_f32( |
| 0, 0, 0, |
| NULL, 0, &op); |
| break; |
| case 30: |
| xnn_setup_prelu_nc_f32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 31: |
| xnn_create_resize_bilinear2d_nhwc_f32( |
| 0, 0, 0, |
| 0, &op); |
| break; |
| case 32: |
| xnn_setup_resize_bilinear2d_nhwc_f32( |
| op, 0, 0, 0, 0, 0, |
| NULL, NULL, NULL); |
| break; |
| case 33: |
| xnn_create_sigmoid_nc_f32( |
| 0, 0, 0, |
| 0, &op); |
| break; |
| case 34: |
| xnn_setup_sigmoid_nc_f32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 35: |
| xnn_create_softmax_nc_f32( |
| 0, 0, 0, |
| 0, &op); |
| break; |
| case 36: |
| xnn_setup_softmax_nc_f32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 37: |
| xnn_create_subtract_nd_f32( |
| 0.0f, 0.0f, |
| 0, &op); |
| break; |
| case 38: |
| xnn_setup_subtract_nd_f32( |
| op, 0, NULL, 0, NULL, |
| NULL, NULL, NULL, NULL); |
| break; |
| case 39: |
| xnn_create_channel_shuffle_nc_x32( |
| 0, 0, 0, 0, |
| 0, &op); |
| break; |
| case 40: |
| xnn_setup_channel_shuffle_nc_x32( |
| op, 0, |
| NULL, NULL, NULL); |
| break; |
| case 41: |
| xnn_create_unpooling2d_nhwc_x32( |
| 0, 0, 0, 0, |
| 0, 0, |
| 0, 0, 0, |
| 0, &op); |
| break; |
| case 42: |
| xnn_setup_unpooling2d_nhwc_x32( |
| op, 0, 0, 0, |
| NULL, NULL, NULL, NULL); |
| break; |
| } |
| |
| xnn_deinitialize(); |
| } |