2014-02-26 45 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