[mlpack] GSoC - mlpack on RPi and other resource-constrained devices

Ryan Curtin ryan at ratml.org
Thu Mar 12 19:27:16 EDT 2020


On Tue, Mar 10, 2020 at 03:06:03PM -0300, Emanuel Lima wrote:
> Hello! My name is Emanuel Lima and I am an undergraduate student from the
> University of São Paulo (USP), in Brazil. I am very interested in the GSoC
> project "mlpack on RPi and other resource-constrained devices". Apart from
> deploying models to Raspberry Pis and old computers (as the description
> states), I would very much like to work on top of Labrador. That is an open
> hardware Single Board Computer totally developed at my university, with the
> help of people like John Maddog Hall:
> https://caninosloucos.org/en/labrador-en/
> I have one of these boards available because I am the cofounder of the
> Physics Institute Hackerspace at USP, and we received two of them to study.
> We also have some old Raspberries and Arduinos.
> I think this would be an amazing opportunity for the brazilian ML and IoT
> communities.
> I have some experience on C++, Python, Linux and compilers (LLVM in
> particular).
> 
> I hope this makes sense and that I would be a good fit for the project. If
> so, what would be the next steps?

Hey Emanuel,

Thanks for getting in touch and sorry for the slightly slow response.
Labrador seems very cool; it seems like making mlpack work on the
Labrador might not be very difficult since the Labrador seems to be
basically a fully functional ARM system with 2GB of RAM.  Honestly that
might even compile mlpack successfully as-is on the device. :)

However, I don't mean that making Labrador work with mlpack is a bad
idea for a GSoC project.  I think that it could be a really compelling
part of a project, and it would be a nice advertisement for both
Labrador and mlpack.  I think that it could be used as a launching point
for smaller devices like the Raspberry Pis and Arduinos that you
mentioned.

I think that for a student to be effective on this project they'd need
to have a good background with Linux systems and using compilers, and
C++ knowledge would also be necessary.  Especially knowledge about
linking and how compiled programs work would be useful, since getting
mlpack programs to run on really small devices will probably mean
stripping every unnecessary function out of a compiled program or
library.

If you do put together a proposal, note that my project description is
pretty ambiguous and leaves a lot of room.  So you are welcome to drive
it in a different direction.  Some additional thoughts:

 * I really would like to get mlpack running on that 386, and we could
   make a pretty cool Youtube video out of it.  So hopefully a proposal
   might touch on making this work too, or at least setting up the
   groundwork for it. :)

 * "Edge computing" is a really hot topic for machine learning right
   now.  A lot of papers at the SysML conference this year and various
   ICML and NeurIPS workshops are concerned with machine learning on
   'edge' devices.  There are even efforts like EdgeML:
   https://github.com/microsoft/EdgeML and Arm NN:
   https://github.com/ARM-software/armnn
   If you were interested, it might be worth thinking about how we could
   bring something new to the table with mlpack, and we might be able to
   then turn that into a conference or workshop publication.  In your
   case it may even be possible to collaborate with the Labrador team
   to find some cool thing that could be done.

Anyway, I hope that this helps.  Please let me know if I can clarify
anything.  If you're looking to get involved in contributing to mlpack
(probably a good idea to get familiar with it), take a look at
https://mlpack.org/involved.html and https://mlpack.org/gsoc.html .

Thanks!

Ryan

-- 
Ryan Curtin    | "Long live the new flesh."
ryan at ratml.org |   - Max


More information about the mlpack mailing list