有人在Xeon Phi上使用GMP吗?

时间:2014-02-26 13:21:23

标签: gmp icc intel-mic xeon-phi

我使用icc和-mmic选项编译了GMP,但无法在MIC上安装。我该如何安装? 我写了一个用icc编译的演示程序。它说无法找到gmp.h. 我应该如何在MIC上安装GMP库以及在哪里放置gmp.h?

2 个答案:

答案 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编译它:

  1. 使用CC和CFLAGS变量提供./configure指向所需的编译器及其所需的任何选项
  2. 确保主机和Xeon Phi设备之间没有ABI不兼容性,尤其是在32位和64位架构之间。
  3. 考虑添加--disable-assembly选项以生成“pure-C”构建(我不熟悉Xeon Phi程序集以及它是否/如何与x86兼容)
  4. 在编译GMP之后不要忘记运行make check(可能带有-j参数)以检查测试是否通过,如果您想将它用于某些专业目的,这是非常重要的一步
  5. 该库通过make install命令安装在操作系统中,默认情况下位于 /usr/local 目录下(如果您希望将其添加到其他位置,可以添加--prefix选项) ,特别是:

    • /usr/local/include用于gmp.h头文件
    • /usr/local/lib用于静态和/或共享libgmp二进制文件

    您也可以尝试使用 mini-gmp 程序包编译您的应用程序,该程序包包含在GMP源代码中(它位于mini-gmp目录下)。它是mpz_*mpn_*例程的一个子集,并不像普通GMP那样复杂和快速(并且没有那么多严肃的测试覆盖率),但它可以通过完成工作占用空间小(它包含在一个标题和C源文件中)。对于此类选项,请务必获取最新版本的GMP(甚至从其存储库中获取)。