Cuda nvvp和nsight';s分析器给出不同的结果?
我想试试gst_inst_128位指令。 在同一个程序中,nvvp给出了大量执行的gst_inst_128位命令。 而在nsight的分析器中,会获得4次gst_inst_32位指令。 它们应该是同一个程序。这种情况怎么会发生 该实验在Linux、CUDA5.0、GTX580上进行了尝试。 在内核函数中,程序仅将数据从一个数组复制到另一个数组: 大体上:Cuda nvvp和nsight';s分析器给出不同的结果?,cuda,nsight,nvvp,Cuda,Nsight,Nvvp,我想试试gst_inst_128位指令。 在同一个程序中,nvvp给出了大量执行的gst_inst_128位命令。 而在nsight的分析器中,会获得4次gst_inst_32位指令。 它们应该是同一个程序。这种情况怎么会发生 该实验在Linux、CUDA5.0、GTX580上进行了尝试。 在内核函数中,程序仅将数据从一个数组复制到另一个数组: 大体上: cudamaloc((void**)和dev_a,NUM*sizeof(float)); cudamaloc((void**)和dev_b,N
cudamaloc((void**)和dev_a,NUM*sizeof(float));
cudamaloc((void**)和dev_b,NUM*sizeof(float));
内核((uint4*)开发a,(uint4*)开发b);
内核:
__global__ void kernel(uint4 *a, uint4 *b){
unsigned int id = blockIdx.x * THREAD_NUM + threadIdx.x;
for(unsigned int i = 0;i < LOOP/4;i++){
b[id + i * GRID_NUM * THREAD_NUM] = a[id + i * GRID_NUM * THREAD_NUM];
}
return;
\uuuu全局\uuuuu无效内核(uint4*a,uint4*b){
unsigned int id=blockIdx.x*THREAD_NUM+threadIdx.x;
for(无符号整数i=0;i
Nsight EE中的探查器和Linux上的独立可视探查器基于相同的代码库。请确保:
请注意,Nsight EE启动UI可能会有点混乱。调试调试生成后单击“配置文件”时,它可能会在调试可执行文件上运行配置文件,试图保留所有自定义启动设置(例如命令行参数、工作文件夹等)您可以进行安装。从主菜单中单击运行->配置文件配置…查看Nsight在分析应用程序时使用的设置。这是linux吗?Nsight可能正在生成代码的调试版本,而不是发布版本。您应该仔细检查Nsight的生成方式,以查看nvcc命令行是否与您所使用的一致当你为nvvp构建独立版本时,你会做些什么。调试版本的代码通常会添加-g-g开关,这可以极大地改变代码。这是发布版本代码。我先用nsight评测我的程序,然后是nvvp。它们应该是同一个执行文件。你能证明nvvp和nsight Eclipse Edition正在启动exac吗t相同的可执行文件(无重建),并且工具正在启动完全相同的nvprof可执行文件?您可以使用/proc查看此信息。
__global__ void kernel(uint4 *a, uint4 *b){
unsigned int id = blockIdx.x * THREAD_NUM + threadIdx.x;
for(unsigned int i = 0;i < LOOP/4;i++){
b[id + i * GRID_NUM * THREAD_NUM] = a[id + i * GRID_NUM * THREAD_NUM];
}
return;