ibarrond / Pyfhel

PYthon For Homomorphic Encryption Libraries, perform encrypted computations such as sum, mult, scalar product or matrix multiplication in Python, with NumPy compatibility. Uses SEAL/PALISADE as backends, implemented using Cython.
https://pyfhel.readthedocs.io/
Apache License 2.0
487 stars 78 forks source link

Any chance to have this on arm? #68

Closed AlbertoPimpo closed 3 years ago

AlbertoPimpo commented 4 years ago

I tried to install this library on rpi 3b+ and it didn't compile because it lacks of x86intrin.h . There is a way in order to have it compiling successfully on arm? Maybe using a different backend of the library?

ibarrond commented 4 years ago

I have absolutely no idea. I'm afraid I don't have much expertise with compilation on ARM devices. Nonetheless, I believe PALISADE (nice open source community) could be a better candidate than SEAL (owned by Microsoft) to compile on ARM properly.

The issue is that, for the time being, I haven't progressed much with PALISADE backend because I didn't have a strong motivation to do so. Could you try compiling the original PALISADE on your target Raspberry Pi? If it works, it could be a good motivation.

AlbertoPimpo commented 4 years ago

I checked the documentation of PALISADE and it officially support Nvidia Xavier that is an arm Linux board like raspberry pi using a personalized version of Ubuntu. It is also tested for each commit by their CI, so it should work. In next days I will try to compile in raspberry pi and I will know you if it works.

ibarrond commented 3 years ago

Looks like somebody cracked it! #70

AlbertoPimpo commented 3 years ago

Great, I didn't succeed in compiling this on raspberry, now it looks like it can work

ibarrond commented 3 years ago

I haven't yet merged #70. Could you try it out and tell me if it works for you?

AlbertoPimpo commented 3 years ago

I haven't yet merged #70. Could you try it out and tell me if it works for you?

Yes, I'll try.

AlbertoPimpo commented 3 years ago

@ibarrond I made a new pr (#72 ) starting from #70 in order to update dockerfile but it still doesn't work for me.