首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行约简技术

并行约简技术
EN

Stack Overflow用户
提问于 2013-01-28 17:10:06
回答 1查看 222关注 0票数 0

我有这段C++代码,我想把它移植到CUDA上。

代码语言:javascript
复制
for (int im = 0; im < numImages; im++)
{
    for (p = 0; p < xsize*ysize; p++) 
    {
        bool ok = false;

        for (f = 0; f < numFeatures; f++)
        {
            if (feature[im][f][p] != 0) 
            {
                ok = true;
                break;
            }
        }
        if (ok)
        {         
            minDist = 1e9;
            for (i = 0; i < numBins; i++) 
            {
                dist = 0;
                for (f = 0; f < numFeatures; f++)
                {
                    dist += (float)((feature[im][f][p]-clusterPoint[f][i])*(feature[im][f][p]-clusterPoint[f][i]));
                }

                if (dist < minDist) 
                {
                    minDist = dist;
                    tmp = i;          
                }
            }//end for i  

            for (f = 0; f < numFeatures; f++) 
                csum[f][tmp] += feature[im][f][p];

            ccount[tmp]++;

            averageDist[tmp] += sqrt(minDist);

        } // end if (ok)
    }  //end for p    
}// end for im

我想在图形处理器中计算csumccountaverageDistcsumaveragedist是浮点数,ccount是整数。

这是一个并行约简问题吗?

EN

回答 1

Stack Overflow用户

发布于 2013-01-28 22:27:15

是的,你可以使用CUDA进行求和。但是,元素的数量应该足够大,以便GPU上求和所用的时间应该小于CPU上求和所用的时间。This may help you

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

https://stackoverflow.com/questions/14558691

复制
相关文章

相似问题

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