CUDA-NPP示例代码

时间:2012-02-06 23:59:58

标签: cuda

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

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进行编译会产生很多错误,例如对npp::Image::Image()等的未定义引用。 尽快帮助,谢谢!

2 个答案:

答案 0 :(得分:2)

我已经重现了您找到的错误。我假设您下载了个人boxFilter sample

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

访问http://developer.nvidia.com/cuda-toolkit-41并查找“GPU Computing SDK下载”,并为您的操作系统下载相应的一个。我建议你按照自述文件中的说明进行操作,以便在直接进入boxFilter并输入make之前构建样本 - 它可能依赖于首先构建一些实用程序库。

答案 1 :(得分:1)

我下载了你提到的tarball,首先构建静态的UtilNPP lib。您需要在相应的目录中编辑CUDA_INSTALL_PATH变量,例如,define.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正确等等希望这有帮助