# Running NuPIC on ARM platforms – non Raspberry solution!

**URL:** <https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715>\
**Category:** NuPIC\
**Created:** [August 22, 2017, 5:33pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715 "2017-08-22T17:33:05Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![zeekayinfo3](https://avatars.discourse-cdn.com/v4/letter/z/e36b37/32.png) [@zeekayinfo3](https://discourse.numenta.org/u/zeekayinfo3)\
**Post date:** [August 22, 2017, 5:33pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/1 "2017-08-22T17:33:05Z")

</div>

I wanted to run NuPIC on an ARM platform. The first choice was Raspberry Pi. But it does not run any 64 bit OS. So until either the 32 bit version of NuPIC is supported or a 64bit-OS runs on Raspberry Pi, I cannot do so. So I did some research to find a solution for my needs.

Enter [Dragon Board 410c]. It is compatible to Raspberry Pi in terms of processors (ARM Cortex-A53 Quad-core up to 1.2 GHz per core) and memory (1GB LPDDR3 SDRAM @ 533MHz).

I run [64 bit Debian (aarch64)] on it.

I made a few changes to CMakeLists.txt (such as adding –Wno-error=terminate) and source code (such as replacing armv7l with aarch64).

Because there were no errors in builds for Core and NuPIC, I tested it by pytest /tests/unit. I did not see any obvious failures. The last line is

=== 709 passed, 17 skipped, 8 xfailed, 5 pytest-warnings in 1950.21 seconds ====

Does this mean it worked?

---

<div class="post-metadata">

**Author:** ![rhyolight](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/rhyolight/32/3922_2.png) [@rhyolight](https://discourse.numenta.org/u/rhyolight)\
**Post date:** [August 22, 2017, 6:34pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/2 "2017-08-22T18:34:35Z")

</div>

It did work.

> [@zeekayinfo3](#):
>
> === 709 passed, 17 skipped, 8 xfailed, 5 pytest-warnings in 1950.21 seconds ====

The `8 xfailed` means “expected failure”. There are a few tests that do that.

> [@zeekayinfo3](#):
>
> I tested it by pytest /tests/unit

We run tests in our CI environments with this script instead:

```
python scripts/run_nupic_tests.py -u

```

This will give you a better visual indication of what is running and passing. And it will definitely return a non-zero exit status if there was an unexpected failure.

---

<div class="post-metadata">

**Author:** ![breznak](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/breznak/32/1935_2.png) [@breznak](https://discourse.numenta.org/u/breznak)\
**Post date:** [January 31, 2019, 3:13pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/3 "2019-01-31T15:13:55Z")

</div>

Thanks for the writeup, @zeekayinfo3 !  
(and sorry for thread-digging).

Are you still using HTM on ARM?  
I’m interested in it for the fact that ARM now runs on so many embedded devices and mobiles, which is great platform for IoT and HTM.

I’m looking for some advice in CI for ARM, ideally integration with Github. So far I found Travis can run docker which will run some ARM OS which will compile HTM. But that’s quite a lot of embeddings. Is there some other, free ARM CI for Github? [https://github.com/htm-community/nupic.cpp/issues/131](https://github.com/htm-community/nupic.cpp/issues/131)

If you needed to make some code changes, and are willing to bring them up to our repo, it’ll be a great contribution and extending to the last platform to complete the mainstream (OSX, Win, Linux, ARM/Mobile) (I’m mixing OS and HW platforms, I know)

---

<div class="post-metadata">

**Author:** ![zeekayinfo3](https://avatars.discourse-cdn.com/v4/letter/z/e36b37/32.png) [@zeekayinfo3](https://discourse.numenta.org/u/zeekayinfo3)\
**Post date:** [February 1, 2019, 5:18am UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/4 "2019-02-01T05:18:30Z")

</div>

Since I posted this, I have moved away from HTM. Right now, I have a big project that will occupy me until after this summer. If you can wait until then, I might go back and work on this more. However, it has been long since I touched this subject along with any computing environment necessary for this. I suspect it will take me some time before I can resume to the point I left off. So, the answer is that it is good to know someone showed some interest in what I tried to do over a year ago. Stay tuned.

P.S. My problem was with the 32 bit architecture. As long as you run on the 64 bit platform, it worked fine with ARM OS.

---

<div class="post-metadata">

**Author:** ![Paul\_Lamb](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/paul_lamb/32/2725_2.png) [@Paul\_Lamb](https://discourse.numenta.org/u/Paul_Lamb)\
**Post date:** [February 1, 2019, 12:00pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/5 "2019-02-01T12:00:03Z")

</div>

Note that the 32 bit compatibility problem with NuPIC is not specific to ARM (x86 has the same issues).

---

<div class="post-metadata">

**Author:** ![breznak](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/breznak/32/1935_2.png) [@breznak](https://discourse.numenta.org/u/breznak)\
**Post date:** [February 1, 2019, 12:34pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/6 "2019-02-01T12:34:22Z")

</div>

> [@zeekayinfo3](#):
>
> So, the answer is that it is good to know someone showed some interest in what I tried to do over a year ago. Stay tuned.
> 
> P.S. My problem was with the 32 bit architecture. As long as you run on the 64 bit platform, it worked fine with ARM OS.

Thanks for the reply! I’ll try ARM64 first, so that should go well.  
Still looking for some easy way to setup (free) CI.

Good luck with your work and do come back to us when you have time.

---

<div class="post-metadata">

**Author:** ![breznak](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/breznak/32/1935_2.png) [@breznak](https://discourse.numenta.org/u/breznak)\
**Post date:** [February 1, 2019, 12:36pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/7 "2019-02-01T12:36:01Z")

</div>

> [@Paul\_Lamb](#):
>
> Note that the 32 bit compatibility problem with NuPIC

Are more people still interested in 32bit builds?  
If you are, could you out of curiosity try our repo? We ditched all ASM and lots of platform code replaced by standard c++ libs, so I wonder if it would just work ™ even if not tested/supported nowadays.

---

<div class="post-metadata">

**Author:** ![Paul\_Lamb](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/paul_lamb/32/2725_2.png) [@Paul\_Lamb](https://discourse.numenta.org/u/Paul_Lamb)\
**Post date:** [February 1, 2019, 1:09pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/8 "2019-02-01T13:09:39Z")

</div>

> [@breznak](#):
>
> could you out of curiosity try our repo?

Yes, planning to put some effort into supporting the community fork. Been a little distracted with non-HTM projects recently. 🙂

---

<div class="post-metadata">

**Author:** ![breznak](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/breznak/32/1935_2.png) [@breznak](https://discourse.numenta.org/u/breznak)\
**Post date:** [February 1, 2019, 1:28pm UTC](https://discourse.numenta.org/t/running-nupic-on-arm-platforms-non-raspberry-solution/2715/9 "2019-02-01T13:28:14Z")

</div>

Opened

> <https://github.com/htm-community/nupic.cpp/issues/241>

  
for tracking this
