0

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

4

2 回答 2

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
于 2015-10-27T13:01:03.493 回答
0

虽然我对 Xeon Phi 甚至 ICC 没有任何专业知识,如果您在类 Unix 环境中运行,那么您可能会尝试逐步通过指向 ICC 编译器而不是默认 GCC 的 GMP 源的正常配置/制作过程。构建静态和/或共享库以及生成的gmp.h标头,然后您可以将其链接到您的应用程序。您可能希望查看GMP 文档。这里有一些建议,我试图为 NVIDIA CUDA 编译它:

  1. 提供带有 CC 和 CFLAGS 变量的 ./configure 以指向所需的编译器及其所需的任何选项
  2. 确保您的主机和 Xeon Phi 设备之间没有 ABI 不兼容,尤其是在 32 位和 64 位架构之间。
  3. 考虑添加--disable-assembly选项以生成“纯 C”构建(我不熟悉 Xeon Phi 程序集以及它是否/如何与 x86 兼容)
  4. 不要忘记在编译 GMP 后运行make check(可能带有-j参数)以检查测试是否通过,如果您想将其用于某些专业目的,这是非常重要的一步。

该库通过make install命令安装在操作系统中,默认位于目录下(如果需要,可以在其他地方/usr/local添加选项),特别是:--prefix

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

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

于 2014-02-26T14:08:09.440 回答