我使用icc和-mmic选项编译了GMP,但无法在MIC上安装。我该如何安装? 我写了一个用icc编译的演示程序。它说无法找到gmp.h. 我应该如何在MIC上安装GMP库以及在哪里放置gmp.h?
答案 0 :(得分:1)
使用英特尔编译器构建GMP:
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
将英特尔编译器与环境变量一起用于麦克风开发:
GMP_INCDIR=/home/gmp-6.0.0/mic/include
GMP_LIBDIR=/home/gmp-6.0.0/mic/lib
答案 1 :(得分:0)
虽然如果您在类Unix环境中运行,我对Xeon Phi甚至ICC没有任何专业知识,那么您可能会尝试在指向ICC编译器而非默认值的GMP源上逐步执行正常的configure / make过程GCC为了构建静态和/或共享库以及生成的 gmp.h 标头,您可以将其与您的应用程序链接。您可能希望看到GMP documentation。以下是一些建议,我试图为NVIDIA CUDA编译它:
--disable-assembly
选项以生成“pure-C”构建(我不熟悉Xeon Phi程序集以及它是否/如何与x86兼容)make check
(可能带有-j
参数)以检查测试是否通过,如果您想将它用于某些专业目的,这是非常重要的一步该库通过make install
命令安装在操作系统中,默认情况下位于 /usr/local
目录下(如果您希望将其添加到其他位置,可以添加--prefix
选项) ,特别是:
/usr/local/include
用于gmp.h头文件/usr/local/lib
用于静态和/或共享libgmp二进制文件您也可以尝试使用 mini-gmp 程序包编译您的应用程序,该程序包包含在GMP源代码中(它位于mini-gmp目录下)。它是mpz_*
和mpn_*
例程的一个子集,并不像普通GMP那样复杂和快速(并且没有那么多严肃的测试覆盖率),但它可以通过完成工作占用空间小(它包含在一个标题和C源文件中)。对于此类选项,请务必获取最新版本的GMP(甚至从其存储库中获取)。