我正在尝试构建和运行来自 NVlabs 项目SASSI的示例代码,该代码可用于检测 CUDA 代码。但是,我什至很难获得包含的示例Makefile
并matrixMul.cu
正确构建和运行。
我已经尝试添加--maxrregcount=16
和-rcd=true
nvcc 标志,但我认为我真正的问题是正确链接到 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**