RPI
Updates on my GSoC project: week 26 of August
I have spent a great summer this year. I have been longing to participate in GSoC for a long time. I never thought I would have the chance to get in or even be accepted. It was extraordinary to have the opportunity to contribute to mlpack. During these three months of summer, I have adapted mlpack for low resource devices and the overall results were very good, even great. We have achieved a major refactoring in the entire codebase in mlpack, resulting in the following: More …
Updates on my GSoC project: week 17 of August
I am happy to announce that I have finished the transition from Boost serialization to cereal and my pull request has entered the review process. The review process will take up to two weeks to finish and have cereal get merged in mlpack master. During the last weeks, I have added a version system for all serialize functions in order to support versioning in mlpack classes. I have also fixed errors in the pointers wrappers and the array_wrapper. More …
Updates on my GSoC project: week 3 of August
I am starting my third month of GSoC and I have been enjoying this project very much. The second part of this project is to replace boost serialization by Cereal. I am doing this replacement in this pull request. One major difference between boost serialization and cereal is that cereal does not support the serialization of raw pointers. This is why we have to replace all raw pointers in mlpack with smart pointers. More …
Updates on my GSoC project: week 13 of July
It has been a while since I did not update my GSoC blog. During that time, I have made a significant progress on my project. Indeed, I am happy to announce that my pull request which can be found here has been merged. We have successfully replaced boost program options by CLI11. The header-only CLI11 has been also included directly into the source code of mlpack as a one header file. More …
Updates on my GSoC project: week 15 of June
From the beginning of the project, we were adding support for cross-compilation for raspberry pi as seen here. Also I have reduced the binary size and continued to add all my work in the same pull request. We have noticed that the original pull request is hard to review since it contains several commits that are not related to one another. So during the last week, I have cherry-picked commits from my original pull request into two different pull requests. More …
Updates on my GSoC project: week 1 and 8 of June
We have noticed last week that boost serialization is adding a considerable size footprint on the binary. Therefore, I have replaced boost serialization by cereal. Cereal has several advantages over boost serialization such as being a header library with no requirement for linking. However, The major advantage is the API compatibility with boost serialization, thus making the replacement easier and less time consuming. I have also replaced boost program option with CLI11 for the same propose of boost serialization. More …
Updates on my GSoC project: week 25 May
Last week, I was able to put mlpack_knn on Raspberry Pi. The binary size was about 4.7 MB. The size footprint is still considerable for embedded systems, especially if you have dozens of megabytes for the entire firmware. In order to reduce the size of the binaries, I had to look inside these elf files using bloaty size profiler tools. The profiler (can be found here) i) is simple to use, ii) provides size footprint for each symbols used inside these binaries. More …
Updates on my GSoC project: week 18 May
Since last week, I have started working on GSoC project. The objective is to put mlpack code on any device with very low resources. I have considered Raspberry pi as a starting point since I have one running as a home server. Raspberry pi’s (RPI) uses arm processors which is different from intel, amd processors which uses (x86_64). Today x86_64 is the main-stream architecture that is found on my laptop on any desktop computer. More …