2012-02-06 141 views
1

任何人都可以告诉我如何编译CUDA-NPP示例代码网站上的boxFilter程序? 'make'给出了关于common_npplib.mk的错误 - 我没有找到common_npplib.mk,但它包含在makefile中。 无论如何,我试过这个:CUDA-NPP示例代码

g++ -I../../common/UtilNPP -I../../../shared/inc -I../../common/FreeImage -I/usr/global/cuda/4.0/cuda/include -L/usr/global/cuda/4.0/cuda/lib64 -L../../common/FreeImage/lib/linux -L../../../shared/lib -lnpp -lcudart -lUtilNPP_x86_64 -lfreeimage64 -o bf boxFilterNPP.cpp 

这再次导致错误。 它找不到-lUtilNPP_x86_64和-lfreeimage64。 编译没有这2个给出了很多的错误,如undefined参考npp::Image::Image()等 帮助需要尽快,谢谢!

回答

2

我转载了您发现的错误。我假设你下载了个人boxFilter sample

该档案肯定缺少common_npplib.mk。我会将此错误报告给CUDA SDK 团队并进行更正。同时,我认为如果你下载整个SDK而不是单个样本,你将会有更好的运气编译。

访问http://developer.nvidia.com/cuda-toolkit-41并寻找“GPU Computing SDK Downloads”,并为您的操作系统下载合适的一个。我建议您按照自述文件中的说明操作,直接进入boxFilter并输入make之前如何构建样本 - 这可能取决于首先构建一些实用程序库。

1

我下载了你提到的压缩包,首先构建静态的UtilNPP库。你需要编辑CUDA_INSTALL_PATH变量例如线defines.mk 45-47在相应的目录:

#ifdef cuda-install 
    CUDA_INSTALL_PATH := /usr/global/cuda/4.1/cuda 
#endif 

然后我写/来源以下来自包含源代码的目录中生成脚本:

module load cuda/4.1 

shlib="-L/usr/global/cuda/4.1/cuda/lib64/ -lnpp" 
inc="-I../../common/UtilNPP -I../../common/FreeImage/include -I../../../shared/inc -I/usr/global/cuda/4.1/cuda/include/" 
stlib="../../common/lib/libUtilNPP_x86_64.a ../../common/FreeImage/lib/linux /libfreeimage64.a" 

nvcc $inc $stlib $shlib boxFilterNPP.cpp -o foo.x 

./foo.x跑得很好;您当然需要更改cuda安装路径以适合您的安装,并且如果您不使用模块系统,请确保您的LD_LIBRARY_PATH是正确的等,等等,希望这可以帮助