Closed donlk closed 6 years ago
As the main developer of mapmap, I might be able to help here.
First, mapmap detects your system's vector width at compile time by exploiting gcc's -march=native
command. If neither SSE nor AVX1/2 is detected, it reverts back to vector width 1 (aka float/double), thus compiling and executing the mapmap part should be possible.
Second, we depend on TBB for parallelization. My experiments with OpenMP have definitely shown an advantage for TBB, so I'd like to keep it. That being said, compiling and using TBB on ARM platforms is definitely possible. Here's a quick how-to for TBB 4.4 on the Raspberry Pi (an ARM machine, AFAIK): Intel TBB on Raspberry Pi.
All in all, there should be no immediate problems with executing mapmap on ARM platforms. If you encounter any though, we'd love your feedback ;)
[BTW: A NEON path for mapmap would be absolutely awesome - unfortunately, I don't have enough time on my hands. Any help here is appreciated :)]
Thanks for your input! I'll definitely keep an eye on mapmap.
I suspect the development of this library is moving forward to dropping GCO and mrf, replacing both with mapmap. As of now (to my knowledge) only SSE/AVX support is available for the CPU backend of mapmap , which immediately locks out other major architectures, like ARM. Are there any plans to provide a NEON contribution to mapmap or add a local, pure CPU graph solver alternative?
regards, donlk