cd /home/
wget https://gmplib.org/download/gmp/gmp-6.0.0.tar.bz2
tar -xf gmp-6.0.0.tar.bz2
rm -f gmp-6.0.0.tar.bz2
cd gmp-6.0.0
mkdir mic
cd mic
../configure CC=icc CFLAGS="-mmic" --host=x86_64 --disable-assembly --prefix /home/gmp-6.0.0/mic/
make
make install
2 回答
使用英特尔编译器构建GMP:
使用英特尔编译器和环境变量进行麦克风开发:
虽然如果您在类Unix环境中运行,我对Xeon Phi甚至ICC没有任何专业知识,那么您可能会尝试在指向ICC编译器而不是默认GCC的GMP源上逐步执行正常的configure / make过程到 build static and/or shared library 以及生成的 gmp.h Headers ,然后您可以链接到您的应用程序 . 您可能希望看到GMP documentation . 以下是一些建议,我试图为NVIDIA CUDA编译它:
使用CC和CFLAGS变量提供./configure指向所需的编译器及其所需的任何选项
确保主机和Xeon Phi设备之间没有ABI不兼容性,尤其是32位和64位架构之间 .
考虑添加
--disable-assembly
选项以生成"pure-C" build(我不熟悉Xeon Phi程序集以及它是否/如何与x86兼容)在编译GMP之后不要忘记运行
make check
(可能带有-j
参数)以检查测试是否正在通过,如果您想将它用于某些专业目的,这是非常重要的一步 .该库通过
make install
命令安装在OS中,默认情况下位于 /usr/local 目录下(如果需要,可以添加--prefix
选项),具体如下:/usr/local/include
用于gmp.h头文件/usr/local/lib
用于静态和/或共享libgmp二进制文件您也可以尝试使用 mini-gmp 包编译您的应用程序,该包包含在GMP源中('s located under mini-gmp directory). It'是
mpz_*
和mpn_*
例程的子集,不像普通GMP那样复杂和快速(并且它没有那么多严重的测试覆盖率) ,但它可以使用 small footprint 完成工作(它包含在一个头文件和C源文件中) . 对于这样的选项,一定要获取最新版本的GMP(甚至从它们的存储库中获取它) .