# Cain: Automatic Code Generation for Simultaneous Convolutional Kernels on Focal-plane Sensor-processors

arXiv: https://arxiv.org/abs/2101.08715 · HTML: https://mlsanity.com/paper/2101.08715/

## Key facts

- Cited by 2 papers in the map (data through 14 Oct 2026).
- Builds on 4 of its 22 references that are in the map.
- First posted on arXiv 21 Jan 2021.

## Builds on (most cited first, 4 of 4)

- [A Camera That CNNs: Towards Embedded Neural Networks on Pixel Processor Arrays](https://mlsanity.com/paper/1909.05647/) (2019)
- [BIT-VO: Visual Odometry at 300 FPS using Binary Features from the Focal Plane](https://mlsanity.com/paper/2004.11186/) (2020)
- [AnalogNet: Convolutional Neural Network Inference on Analog Focal Plane Sensor Processors](https://mlsanity.com/paper/2006.01765/) (2020)
- [Navigating the Landscape for Real-time Localisation and Mapping for Robotics and Virtual and Augmented Reality](https://mlsanity.com/paper/1808.06352/) (2018)

## Built on by (most cited first, 2 of 2)

- [PixelRNN: In-pixel Recurrent Neural Networks for End-to-end-optimized Perception with Neural Sensors](https://mlsanity.com/paper/2304.05440/) (2023)
- [Systematic Comparison of Path Planning Algorithms using PathBench](https://mlsanity.com/paper/2203.03092/) (2022)

## Abstract (arXiv)

Focal-plane Sensor-processors (FPSPs) are a camera technology that enable low power, high frame rate computation, making them suitable for edge computation. Unfortunately, these devices' limited instruction sets and registers make developing complex algorithms difficult. In this work, we present Cain - a compiler that targets SCAMP-5, a general-purpose FPSP - which generates code from multiple convolutional kernels. As an example, given the convolutional kernels for an MNIST digit recognition neural network, Cain produces code that is half as long, when compared to the other available compilers for SCAMP-5.
