2010年1月19日 星期二

[caution] nvcc compile

       之前為了測試 cudpp 安裝gcc-3.3, 所以系統上有二套gcc (gcc-3.3 and gcc-4.3), 為了方便測試所以把gcc and g++ link 到 gcc-3.3. 然而之後再寫cuda 程式時發現程式一直有問題, 一直找不到原因, 後來猜想也許是gcc 的問題所以把link 改回gcc-4.3, 程式再執行就正常了. 我在想也許和當時安裝driver 有關

cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  190.29  Mon Aug 24 18:10:29 PDT 2009
GCC version:  gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

2010年1月15日 星期五

nvcc compiler-bindir

有時侯在使用CUDA with GCC 會遇見GCC 版本的問題, 例如 CUDPP v1.1 在gcc-4.3 上使用會有問題, 目前的做法就是downgrade gcc 版本, 另一種作法是同時安裝gcc-3.3 and gcc-4.3 然後用nvcc 編譯時加上--compiler-bindir, 作法如下

1. 做個gcc 的連結
ln -s /usr/bin/gcc-3.3 ~/gcc33/gcc
ln -s /usr/bin/g++-3.3 ~/gcc33/g++

2. 用nvcc 做編譯時加上--compiler-bindir
nvcc -DUNIX -O3 -c --use_fast_math -arch sm_13 --compiler-bindir ~/gcc33