首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有限元装配的CUDA核

有限元装配的CUDA核
EN

Stack Overflow用户
提问于 2011-11-27 10:04:04
回答 2查看 279关注 0票数 0

我们有一个非结构化四面体网格文件,包含以下格式:

代码语言:javascript
复制
element-ID  nod1 nod2 nod3 nod4


    1            452  3434  322 9000

    2            2322   837 6673 2323

    .
    .
    .

300000

我们将上述网格划分为每个分区的大小为2048。对于每个2048年的分区大小包含唯一的nod1 nod2 nod3 nod4值,我们在不同的开始索引处传递1个块和512个线程。

在库达文件中,我们有

代码语言:javascript
复制
__global__ void calc(double d_ax,int *nod1,int *node2,int *nod3,int *nod4,int   start,int size)
{
    int n1,n2,n3,n4;     
    int i = blockIdx.x * blockDim.x + threadIdx.x + start;


    if ( i < size )
    {

        n1=nod1[i];
        n2=nod2[i];
        n3=nod3[i];
        n4=nod4[i];

        ax[n1] += some code;
        ax[n2] += some code;
        ax[n3] += some code;
        ax[n4] += some code;
    }
}

我们称内核为

代码语言:javascript
复制
calc<<<1,512>>>(d_ax,....,0,512);
calc<<<1,512>>>(d_ax,....,512,512);
calc<<<1,512>>>(d_ax,....,1024,512); 
calc<<<1,512>>>(d_ax,....1536,512);

上面的代码运行良好,但问题是我们一次使用多个块得到不同的结果。例如:

代码语言:javascript
复制
calc<<<2,512>>>(d_ax,....,0,1024); 
calc<<<2,512>>>(d_ax,....,1024,1024); 

有谁可以帮我?

EN

回答 2

Stack Overflow用户

发布于 2011-11-27 13:31:36

我不知道当您发布的代码不完整且不可编译时,您如何期望任何人告诉您可能出了什么问题,但是如果在您的单个块情况下,您确实在像您发布的那样调用内核,这就是应该发生的情况:

代码语言:javascript
复制
calc<<<1,512>>>(d_ax,....,0,512);    // process first 512 elements
calc<<<1,512>>>(d_ax,....,512,512);  // start >= 512, size == 512, does nothing
calc<<<1,512>>>(d_ax,....,1024,512); // start >= 1024, size == 512, does nothing
calc<<<1,512>>>(d_ax,....1536,512);  // start >= 1536, size == 512, does nothing

因此,不管您的代码在使用多个块运行时是否会中断,您对于单个块情况的结果可能是错误的,因此您的问题的全部要点可能是无关紧要的。

如果你想要一个更好的答案,编辑你的问题,让它包含一个完整的问题描述和简洁,完整的代码,实际上可以编译。否则,从你提供的信息来看,这几乎是任何人都能猜到的。

票数 1
EN

Stack Overflow用户

发布于 2011-11-27 15:42:49

对于2048年的每个分区大小,

包含唯一的nod1 nod2 nod3 nod4值。

但是在两个分区集中,是否会出现相同的节点索引?如果在两个不同的街区

第1项:ax[1234]=do something

第2项:ax[1234]=do something else

闻起来像种族的味道。你永远不知道这两个街区中哪一个写起来更快.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8284773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档