Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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 nvcc需要很长时间来编译简单的代码_Cuda - Fatal编程技术网

Cuda nvcc需要很长时间来编译简单的代码

Cuda nvcc需要很长时间来编译简单的代码,cuda,Cuda,我有这段非常简单的代码,nvcc需要花费很长时间来编译(它100%加载我的两个CPU内核,而且从不停止)。这是由于循环展开造成的吗?有没有更简单的方法可以更快地初始化本地内存 #include "cuda_runtime.h" #include <stdio.h> #include "cuComplex.h" __global__ void test() { cuComplex myPoints[20][20]; for (int i=0; i<20;i++)

我有这段非常简单的代码,nvcc需要花费很长时间来编译(它100%加载我的两个CPU内核,而且从不停止)。这是由于循环展开造成的吗?有没有更简单的方法可以更快地初始化本地内存

#include "cuda_runtime.h"
#include <stdio.h>
#include "cuComplex.h"
__global__ void test()
 {
 cuComplex myPoints[20][20];

 for (int i=0; i<20;i++)
     for (int j=0; j<20;j++)
    {
       myPoints[i][j].x=0.0;
        myPoints[i][j].y=0.0;
    }
 for (int i=0; i<20;i++)
     for (int j=0; j<20;j++)
   {

        printf("%d %d",myPoints[i][j].x,myPoints[i][j].y);
   }


 }

 main()
 {
 }
#包括“cuda_runtime.h”
#包括
#包括“cuComplex.h”
__全局无效测试()
{
cuComplex myPoints[20][20];

对于这个明显的编译器错误已经被报告给英伟达编译团队

哪一个CUDA版本?它在CUDA 4.1上编译得很快。它是CUDA 5……只是最新版本。我将尝试在CUDA 4.2.1上用CUDA 4.2INFING编译。这是非常快的。你有什么问题?CUDA 5中的bug还是新特性?我看到了Lon。在CUDA5中的编译时间也是如此。我真的没有答案,但我观察到20*20*sizeof(cuComplex)每个线程需要占用大量的寄存器空间。如果我将_uu_u_u_u_u_u______________________________________________________对于每个线程,如果myPoints数组不是“寄存器空间”,则任何合理数量的线程都会很快用完它,它将是本地内存。在线程之间共享它可能没有意义,而且可能没有足够的共享内存让每个线程都有那么多的空间。程序在每个线程中使用大量本地内存的情况并不少见,在某些情况下,它甚至不是瓶颈。这听起来像是编译器错误。