Giter VIP home page Giter VIP logo

cmix-nn's Introduction

CMix-NN: Mixed Low-Precision CNN Library for Memory-Constrained Edge Devices

Alessandro Capotondi*, Manuele Rusci**, Marco Fariselli**, Luca Benini**

*: Università di Modena e Reggio-Emilia, **: Università di Bologna

Keyworks

TinyML; Edge Computing; ARM Cortex-M; STM32H7; STM32F7; STM32L4; STM32F4

Brief

Running inference tasks at the edge of the sensing infrastructure minimizes the user's network bandwidth and improves the response time. When envisioning battery-powered IoT devices with smart capabilities, the limited energy budget puts constraints on the design of computing platforms for edge computing. Microcontroller Units (MCUs), which dominate the low-power spectrum of the computing platforms, typically feature limited memory resources (up to few MB of FLASH and below 1 MB of on-chip RAM) and lack floating-point hardware support. Hence, the deployment of high computational and memory requirements of deep learning workloads on edge devices results exceptionally challenging.

Low-precision integer arithmetic is a necessary ingredient for enabling Deep Learning inference on tiny and resource-constrained IoT edge devices. The approach described by Rusci et al. leveraged heterogeneous mixed-precision to deploy deep inference networks on tiny MCUs. The proposed technique aims at cutting the number of bits of individual weight or activation tensors below 8 bits up to fit the memory constraints and, at the same time, paying a limited accuracy drop if compared to the full-precision network. However, despite the numerous works addressing quantization on the server-side, no solution is provided for the deployment phase, especially if considering the mixed-precision sub-byte scenario. To tackle this problem, we present CMix-NN, an open-source mixed-precision library for quantized neural networks deployment on microcontroller targets. Differently, from state-of-the-art deployment solutions available for MCUs, our library supports convolutional kernels with any bit precision* in the set of 8, 4 and 2 bits, for any of the convolution operands.

Papers

Please, cite the following papers if you are going to use this library.

  • CMix-NN Accepted ISCAS20

  • Mixed-Precision Training Methodology Rusci, Manuele, Alessandro Capotondi, and Luca Benini. "Memory-driven mixed low precision quantization for enabling deep network inference on microcontrollers." arXiv preprint arXiv:1905.13082 (2019).

    @misc{rusci2019memorydriven,
        title={Memory-Driven Mixed Low Precision Quantization For Enabling Deep Network Inference On Microcontrollers},
        author={Manuele Rusci and Alessandro Capotondi and Luca Benini},
        year={2019},
        eprint={1905.13082},
        archivePrefix={arXiv},
        primaryClass={cs.LG}
    }
    

Content

The CMix-NN is a C inference library for ARM Cortex-M MCU:

  • Include: contains the public header file of CMix-NN
  • Source: contains the implementation of convolutional kernels supported by CMix-NN
  • scripts/codegen: contains the code genetator for the CMix-NN sources.

On-going activities and Expected Contributions

  • Add MobilenetV1 example (coming soon)
  • Add dense functions (coming soon)
  • Add the scripts to formart the parameters
  • Add pooling functions

Supported Layers

