2014-02-26 41 views
0

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

+0

你是什么操作系统,在那里你编译GMP? –

+0

RedHat Enterprise 6.3。我使用CC = icc CFLAGS = -mmic编译CPU。但我不知道如何安装到至强phi – user3346400

+1

“无法安装”:什么失败? “找不到gmp.h”:你知道'-I'标志吗?只要你告诉编译器在哪里找到它,放置'gmp.h'并不重要。您可以在命令行中添加'-v'来查看编译器在默认情况下查找哪些内容。 –

回答

0

虽然我对Xeon Phi甚至ICC没有任何专业知识,但是如果您在类Unix环境中运行,那么您可以尝试通过正常的指向ICC编译器的GMP源代码的configure/make过程,而不是为了默认GCC到构建静态和/或共享库与产生gmp.h头一起,你可以再与您的应用程序链接。你可能想看到GMP documentation。下面是一些建议,我走到尝试编译它NVIDIA CUDA:与CC

  1. 供应的./configure和CFLAGS变量指向所需的编译器和要
  2. 确保其无论选择您的主机与Xeon Phi设备之间不存在ABI不兼容问题,特别是在32位与64位体系结构之间。
  3. 考虑加入--disable-assembly选项生成“纯C”版本(我不熟悉的至强融核组装和IF /它是如何与86 compatibile)
  4. 不要忘了(与-j参数可能)运行make check在您编译GMP以检查测试是否通过之后,如果您想将其用于某些专业目的,这是非常重要的一步。

的库安装OS通过make install命令,默认下/usr/local目录(如果你想在别的地方您可以添加--prefix选项),具体如下:

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

您也可以尝试使用mini-gmp程序包编译您的应用程序,该程序包包含在GMP源代码中(它位于mini-gmp目录下)。它的mpz_*mpn_*程序,而不是复杂的和快速的正常GMP(它不拥有尽可能多的严峻考验覆盖)的子集,但它可以使您的工作与占地面积小(它包含在一个头,做C源文件)。对于这样的选项,一定要获取GMP的最新版本(甚至可以从他们的仓库获取)。

+0

非常感谢您的回答。我在Xeon之前使用gcc编译并安装GMP,并且它是成功的。我想在Xeon phi上使用GMP而不是Intel MKL,所以我有这个问题。 – user3346400

+0

针对Xeon phi的编译成功,CC = icc CFLAGS = -mmic。我从你的答案中发现了一些我没有注意到的东西 – user3346400

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