相关疑难解决方法(0)

是否可以在OpenCL中并行运行和计算?

我是OpenCL的新手.但是,我理解C/C++基础知识和OOP.我的问题如下:是否有可能并行运行和计算任务?理论上可行吗?下面我将描述我试图做的事情:

例如,任务是:

double* values = new double[1000]; //let's pretend it has some random values inside
double sum = 0.0;

for(int i = 0; i < 1000; i++) {
    sum += values[i];
}
Run Code Online (Sandbox Code Playgroud)

我在OpenCL内核中尝试做的事情(我觉得这是错误的,因为它可能同时从不同的线程/任务访问相同的"sum"变量):

__kernel void calculate2dim(__global float* vectors1dim,
                            __global float output,
                            const unsigned int count) {
    int i = get_global_id(0);
    output += vectors1dim[i];
}
Run Code Online (Sandbox Code Playgroud)

这段代码错了.如果理论上有可能并行运行这样的任务,如果有的话,我会非常感谢有人回答我 - 如何!

c c++ parallel-processing opencl

6
推荐指数
1
解决办法
4576
查看次数

标签 统计

c ×1

c++ ×1

opencl ×1

parallel-processing ×1