Mac M1芯片同态加密库的安装(TFHE问题)

前些日子买了Mac电脑,尝试在mac上安装之前在Ubuntu上的同态加密库,经试验HElib、SEAL、Palisade等可以完美安装。
但是TFHE的安装按照原来的步骤出现了很多问题!

clang: error: the clang compiler does not support ‘-march=native’

解决办法:
将-march=native改为-mcpu=apple-m1

但是出现了类似于下面的错误

/tfhe/src/libtfhe/fft_processors/nayuki/fft-x8664-avx.s:108:10: error: invalid operandvmovupd %ymm0, (%rdi,%rcx,8)/tfhe/src/libtfhe/fft_processors/nayuki/fft-x8664-avx.s:108:10: error: invalid operandvmovupd %ymm0, (%rdi,%rcx,8)/tfhe/src/libtfhe/fft_processors/nayuki/fft-x8664-avx.s:110:11: error: unknown token in expressionaddq $4, %rcx
........................../Users/wbq/Desktop/\345\220\214\346\200\201\345\212\240\345\257\206\345\272\223/tfhe/src/libtfhe/fft_processors/nayuki/fft-x8664-avx.s:189:7: error: invalid operandpopq %r10^
/Users/wbq/Desktop/\345\220\214\346\200\201\345\212\240\345\257\206\345\272\223/tfhe/src/libtfhe/fft_processors/nayuki/fft-x8664-avx.s:190:2: error: unrecognized instruction mnemonic, did you mean: eret, ret?retq^
make[2]: *** [libtfhe/fft_processors/nayuki/CMakeFiles/tfhe-fft-nayuki-avx.dir/fft-x8664-avx.s.o] Error 1
make[1]: *** [libtfhe/fft_processors/nayuki/CMakeFiles/tfhe-fft-nayuki-avx.dir/all] Error 2
make: *** [all] Error 2

经过一波调研…
Mac M1与AVX

  • Rosetta translates all x86_64 instructions, but it doesn’t
    support the execution of some newer instruction sets and
    processor features, such as AVX, AVX2, and AVX512 vector
    instructions.

Intel芯片的Mac是完全没有问题的,应该是M1芯片与FFT加速用到的Intel指令集不匹配
安装FFTW

重新配置吧

