问题标签 [nvidia-sass]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
418 浏览

assembly - 为什么我在调试模式 nVIDIA SASS 代码中看到 MOV Rn、Rn 指令?

这是我正在处理的内核的一些 SASS 代码片段(对于 sm52 目标,在调试模式下编译):

我注意到不止几个“将寄存器 Rn 的内容移动到寄存器 Rn”形式的指令——这看起来没有意义。我知道在没有启用调试信息的情况下进行编译并且进行优化时,我没有得到这些说明。但是,即使在调试模式下——它们为什么在那里?他们的目的是什么?AFAIK,在编译 CPU 代码进行调试时,您不会得到这些指令。

0 投票
1 回答
87 浏览

makefile - 无法为 CUDA NVlabs SASSI 工具构建示例

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

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

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


rm -f -f 矩阵Mul *.o

/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**

0 投票
1 回答
152 浏览

cuda - nVIDIA GPU 可以从特殊寄存器存储到内存吗?

在研究使用方式时,我正在摆弄一些 SASS %laneid。在浪费了某人生命的一分钟失态之后(对不起 - 你知道你是谁),我现在有以下几点:

CUDA 代码:

SASS(对于 SM 6.1):

因此,STG 指令——我猜想存储到全局内存——不会立即使用 SR_LANEID,而是使用内联 PTX 将其放入的寄存器。这是因为(Pascal)GPU 无法从特殊寄存器中存储,还是错过了优化机会?