nvvp和nsight的分析器会给出不同的结果吗?

时间:2013-01-10 09:27:16

标签: cuda nsight nvvp

我想尝试gst_inst_128bit指令。 在同一个程序中,nvvp执行了很多gst_inst_128bit命令。 在nsight的分析器中,获得了4次gst_inst_32bit指令。 它们应该是同一个程序。这种情况怎么可能发生?

在Linux,CUDA 5.0,GTX 580上尝试了该实验。 该程序仅在内核函数中将数据从一个数组复制到另一个数组: 主要:

cudaMalloc((void**)&dev_a, NUM * sizeof(float));
cudaMalloc((void**)&dev_b, NUM * sizeof(float));
kernel<<<grid,block>>>((uint4 *)dev_a, (uint4 *)dev_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;

1 个答案:

答案 0 :(得分:1)

Nsight EE中的Profiler和Linux上的独立Visual Profiler基于相同的代码库。请确保:

  1. 您正在使用相同的可执行文件。
  2. 环境变量值没有区别(例如LD_LIIBRARY_PATH)。
  3. 请注意,Nsight EE启动UI可能会有些混乱。在调试调试版本后单击“配置文件”时,它可能实际上在调试可执行文件上运行分析,试图保留您可以设置的所有自定义启动设置(例如命令行参数,工作文件夹等)。在主菜单中,单击运行 - &gt; 配置文件配置... 以查看Nsight在分析应用程序时使用的设置。