[PYTHON] Accelerate Deep Learning on Raspberry Pi 4 CPU

We are a group of volunteers aiming to start up with ** embedded SW optimization technology ** as the core competence to bring out the HW performance of ** multi-core CPU ** and ** SIMD architecture **.

I am challenging how much Deep Learning can be accelerated with only ** CPU ** of Raspberry Pi 3/4.

In the past, I was targeting frameworks such as Chainer and darknet, but now I am trying to speed up the ONNX runtime.

The results at this time are as follows. compare.png

Originally, Microsoft and Facebook are promoting the project, so it is difficult to speed up several times, but I managed to double the performance by tuning im2col, gem, Activation function, etc.

In addition, we have released demo videos of various models. Youtube channel

Our commitment points

1. Perform Deep Learning using only the CPU of the Raspberry Pi
2. Using 32-bit version Rasbian
Not yet compatible with 64-bit Raspbian ...
3. Use the existing model as it is
We do not reduce the weight such as quantization / pruning / distillation (cannot be done in the first place ...)
4. Do not change the calculation accuracy as much as possible

Acceleration approach

The acceleration approach is common as shown below.

a. Code optimization
b. Multi-core parallelization
c. SIMD vectorization
d. Software Pipelining
e. Memory efficiency

I think that it is a characteristic of us that there is no other attitude to squeeze a general item like ** a little faster ** a little faster ** while taking a profile.

At the end of the article

This time, I have only introduced the results, but I would like to summarize the technical data for each item as a memorandum and publish it as needed.

Recommended Posts

Accelerate Deep Learning on Raspberry Pi 4 CPU
pigpio on Raspberry pi
Cython on Raspberry Pi
Display CPU temperature every 5 seconds on Raspberry Pi 4
Introduced pyenv on Raspberry Pi
Use NeoPixel on Raspberry Pi
Install OpenCV4 on Raspberry Pi 3
Install TensorFlow 1.15.0 on Raspberry Pi
Testing uart communication on Raspberry Pi
MQTT on Raspberry Pi and Mac
raspberry pi 4 centos7 install on docker
Install ghoto2 on Raspberry Pi (memo)
Try using ArUco on Raspberry Pi
OpenCV installation procedure on Raspberry Pi
Power on / off Raspberry pi on Arduino
Detect switch status on Raspberry Pi 3
Install OpenMedia Vault 5 on Raspberry Pi 4
L Chika on Raspberry Pi C #
Build wxPython on Ubuntu 20.04 on raspberry pi 4
Deep Learning
"Honwaka Notification Lamp" on Raspberry Pi Part 2
Detect "brightness" using python on Raspberry Pi 3!
USB boot on Raspberry Pi 4 Model B
Adafruit Python BluefruitLE works on Raspberry Pi.
Set swap space on Ubuntu on Raspberry Pi
Programming normally with Node-RED programming on Raspberry Pi 3
Use the Grove sensor on the Raspberry Pi
Install 64-bit OS (bate) on Raspberry Pi
Install docker-compose on 64-bit Raspberry Pi OS
Run servomotor on Raspberry Pi 3 using python
"Honwaka Notification Lamp" on Raspberry Pi Part 3
Working with sensors on Mathematica on Raspberry Pi
Build OpenCV-Python environment on Raspberry Pi B +
Deep Learning technology go leela on linux
Detect temperature using python on Raspberry Pi 3!
Mount Windows shared folder on Raspberry Pi
Matrix multiplication on Raspberry Pi GPU (Part 2)
How to install NumPy on Raspberry Pi
I installed OpenCV-Python on my Raspberry Pi
Summary Note on Deep Learning -4.3 Gradient Method-
Working with GPS on Raspberry Pi 3 Python
How to install Deep Learning framework Caffe on Mac in CPU mode
Why detectMultiScale () is slow on Raspberry Pi B +
Good book "Deep Learning from scratch" on GitHub
Detect slide switches using python on Raspberry Pi 3!
Try using a QR code on a Raspberry Pi
Deep Learning Memorandum
Detect magnet switches using python on Raspberry Pi 3!
Raspberry Pi backup
Enjoy electronic work with GPIO on Raspberry Pi
Power on / off your PC with raspberry pi
Python Deep Learning
Use Grove-Temperature & Humidity Sensor (DHT11) on Raspberry Pi
Get CPU information of Raspberry Pi with Python
Make DHT11 available on Raspberry Pi + python (memo)
Beginning cross-compilation for Raspberry Pi Zero on Ubuntu
Sound the buzzer using python on Raspberry Pi 3!
Deep learning × Python
Play with your Ubuntu desktop on your Raspberry Pi 4
Introduced Ceph on Kubernetes on Raspberry Pi 4B (ARM64)
Connect to MySQL with Python on Raspberry Pi