0

我正在尝试构建和运行来自 NVlabs 项目SASSI的示例代码,该代码可用于检测 CUDA 代码。但是,我什至很难获得包含的示例MakefilematrixMul.cu正确构建和运行。

我已经尝试添加--maxrregcount=16-rcd=truenvcc 标志,但我认为我真正的问题是正确链接到 SASSI 库。下面 nvcc 输出中列出的所有库路径都解析为包含.so文件的实际目录。

非常感谢任何提示或调试步骤。


$ make clean 

rm -f -f 矩阵Mul *.o

$ make branch

/usr/local/sassi7//bin/nvcc -I./inc -c -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -Xlinker "--wrap=main" -Xlinker "-- wrap=exit" -lineinfo -Xptxas --sassi-inst-before="cond-branches" -Xptxas --sassi-before-args="cond-branch-info" -g -O3 -dc -o matrixMul.o matrixMul .cu


* * SASSI Instrumentation Details * * 对于您传入的设置,您需要确保您拥有 * 具有以下属性的仪器库: * - 它必须仅使用 16 个寄存器编译!为了完成这个 * 只需使用 nvcc 标志编译你的库,--maxrregcount=16 * - 它必须定义以下函数: * device void sassi_before_handler(SASSIBeforeParams*,SASSICondBranchParams*) *



* * SASSI Instrumentation Details * * 对于您传入的设置,您需要确保您拥有 * 具有以下属性的仪器库: * - 它必须仅使用 16 个寄存器编译!要完成这个 * 只需使用 nvcc 标志编译你的库,--maxrregcount=16 * - 它必须定义以下函数: * 设备无效 sassi_before_handler(SASSIBeforeParams*,SASSICondBranchParams*) * **************************************** ****************************************** /usr/local/sassi7//bin/nvcc - o matrixMul matrixMul.o -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -Xlinker "--wrap=main" -Xlinker "--wrap=exit" -L../instlibs/lib - lbranch -L/usr/local/sassi7//extras/CUPTI/lib64 -lcupti -lcudadevrt -Xlinker -rpath,/usr/local/sassi7//extras/CUPTI/lib64 -L/lib -lboost_regex -lcrypto -Xlinker -rpath ,/lib nvlink 错误:未定义对 'matrixMul.o' 中的 '_Z20sassi_before_handlerP17SASSIBeforeParamsP21SASSICondBranchParams' 的引用 make: * [matrixMul] 错误 255**

4

1 回答 1

1

解决方案是在尝试构建示例代码之前安装 Boost,设置适当的路径并从中instlibs/env.mk运行。路径设置正确,但并非所有必需的 SASSI 库都已生成。make allinstlibs/

于 2016-12-21T02:03:30.760 回答