首页 文章

有人在Xeon Phi上使用GMP吗?

提问于
浏览
0

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

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
    
  • 0

    虽然如果您在类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(甚至从它们的存储库中获取它) .

相关问题