我正在尝试构建并运行NVlabs项目SASSI中的示例代码,该代码可用于检测CUDA代码。但是,我正在努力获得包含的示例Makefile
和matrixMul.cu
来构建和正常运行。
我尝试添加--maxrregcount=16
和-rcd=true
nvcc标志,但我认为我的真正问题是正确连接到SASSI库。下面的nvcc输出中列出的所有库路径都会解析为包含.so
个文件的实际目录。
非常感谢任何提示或调试步骤。
$ make clean
rm -f -f matrixMul * .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仪表详细信息 * *对于您传入的设置,您需要确保拥有 *具有以下属性的检测库: * - 必须只使用16个寄存器编译!!要做到这一点 *只需使用nvcc标志编译库, - maxrregcount = 16 * - 必须定义以下功能: * 设备 void sassi_before_handler(SASSIBeforeParams *,SASSICondBranchParams *) *
* * SASSI仪表详细信息 * *对于您传入的设置,您需要确保拥有 *具有以下属性的检测库: * - 必须只使用16个寄存器编译!!要做到这一点 *只需使用nvcc标志编译库, - maxrregcount = 16 * - 必须定义以下功能: * 设备 void 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 error:未定义的引用 '_Z20sassi_before_handlerP17SASSIBeforeParamsP21SASSICondBranchParams' 在'matrixMul.o'中:* [matrixMul]错误255 **
答案 0 :(得分:1)
解决方案是安装Boost,在instlibs/env.mk
中设置相应的路径并在尝试构建示例代码之前从make all
运行instlibs/
。路径设置正确,但并未生成所有必需的SASSI库。