Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cuda nvvp和nsight';s分析器给出不同的结果?_Cuda_Nsight_Nvvp - Fatal编程技术网

Cuda nvvp和nsight';s分析器给出不同的结果?

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

我想试试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,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上的独立可视探查器基于相同的代码库。请确保:

  • 您正在使用相同的可执行文件
  • 环境变量值(例如LD_library_PATH)没有差异

  • 请注意,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;