Function In Datatype Out Datatype Weights Datatype Quantization Flavor Filename
arm_convolve_HWC_u2_u2_u2 2-bit 2-bit 2-bit PL arm_convolve_HWC_u2_u2_u2.c
arm_convolve_HWC_u2_u2_u2_icn 2-bit 2-bit 2-bit PL+ICN arm_convolve_HWC_u2_u2_u2_icn.c
arm_convolve_HWC_u2_u2_u2_PACT_CH_icn 2-bit 2-bit 2-bit PC+ICN arm_convolve_HWC_u2_u2_u2_PACT_CH_icn.c
arm_convolve_HWC_u2_u2_u4 2-bit 2-bit 4-bit PL arm_convolve_HWC_u2_u2_u4.c
arm_convolve_HWC_u2_u2_u4_icn 2-bit 2-bit 4-bit PL+ICN arm_convolve_HWC_u2_u2_u4_icn.c
arm_convolve_HWC_u2_u2_u4_PACT_CH_icn 2-bit 2-bit 4-bit PC+ICN arm_convolve_HWC_u2_u2_u4_PACT_CH_icn.c
arm_convolve_HWC_u2_u2_u8 2-bit 2-bit 8-bit PL arm_convolve_HWC_u2_u2_u8.c
arm_convolve_HWC_u2_u2_u8_icn 2-bit 2-bit 8-bit PL+ICN arm_convolve_HWC_u2_u2_u8_icn.c
arm_convolve_HWC_u2_u2_u8_PACT_CH_icn 2-bit 2-bit 8-bit PC+ICN arm_convolve_HWC_u2_u2_u8_PACT_CH_icn.c
arm_convolve_HWC_u2_u4_u2 2-bit 4-bit 2-bit PL arm_convolve_HWC_u2_u4_u2.c
arm_convolve_HWC_u2_u4_u2_icn 2-bit 4-bit 2-bit PL+ICN arm_convolve_HWC_u2_u4_u2_icn.c
arm_convolve_HWC_u2_u4_u2_PACT_CH_icn 2-bit 4-bit 2-bit PC+ICN arm_convolve_HWC_u2_u4_u2_PACT_CH_icn.c
arm_convolve_HWC_u2_u4_u4 2-bit 4-bit 4-bit PL arm_convolve_HWC_u2_u4_u4.c
arm_convolve_HWC_u2_u4_u4_icn 2-bit 4-bit 4-bit PL+ICN arm_convolve_HWC_u2_u4_u4_icn.c
arm_convolve_HWC_u2_u4_u4_PACT_CH_icn 2-bit 4-bit 4-bit PC+ICN arm_convolve_HWC_u2_u4_u4_PACT_CH_icn.c
arm_convolve_HWC_u2_u4_u8 2-bit 4-bit 8-bit PL arm_convolve_HWC_u2_u4_u8.c
arm_convolve_HWC_u2_u4_u8_icn 2-bit 4-bit 8-bit PL+ICN arm_convolve_HWC_u2_u4_u8_icn.c
arm_convolve_HWC_u2_u4_u8_PACT_CH_icn 2-bit 4-bit 8-bit PC+ICN arm_convolve_HWC_u2_u4_u8_PACT_CH_icn.c
arm_convolve_HWC_u2_u8_u2 2-bit 8-bit 2-bit PL arm_convolve_HWC_u2_u8_u2.c
arm_convolve_HWC_u2_u8_u2_icn 2-bit 8-bit 2-bit PL+ICN arm_convolve_HWC_u2_u8_u2_icn.c
arm_convolve_HWC_u2_u8_u2_PACT_CH_icn 2-bit 8-bit 2-bit PC+ICN arm_convolve_HWC_u2_u8_u2_PACT_CH_icn.c
arm_convolve_HWC_u2_u8_u4 2-bit 8-bit 4-bit PL arm_convolve_HWC_u2_u8_u4.c
arm_convolve_HWC_u2_u8_u4_icn 2-bit 8-bit 4-bit PL+ICN arm_convolve_HWC_u2_u8_u4_icn.c
arm_convolve_HWC_u2_u8_u4_PACT_CH_icn 2-bit 8-bit 4-bit PC+ICN arm_convolve_HWC_u2_u8_u4_PACT_CH_icn.c
arm_convolve_HWC_u2_u8_u8 2-bit 8-bit 8-bit PL arm_convolve_HWC_u2_u8_u8.c
arm_convolve_HWC_u2_u8_u8_icn 2-bit 8-bit 8-bit PL+ICN arm_convolve_HWC_u2_u8_u8_icn.c
arm_convolve_HWC_u2_u8_u8_PACT_CH_icn 2-bit 8-bit 8-bit PC+ICN arm_convolve_HWC_u2_u8_u8_PACT_CH_icn.c
arm_convolve_HWC_u4_u2_u2 4-bit 2-bit 2-bit PL arm_convolve_HWC_u4_u2_u2.c
arm_convolve_HWC_u4_u2_u2_icn 4-bit 2-bit 2-bit PL+ICN arm_convolve_HWC_u4_u2_u2_icn.c
arm_convolve_HWC_u4_u2_u2_PACT_CH_icn 4-bit 2-bit 2-bit PC+ICN arm_convolve_HWC_u4_u2_u2_PACT_CH_icn.c
arm_convolve_HWC_u4_u2_u4 4-bit 2-bit 4-bit PL arm_convolve_HWC_u4_u2_u4.c
arm_convolve_HWC_u4_u2_u4_icn 4-bit 2-bit 4-bit PL+ICN arm_convolve_HWC_u4_u2_u4_icn.c
arm_convolve_HWC_u4_u2_u4_PACT_CH_icn 4-bit 2-bit 4-bit PC+ICN arm_convolve_HWC_u4_u2_u4_PACT_CH_icn.c
arm_convolve_HWC_u4_u2_u8 4-bit 2-bit 8-bit PL arm_convolve_HWC_u4_u2_u8.c
arm_convolve_HWC_u4_u2_u8_icn 4-bit 2-bit 8-bit PL+ICN arm_convolve_HWC_u4_u2_u8_icn.c
arm_convolve_HWC_u4_u2_u8_PACT_CH_icn 4-bit 2-bit 8-bit PC+ICN arm_convolve_HWC_u4_u2_u8_PACT_CH_icn.c
arm_convolve_HWC_u4_u4_u2 4-bit 4-bit 2-bit PL arm_convolve_HWC_u4_u4_u2.c
arm_convolve_HWC_u4_u4_u2_icn 4-bit 4-bit 2-bit PL+ICN arm_convolve_HWC_u4_u4_u2_icn.c
arm_convolve_HWC_u4_u4_u2_PACT_CH_icn 4-bit 4-bit 2-bit PC+ICN arm_convolve_HWC_u4_u4_u2_PACT_CH_icn.c
arm_convolve_HWC_u4_u4_u4 4-bit 4-bit 4-bit PL arm_convolve_HWC_u4_u4_u4.c
arm_convolve_HWC_u4_u4_u4_icn 4-bit 4-bit 4-bit PL+ICN arm_convolve_HWC_u4_u4_u4_icn.c
arm_convolve_HWC_u4_u4_u4_PACT_CH_icn 4-bit 4-bit 4-bit PC+ICN arm_convolve_HWC_u4_u4_u4_PACT_CH_icn.c
arm_convolve_HWC_u4_u4_u8 4-bit 4-bit 8-bit PL arm_convolve_HWC_u4_u4_u8.c
arm_convolve_HWC_u4_u4_u8_icn 4-bit 4-bit 8-bit PL+ICN arm_convolve_HWC_u4_u4_u8_icn.c
arm_convolve_HWC_u4_u4_u8_PACT_CH_icn 4-bit 4-bit 8-bit PC+ICN arm_convolve_HWC_u4_u4_u8_PACT_CH_icn.c
arm_convolve_HWC_u4_u8_u2 4-bit 8-bit 2-bit PL arm_convolve_HWC_u4_u8_u2.c
arm_convolve_HWC_u4_u8_u2_icn 4-bit 8-bit 2-bit PL+ICN arm_convolve_HWC_u4_u8_u2_icn.c
arm_convolve_HWC_u4_u8_u2_PACT_CH_icn 4-bit 8-bit 2-bit PC+ICN arm_convolve_HWC_u4_u8_u2_PACT_CH_icn.c
arm_convolve_HWC_u4_u8_u4 4-bit 8-bit 4-bit PL arm_convolve_HWC_u4_u8_u4.c
arm_convolve_HWC_u4_u8_u4_icn 4-bit 8-bit 4-bit PL+ICN arm_convolve_HWC_u4_u8_u4_icn.c
arm_convolve_HWC_u4_u8_u4_PACT_CH_icn 4-bit 8-bit 4-bit PC+ICN arm_convolve_HWC_u4_u8_u4_PACT_CH_icn.c
arm_convolve_HWC_u4_u8_u8 4-bit 8-bit 8-bit PL arm_convolve_HWC_u4_u8_u8.c
arm_convolve_HWC_u4_u8_u8_icn 4-bit 8-bit 8-bit PL+ICN arm_convolve_HWC_u4_u8_u8_icn.c
arm_convolve_HWC_u4_u8_u8_PACT_CH_icn 4-bit 8-bit 8-bit PC+ICN arm_convolve_HWC_u4_u8_u8_PACT_CH_icn.c
arm_convolve_HWC_u8_u2_u2 8-bit 2-bit 2-bit PL arm_convolve_HWC_u8_u2_u2.c
arm_convolve_HWC_u8_u2_u2_icn 8-bit 2-bit 2-bit PL+ICN arm_convolve_HWC_u8_u2_u2_icn.c
arm_convolve_HWC_u8_u2_u2_PACT_CH_icn 8-bit 2-bit 2-bit PC+ICN arm_convolve_HWC_u8_u2_u2_PACT_CH_icn.c
arm_convolve_HWC_u8_u2_u4 8-bit 2-bit 4-bit PL arm_convolve_HWC_u8_u2_u4.c
arm_convolve_HWC_u8_u2_u4_icn 8-bit 2-bit 4-bit PL+ICN arm_convolve_HWC_u8_u2_u4_icn.c
arm_convolve_HWC_u8_u2_u4_PACT_CH_icn 8-bit 2-bit 4-bit PC+ICN arm_convolve_HWC_u8_u2_u4_PACT_CH_icn.c
arm_convolve_HWC_u8_u2_u8 8-bit 2-bit 8-bit PL arm_convolve_HWC_u8_u2_u8.c
arm_convolve_HWC_u8_u2_u8_icn 8-bit 2-bit 8-bit PL+ICN arm_convolve_HWC_u8_u2_u8_icn.c
arm_convolve_HWC_u8_u2_u8_PACT_CH_icn 8-bit 2-bit 8-bit PC+ICN arm_convolve_HWC_u8_u2_u8_PACT_CH_icn.c
arm_convolve_HWC_u8_u4_u2 8-bit 4-bit 2-bit PL arm_convolve_HWC_u8_u4_u2.c
arm_convolve_HWC_u8_u4_u2_icn 8-bit 4-bit 2-bit PL+ICN arm_convolve_HWC_u8_u4_u2_icn.c
arm_convolve_HWC_u8_u4_u2_PACT_CH_icn 8-bit 4-bit 2-bit PC+ICN arm_convolve_HWC_u8_u4_u2_PACT_CH_icn.c
arm_convolve_HWC_u8_u4_u4 8-bit 4-bit 4-bit PL arm_convolve_HWC_u8_u4_u4.c
arm_convolve_HWC_u8_u4_u4_icn 8-bit 4-bit 4-bit PL+ICN arm_convolve_HWC_u8_u4_u4_icn.c
arm_convolve_HWC_u8_u4_u4_PACT_CH_icn 8-bit 4-bit 4-bit PC+ICN arm_convolve_HWC_u8_u4_u4_PACT_CH_icn.c
arm_convolve_HWC_u8_u4_u8 8-bit 4-bit 8-bit PL arm_convolve_HWC_u8_u4_u8.c
arm_convolve_HWC_u8_u4_u8_icn 8-bit 4-bit 8-bit PL+ICN arm_convolve_HWC_u8_u4_u8_icn.c
arm_convolve_HWC_u8_u4_u8_PACT_CH_icn 8-bit 4-bit 8-bit PC+ICN arm_convolve_HWC_u8_u4_u8_PACT_CH_icn.c
arm_convolve_HWC_u8_u8_u2 8-bit 8-bit 2-bit PL arm_convolve_HWC_u8_u8_u2.c
arm_convolve_HWC_u8_u8_u2_icn 8-bit 8-bit 2-bit PL+ICN arm_convolve_HWC_u8_u8_u2_icn.c
arm_convolve_HWC_u8_u8_u2_PACT_CH_icn 8-bit 8-bit 2-bit PC+ICN arm_convolve_HWC_u8_u8_u2_PACT_CH_icn.c
arm_convolve_HWC_u8_u8_u4 8-bit 8-bit 4-bit PL arm_convolve_HWC_u8_u8_u4.c
arm_convolve_HWC_u8_u8_u4_icn 8-bit 8-bit 4-bit PL+ICN arm_convolve_HWC_u8_u8_u4_icn.c
arm_convolve_HWC_u8_u8_u4_PACT_CH_icn 8-bit 8-bit 4-bit PC+ICN arm_convolve_HWC_u8_u8_u4_PACT_CH_icn.c
arm_convolve_HWC_u8_u8_u8 8-bit 8-bit 8-bit PL arm_convolve_HWC_u8_u8_u8.c
arm_convolve_HWC_u8_u8_u8_icn 8-bit 8-bit 8-bit PL+ICN arm_convolve_HWC_u8_u8_u8_icn.c
arm_convolve_HWC_u8_u8_u8_PACT_CH_icn 8-bit 8-bit 8-bit PC+ICN arm_convolve_HWC_u8_u8_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u2_u2 2-bit 2-bit 2-bit PL arm_depthwise_separable_conv_HWC_u2_u2_u2.c
arm_depthwise_separable_conv_HWC_u2_u2_u2_icn 2-bit 2-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u2_u2_icn.c
arm_depthwise_separable_conv_HWC_u2_u2_u2_PACT_CH_icn 2-bit 2-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u2_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u2_u4 2-bit 2-bit 4-bit PL arm_depthwise_separable_conv_HWC_u2_u2_u4.c
arm_depthwise_separable_conv_HWC_u2_u2_u4_icn 2-bit 2-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u2_u4_icn.c
arm_depthwise_separable_conv_HWC_u2_u2_u4_PACT_CH_icn 2-bit 2-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u2_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u2_u8 2-bit 2-bit 8-bit PL arm_depthwise_separable_conv_HWC_u2_u2_u8.c
arm_depthwise_separable_conv_HWC_u2_u2_u8_icn 2-bit 2-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u2_u8_icn.c
arm_depthwise_separable_conv_HWC_u2_u2_u8_PACT_CH_icn 2-bit 2-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u2_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u4_u2 2-bit 4-bit 2-bit PL arm_depthwise_separable_conv_HWC_u2_u4_u2.c
arm_depthwise_separable_conv_HWC_u2_u4_u2_icn 2-bit 4-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u4_u2_icn.c
arm_depthwise_separable_conv_HWC_u2_u4_u2_PACT_CH_icn 2-bit 4-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u4_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u4_u4 2-bit 4-bit 4-bit PL arm_depthwise_separable_conv_HWC_u2_u4_u4.c
arm_depthwise_separable_conv_HWC_u2_u4_u4_icn 2-bit 4-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u4_u4_icn.c
arm_depthwise_separable_conv_HWC_u2_u4_u4_PACT_CH_icn 2-bit 4-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u4_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u4_u8 2-bit 4-bit 8-bit PL arm_depthwise_separable_conv_HWC_u2_u4_u8.c
arm_depthwise_separable_conv_HWC_u2_u4_u8_icn 2-bit 4-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u4_u8_icn.c
arm_depthwise_separable_conv_HWC_u2_u4_u8_PACT_CH_icn 2-bit 4-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u4_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u8_u2 2-bit 8-bit 2-bit PL arm_depthwise_separable_conv_HWC_u2_u8_u2.c
arm_depthwise_separable_conv_HWC_u2_u8_u2_icn 2-bit 8-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u8_u2_icn.c
arm_depthwise_separable_conv_HWC_u2_u8_u2_PACT_CH_icn 2-bit 8-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u8_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u8_u4 2-bit 8-bit 4-bit PL arm_depthwise_separable_conv_HWC_u2_u8_u4.c
arm_depthwise_separable_conv_HWC_u2_u8_u4_icn 2-bit 8-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u8_u4_icn.c
arm_depthwise_separable_conv_HWC_u2_u8_u4_PACT_CH_icn 2-bit 8-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u8_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u2_u8_u8 2-bit 8-bit 8-bit PL arm_depthwise_separable_conv_HWC_u2_u8_u8.c
arm_depthwise_separable_conv_HWC_u2_u8_u8_icn 2-bit 8-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u2_u8_u8_icn.c
arm_depthwise_separable_conv_HWC_u2_u8_u8_PACT_CH_icn 2-bit 8-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u2_u8_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u2_u2 4-bit 2-bit 2-bit PL arm_depthwise_separable_conv_HWC_u4_u2_u2.c
arm_depthwise_separable_conv_HWC_u4_u2_u2_icn 4-bit 2-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u2_u2_icn.c
arm_depthwise_separable_conv_HWC_u4_u2_u2_PACT_CH_icn 4-bit 2-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u2_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u2_u4 4-bit 2-bit 4-bit PL arm_depthwise_separable_conv_HWC_u4_u2_u4.c
arm_depthwise_separable_conv_HWC_u4_u2_u4_icn 4-bit 2-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u2_u4_icn.c
arm_depthwise_separable_conv_HWC_u4_u2_u4_PACT_CH_icn 4-bit 2-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u2_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u2_u8 4-bit 2-bit 8-bit PL arm_depthwise_separable_conv_HWC_u4_u2_u8.c
arm_depthwise_separable_conv_HWC_u4_u2_u8_icn 4-bit 2-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u2_u8_icn.c
arm_depthwise_separable_conv_HWC_u4_u2_u8_PACT_CH_icn 4-bit 2-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u2_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u4_u2 4-bit 4-bit 2-bit PL arm_depthwise_separable_conv_HWC_u4_u4_u2.c
arm_depthwise_separable_conv_HWC_u4_u4_u2_icn 4-bit 4-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u4_u2_icn.c
arm_depthwise_separable_conv_HWC_u4_u4_u2_PACT_CH_icn 4-bit 4-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u4_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u4_u4 4-bit 4-bit 4-bit PL arm_depthwise_separable_conv_HWC_u4_u4_u4.c
arm_depthwise_separable_conv_HWC_u4_u4_u4_icn 4-bit 4-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u4_u4_icn.c
arm_depthwise_separable_conv_HWC_u4_u4_u4_PACT_CH_icn 4-bit 4-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u4_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u4_u8 4-bit 4-bit 8-bit PL arm_depthwise_separable_conv_HWC_u4_u4_u8.c
arm_depthwise_separable_conv_HWC_u4_u4_u8_icn 4-bit 4-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u4_u8_icn.c
arm_depthwise_separable_conv_HWC_u4_u4_u8_PACT_CH_icn 4-bit 4-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u4_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u8_u2 4-bit 8-bit 2-bit PL arm_depthwise_separable_conv_HWC_u4_u8_u2.c
arm_depthwise_separable_conv_HWC_u4_u8_u2_icn 4-bit 8-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u8_u2_icn.c
arm_depthwise_separable_conv_HWC_u4_u8_u2_PACT_CH_icn 4-bit 8-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u8_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u8_u4 4-bit 8-bit 4-bit PL arm_depthwise_separable_conv_HWC_u4_u8_u4.c
arm_depthwise_separable_conv_HWC_u4_u8_u4_icn 4-bit 8-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u8_u4_icn.c
arm_depthwise_separable_conv_HWC_u4_u8_u4_PACT_CH_icn 4-bit 8-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u8_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u4_u8_u8 4-bit 8-bit 8-bit PL arm_depthwise_separable_conv_HWC_u4_u8_u8.c
arm_depthwise_separable_conv_HWC_u4_u8_u8_icn 4-bit 8-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u4_u8_u8_icn.c
arm_depthwise_separable_conv_HWC_u4_u8_u8_PACT_CH_icn 4-bit 8-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u4_u8_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u2_u2 8-bit 2-bit 2-bit PL arm_depthwise_separable_conv_HWC_u8_u2_u2.c
arm_depthwise_separable_conv_HWC_u8_u2_u2_icn 8-bit 2-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u2_u2_icn.c
arm_depthwise_separable_conv_HWC_u8_u2_u2_PACT_CH_icn 8-bit 2-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u2_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u2_u4 8-bit 2-bit 4-bit PL arm_depthwise_separable_conv_HWC_u8_u2_u4.c
arm_depthwise_separable_conv_HWC_u8_u2_u4_icn 8-bit 2-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u2_u4_icn.c
arm_depthwise_separable_conv_HWC_u8_u2_u4_PACT_CH_icn 8-bit 2-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u2_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u2_u8 8-bit 2-bit 8-bit PL arm_depthwise_separable_conv_HWC_u8_u2_u8.c
arm_depthwise_separable_conv_HWC_u8_u2_u8_icn 8-bit 2-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u2_u8_icn.c
arm_depthwise_separable_conv_HWC_u8_u2_u8_PACT_CH_icn 8-bit 2-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u2_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u4_u2 8-bit 4-bit 2-bit PL arm_depthwise_separable_conv_HWC_u8_u4_u2.c
arm_depthwise_separable_conv_HWC_u8_u4_u2_icn 8-bit 4-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u4_u2_icn.c
arm_depthwise_separable_conv_HWC_u8_u4_u2_PACT_CH_icn 8-bit 4-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u4_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u4_u4 8-bit 4-bit 4-bit PL arm_depthwise_separable_conv_HWC_u8_u4_u4.c
arm_depthwise_separable_conv_HWC_u8_u4_u4_icn 8-bit 4-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u4_u4_icn.c
arm_depthwise_separable_conv_HWC_u8_u4_u4_PACT_CH_icn 8-bit 4-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u4_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u4_u8 8-bit 4-bit 8-bit PL arm_depthwise_separable_conv_HWC_u8_u4_u8.c
arm_depthwise_separable_conv_HWC_u8_u4_u8_icn 8-bit 4-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u4_u8_icn.c
arm_depthwise_separable_conv_HWC_u8_u4_u8_PACT_CH_icn 8-bit 4-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u4_u8_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u8_u2 8-bit 8-bit 2-bit PL arm_depthwise_separable_conv_HWC_u8_u8_u2.c
arm_depthwise_separable_conv_HWC_u8_u8_u2_icn 8-bit 8-bit 2-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u8_u2_icn.c
arm_depthwise_separable_conv_HWC_u8_u8_u2_PACT_CH_icn 8-bit 8-bit 2-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u8_u2_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u8_u4 8-bit 8-bit 4-bit PL arm_depthwise_separable_conv_HWC_u8_u8_u4.c
arm_depthwise_separable_conv_HWC_u8_u8_u4_icn 8-bit 8-bit 4-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u8_u4_icn.c
arm_depthwise_separable_conv_HWC_u8_u8_u4_PACT_CH_icn 8-bit 8-bit 4-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u8_u4_PACT_CH_icn.c
arm_depthwise_separable_conv_HWC_u8_u8_u8 8-bit 8-bit 8-bit PL arm_depthwise_separable_conv_HWC_u8_u8_u8.c
arm_depthwise_separable_conv_HWC_u8_u8_u8_icn 8-bit 8-bit 8-bit PL+ICN arm_depthwise_separable_conv_HWC_u8_u8_u8_icn.c
arm_depthwise_separable_conv_HWC_u8_u8_u8_PACT_CH_icn 8-bit 8-bit 8-bit PC+ICN arm_depthwise_separable_conv_HWC_u8_u8_u8_PACT_CH_icn.c

cmix-nn's People

Contributors

alessandrocapotondi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.