gunrock 圖結構(graph) GPU 函數庫在 Debian Linux 上的安裝

gunrock 是一套可用 GPU 平行運算的圖(Graph)結構 C++ 函數庫。這裡的 Graph 不是指「畫圖」,而是許多端點(Vertex)跟連結線(Edge)所形成的類似腦神經連結的幾何結構體。

Graph(圖)結構可以用來分析各式複雜的現象, 例如社群網路使用者彼此之間的關係與小群體是否相似,也可以模擬人類腦神經之間的結構,DNA 結構的相似性等等,應用非常廣泛。

昨天我把在 Linux 機器把 gunrock 安裝好了,並測試 C++ 程式連結成功。由於 gunrock 本身的文件對整個安裝過程寫得不清不楚(通病?),所以我在這裡把自己的安裝過程寫一下。

安裝環境與軟體版本:

OS: Debian Linux 7.11 (應可適用於 Ubuntu Linux 14.04), 64-bit
CUDA Toolkit 版本: 8.0
GCC: 4.7.2

Step 1. 安裝 OpenMP library 與 CUDA Toolkits

apt-get install libgomp1

# CUDA 安裝部分,請另行參考我這篇文章
# http://steve-chen.tw/?p=389

Step 2. (Optional) 移除 Debian Linux 上的舊 boost library

apt-get purge libboost*

Step 3. 抓取 gunroc 原始碼

git clone –recursive https://github.com/gunrock/gunrock

Step 4. 安裝新版的 Boost library

cd gunrock
cd dep

# install boost 1.58.0
./install_boost.sh

Step 5. 安裝所需的 metis library

./install_metis.sh 64

Step 6. 編譯 gunrock

cd .. # gunrock 主目錄
mkdir build
cd build
cmake ..

# 開始 compile
make

# 測試
make test
make check

Step 7. 安裝相關檔案:

假設目前在 build 資料夾

cd lib
cp * /usr/local/lib

cd ../bin
mkdir /usr/local/bin/gunrock
cp * /usr/local/bin/gunrock

cd ../../gunrock
mkdir /usr/local/include/gunrock
cp -av * /usr/local/include/gunrock/

cd ../externals
cp -av cub moderngpu/ /usr/local/include/

Done!