cmake ../src -DENABLE_TESTS=on -DENABLE_FFTW=on   -DENABLE_NAYUKI_AVX=OFF -DENABLE_NAYUKI_PORTABLE=OFF -DENABLE_SPQLIOS_AVX=OFF -DENABLE_SPQLIOS_FMA=OFF
[  1%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/autogenerated.cpp.o
[  3%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwebootstrappingkey.cpp.o
[  4%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwe.cpp.o
[  6%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwe-functions.cpp.o
[  7%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwekey.cpp.o
[  9%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwekeyswitch.cpp.o
[ 10%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lweparams.cpp.o
[ 12%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwesamples.cpp.o
[ 13%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/multiplication.cpp.o
[ 15%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/numeric-functions.cpp.o
[ 16%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/polynomials.cpp.o
[ 18%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tgsw.cpp.o
[ 19%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tlwe.cpp.o
[ 21%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tlwe-functions.cpp.o
[ 22%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tgsw-functions.cpp.o
[ 24%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tlwe-fft-operations.cpp.o
[ 25%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tgsw-fft-operations.cpp.o
[ 27%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/toruspolynomial-functions.cpp.o
[ 28%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/boot-gates.cpp.o
[ 30%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwe-keyswitch-functions.cpp.o
[ 31%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwe-bootstrapping-functions.cpp.o
[ 33%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/lwe-bootstrapping-functions-fft.cpp.o
[ 34%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tfhe_io.cpp.o
[ 36%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tfhe_generic_streams.cpp.o
[ 37%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tfhe_garbage_collector.cpp.o
[ 39%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tfhe_gate_bootstrapping.cpp.o
[ 40%] Building CXX object libtfhe/CMakeFiles/tfhe-core.dir/tfhe_gate_bootstrapping_structures.cpp.o
[ 40%] Built target tfhe-core
[ 42%] Building CXX object libtfhe/fft_processors/fftw/CMakeFiles/tfhe-fft-fftw.dir/fft_processor_fftw.cpp.o
[ 43%] Building CXX object libtfhe/fft_processors/fftw/CMakeFiles/tfhe-fft-fftw.dir/lagrangehalfc_impl.cpp.o
[ 43%] Built target tfhe-fft-fftw
[ 45%] Linking CXX shared library libtfhe-fftw.dylib
[ 45%] Built target tfhe-fftw
[ 46%] Building CXX object test/googletest/googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 48%] Linking CXX static library libgtest.a
[ 48%] Built target gtest
[ 50%] Building CXX object test/googletest/googlemock/gtest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[ 51%] Linking CXX static library libgtest_main.a
[ 51%] Built target gtest_main
[ 53%] Building CXX object test/CMakeFiles/unittests-fftw.dir/arithmetic_test.cpp.o
[ 54%] Building CXX object test/CMakeFiles/unittests-fftw.dir/lwe_test.cpp.o
[ 56%] Building CXX object test/CMakeFiles/unittests-fftw.dir/polynomial_test.cpp.o
[ 57%] Building CXX object test/CMakeFiles/unittests-fftw.dir/tlwe_test.cpp.o
[ 59%] Building CXX object test/CMakeFiles/unittests-fftw.dir/tgsw_test.cpp.o
[ 60%] Building CXX object test/CMakeFiles/unittests-fftw.dir/tlwe_fft_test.cpp.o
[ 62%] Building CXX object test/CMakeFiles/unittests-fftw.dir/tgsw_fft_test.cpp.o
[ 63%] Building CXX object test/CMakeFiles/unittests-fftw.dir/lwekeyswitch_test.cpp.o
[ 65%] Building CXX object test/CMakeFiles/unittests-fftw.dir/bootstrapping_test.cpp.o
[ 66%] Building CXX object test/CMakeFiles/unittests-fftw.dir/bootstrapping_test_fft.cpp.o
[ 68%] Building CXX object test/CMakeFiles/unittests-fftw.dir/io_test.cpp.o
[ 69%] Building CXX object test/CMakeFiles/unittests-fftw.dir/lagrangehalfc_test.cpp.o
[ 71%] Building CXX object test/CMakeFiles/unittests-fftw.dir/boots_gates_test.cpp.o
[ 72%] Linking CXX executable unittests-fftw
[ 72%] Built target unittests-fftw
[ 74%] Building CXX object test/CMakeFiles/test-bootstrapping-fft-fftw.dir/test-bootstrapping-fft.cpp.o
[ 75%] Linking CXX executable test-bootstrapping-fft-fftw
[ 75%] Built target test-bootstrapping-fft-fftw
[ 77%] Building CXX object test/CMakeFiles/test-decomp-tgsw-fftw.dir/test-decomp-tgsw.cpp.o
[ 78%] Linking CXX executable test-decomp-tgsw-fftw
[ 78%] Built target test-decomp-tgsw-fftw
[ 80%] Building CXX object test/CMakeFiles/test-lwe-fftw.dir/test-lwe.cpp.o
[ 81%] Linking CXX executable test-lwe-fftw
[ 81%] Built target test-lwe-fftw
[ 83%] Building CXX object test/CMakeFiles/test-multiplication-fftw.dir/test-multiplication.cpp.o
[ 84%] Linking CXX executable test-multiplication-fftw
[ 84%] Built target test-multiplication-fftw
[ 86%] Building CXX object test/CMakeFiles/test-tlwe-fftw.dir/test-tlwe.cpp.o
[ 87%] Linking CXX executable test-tlwe-fftw
[ 87%] Built target test-tlwe-fftw
[ 89%] Building CXX object test/CMakeFiles/test-gate-bootstrapping-fftw.dir/test-gate-bootstrapping.cpp.o
[ 90%] Linking CXX executable test-gate-bootstrapping-fftw
[ 90%] Built target test-gate-bootstrapping-fftw
[ 92%] Building CXX object test/CMakeFiles/test-addition-boot-fftw.dir/test-addition-boot.cpp.o
[ 93%] Linking CXX executable test-addition-boot-fftw
[ 93%] Built target test-addition-boot-fftw
[ 95%] Building CXX object test/CMakeFiles/test-long-run-fftw.dir/test-long-run.cpp.o
[ 96%] Linking CXX executable test-long-run-fftw
[ 96%] Built target test-long-run-fftw
[ 98%] Building C object test/CMakeFiles/test-c-binding-fftw.dir/test-c-binding.c.o
[100%] Linking C executable test-c-binding-fftw
[100%] Built target test-c-binding-fftw

反正利用FFTW可以了

build/ test % ls
CMakeFiles                      test-decomp-tgsw-fftw
CTestTestfile.cmake             test-gate-bootstrapping-fftw
Makefile                        test-long-run-fftw
cmake_install.cmake             test-lwe-fftw
googletest                      test-multiplication-fftw
test-addition-boot-fftw         test-tlwe-fftw
test-bootstrapping-fft-fftw     unittests-fftw
test-c-binding-fftw

Mac M1芯片同态加密库的安装(TFHE问题)相关推荐

  1. 教你在M1芯片的imac一体机上安装PS2021 附教程和方法适用于所有Mac

    提示:文章转载自互联网 文章目录 前言 一.正确安装流程 二.注意事项 总结 前言 苹果在21年4月发布了搭载M1芯片的一体机产品:imac 2021 惊艳的机生设计和超薄的厚度实在是太香了, 关键是 ...

  2. 同态加密库Seal库的安装(win11+VS2022)

    先说一下,seal库是微软开发的同态加密库,目前支持三种算法bfv,bgv和ckks.提供的语言版本是C艹和C#. 工具准备 这是github上提供的要求. 要准备的东西有 vs2022(社区版就行了 ...

  3. mac m1芯片 安装 nvm 踩坑日记

    nvm 是什么? nvm 可以 管理 本地 node 版本,多个项目 使用 多个 不同版本的 node,完全是合理的存在,总不能用什么版本下载什么版本,不用的在卸载吧. 那么 nvm 就是一个很好用的 ...

  4. MAC M1芯片可下载的安卓模拟器Android Emulator

    记录一下MAC M1芯片可下载的Android模拟器Android Emulator安装使用过程 最近在做h5+的移动端APP,使用HBuilderX打包运行的,用自己的安卓手机突然检测不到设备,就想 ...

  5. bfv同态加密_微软同态加密库SEAL使用

    近期刚接触SEAL库,本文记录该库的使用方法,具体的同态加密的原理不过多介绍,若有错误,请各位大佬批评指正. SEAL(Simple Encrypted Arithmetic Library)是微软开 ...

  6. 【KAWAKO】deepface-在基于m1芯片的macbook上进行安装

    目录 前言 本机配置 安装miniforge tips 安装tensorflow 安装deepface及相关库 Reference 前言 deepface是一款"即插即用"的人脸识 ...

  7. bfv同态加密_lattigo: 基于Lattice代数结构的Go同态加密库

    Lattigo 基于Lattice代数结构的Go同态加密库 Lattigo是一个Go软件包,实现了基于格的加密原语.该库功能: 纯Go实施,带来代码简单性和易于构建. 一个有效的多精度多项式算术层的公 ...

  8. Mac M1芯片处理器能用的Bridge 2020/2019 for mac 解决M1版MAC安装BR无法安装问题 完美支持M1芯片处理器

    Adobe Bridge 2020 mac功能特色 集中管理您的创意资源. Bridge 是一款功能强大的创意资源管理器,可使您快速轻松地预览.整理.编辑和发布多个创意资源. 编辑元数据.为资源添加关 ...

  9. 纸上得来终觉浅|解决mac m1芯片安装homebrew下载失败以及速度慢的问题

    目录 一.背景 二.homebrew官网下载(失败) 三.镜像下载(成功) 四.配置环境变量 五.环境变量配置的具体步骤 六.验证 一.背景 近期由于自研项目需要使用Nginx,原本打算下载安装包,手 ...

最新文章

  1. android自定义线程池工具类,妈妈再也不用担心你不会使用线程池了(ThreadUtils)...
  2. 命令行 蓝牙_Noble - Window平台NodeJs蓝牙BLE开发库
  3. BestCoder 2nd Anniversary
  4. 获取app当前可用的剩余内存
  5. China Mobile 免流原理
  6. 前端学习(576):margin无效情形之内联特性导致无效
  7. win7下文本文档不能直接修改后缀是为什么?怎么办?
  8. java的var与auto_java – @Autowired和default-autowire可以共存吗?
  9. 如何选择漏电保护器规格型号_电涌保护器(SPD)选择有哪几个关键的参数?SPD如何使用和安装?...
  10. 如何在Exchange 2013中禁用对ECP的外部访问
  11. y电容如何选型_到底什么是安规电容?有什么作用?一文彻底请明白
  12. Android开发案例 点击按钮出现 简易的消息提示框
  13. js原生往父元素中添加子元素
  14. 泰灏咨询的使命及愿景
  15. 七牛云完整详细配置(从零到一)
  16. 每日阅读:你如何过一天,你就如何过一生
  17. AD(活动目录)中组的类型与工作范围
  18. ECCV 2022《Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification》
  19. Epoll原理深入分析
  20. JAVA判断是否是水仙花数

热门文章

  1. pipconda 搜索包|查看可安装包版本
  2. eclipse中文版 中英文切换 + 全语言转换
  3. 一篇文章说完Flutter页面路由导航及传参
  4. 公司新来了个00后卷王,一副毛头小子的样儿,哪想到...
  5. opencv-python 详解阈值分割
  6. kingbase之时间日期加减
  7. Verilog中repeat的用法
  8. (三)AsyncTask
  9. CAS实现的单点登录系统
  10. 把backtrader改造成金融强化学习回测引擎