Mac M1芯片同态加密库的安装(TFHE问题)
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问题)相关推荐
- 教你在M1芯片的imac一体机上安装PS2021 附教程和方法适用于所有Mac
提示:文章转载自互联网 文章目录 前言 一.正确安装流程 二.注意事项 总结 前言 苹果在21年4月发布了搭载M1芯片的一体机产品:imac 2021 惊艳的机生设计和超薄的厚度实在是太香了, 关键是 ...
- 同态加密库Seal库的安装(win11+VS2022)
先说一下,seal库是微软开发的同态加密库,目前支持三种算法bfv,bgv和ckks.提供的语言版本是C艹和C#. 工具准备 这是github上提供的要求. 要准备的东西有 vs2022(社区版就行了 ...
- mac m1芯片 安装 nvm 踩坑日记
nvm 是什么? nvm 可以 管理 本地 node 版本,多个项目 使用 多个 不同版本的 node,完全是合理的存在,总不能用什么版本下载什么版本,不用的在卸载吧. 那么 nvm 就是一个很好用的 ...
- MAC M1芯片可下载的安卓模拟器Android Emulator
记录一下MAC M1芯片可下载的Android模拟器Android Emulator安装使用过程 最近在做h5+的移动端APP,使用HBuilderX打包运行的,用自己的安卓手机突然检测不到设备,就想 ...
- bfv同态加密_微软同态加密库SEAL使用
近期刚接触SEAL库,本文记录该库的使用方法,具体的同态加密的原理不过多介绍,若有错误,请各位大佬批评指正. SEAL(Simple Encrypted Arithmetic Library)是微软开 ...
- 【KAWAKO】deepface-在基于m1芯片的macbook上进行安装
目录 前言 本机配置 安装miniforge tips 安装tensorflow 安装deepface及相关库 Reference 前言 deepface是一款"即插即用"的人脸识 ...
- bfv同态加密_lattigo: 基于Lattice代数结构的Go同态加密库
Lattigo 基于Lattice代数结构的Go同态加密库 Lattigo是一个Go软件包,实现了基于格的加密原语.该库功能: 纯Go实施,带来代码简单性和易于构建. 一个有效的多精度多项式算术层的公 ...
- Mac M1芯片处理器能用的Bridge 2020/2019 for mac 解决M1版MAC安装BR无法安装问题 完美支持M1芯片处理器
Adobe Bridge 2020 mac功能特色 集中管理您的创意资源. Bridge 是一款功能强大的创意资源管理器,可使您快速轻松地预览.整理.编辑和发布多个创意资源. 编辑元数据.为资源添加关 ...
- 纸上得来终觉浅|解决mac m1芯片安装homebrew下载失败以及速度慢的问题
目录 一.背景 二.homebrew官网下载(失败) 三.镜像下载(成功) 四.配置环境变量 五.环境变量配置的具体步骤 六.验证 一.背景 近期由于自研项目需要使用Nginx,原本打算下载安装包,手 ...
最新文章
- android自定义线程池工具类,妈妈再也不用担心你不会使用线程池了(ThreadUtils)...
- 命令行 蓝牙_Noble - Window平台NodeJs蓝牙BLE开发库
- BestCoder 2nd Anniversary
- 获取app当前可用的剩余内存
- China Mobile 免流原理
- 前端学习(576):margin无效情形之内联特性导致无效
- win7下文本文档不能直接修改后缀是为什么?怎么办?
- java的var与auto_java – @Autowired和default-autowire可以共存吗?
- 如何选择漏电保护器规格型号_电涌保护器(SPD)选择有哪几个关键的参数?SPD如何使用和安装?...
- 如何在Exchange 2013中禁用对ECP的外部访问
- y电容如何选型_到底什么是安规电容?有什么作用?一文彻底请明白
- Android开发案例 点击按钮出现 简易的消息提示框
- js原生往父元素中添加子元素
- 泰灏咨询的使命及愿景
- 七牛云完整详细配置(从零到一)
- 每日阅读:你如何过一天,你就如何过一生
- AD(活动目录)中组的类型与工作范围
- ECCV 2022《Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification》
- Epoll原理深入分析
- JAVA判断是否是水仙花数