Alex__Wong 2016-12-11 06:00 采纳率: 0%
浏览 2948
已结题

CUDA并行处理循环问题

刚开始接触CUDA,C++也不熟悉,想把一个循环用GPU并行加速。
有这么一个循环:

 for (int i = 0; i < nbint; i++)
    {
        _theta = (0.5 + i)*delta;
        for (int j = 0; j < nbinp; j++)
        {
            _phi = (0.5 + j)*delta;
            _l = sin(_theta* PI / 180.0)*cos(_phi* PI / 180.0);
            _m = sin(_theta* PI / 180.0)*sin(_phi* PI / 180.0);
            _n = cos(_theta* PI / 180.0);
            for (int k = 0; k < hits; k++)
            {
                _k = -(_l*x[k] + _m*y[k] + _n*z[k]);
                t[k] = a[k] - _k;

            }
            sort(t,0,hits-1)
            }
            }

变幻完成后对这nbint*nbinp个数组排序。我想并行处理这么多数组。下面是我的核函数部分:

__global__ void boot(float *theta, float *phi, float *h, float *t)
{
    using namespace std;
    int nbint = 2, nbinp = 2, hits = 20, delta = 5;
    float l, m, n = 0;
    int tid = blockDim.x * blockIdx.x + threadIdx.x;
    if (tid < nbinp*nbint)
    {
        for (int i = 0; i < nbint; i++)
        {
            *theta = (0.5 + i)*delta;
            for (int j = 0; j < nbinp; j++)
            {
                *phi = (0.5 + j)*delta;
                l = sin((*theta)* PI / 180.0)*cos((*phi)* PI / 180.0);
                m = sin((*theta)* PI / 180.0)*sin((*phi)* PI / 180.0);
                n = cos((*theta)* PI / 180.0);
                for (int k = 0; k < hits; k++)
                {
                    float *x = new float[k];
                    float *y = new float[k];
                    float *z = new float[k];
                    float *a = new float[k];
                    *h = -(l*x[k] + m*y[k] + n*z[k]);
                    t[k] = a[k] - *h;

                }
                GPUqsort << < 1, 1 >> >(t, 0, hits-1);
            }
        }
    }
} 

结果不对。。请大神们给点指导~~~

  • 写回答

1条回答

  • zqbnqsdsmd 2016-12-17 06:45
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块
  • ¥15 nhanes加权logistic回归,svyglm函数