有没有一种方法可以简单地从GPU调用多个cpp输出文件?

时间:2018-10-23 17:10:40

标签: c++ cuda

我想知道这是否可能吗?有人可以指出我在任何地方错了吗?我是CUDA的新手。

__global__ void run_multiple_cpp(int *n, int *result){
    int i = blockDim.x*blockIdx.x + threadIdx.x;
    if (i < n){
        result[i] = system("//path to a.out" -parameters[i])
    }
}

int main(void){
    // Get input here,
    // kernel call which splits the input as shown above
    return 0;
}

我的问题是是否可以实现而无需编写CUDA友好的CPP文件。我尝试使用 __ device __ __ host __ 标志但是我的应用程序太大,无法修改以支持CUDA。

以上操作始终基于不同的输入集-我尝试过CPU多线程,但需要为大量输入运行此应用程序。因此我问。

1 个答案:

答案 0 :(得分:1)

GPU快速的主要原因是它们包含许多小型和简单的处理器,因此可以并行执行许多简单的任务。 像调用system这样的高级操作在GPU上是完全不可用的。为了利用GPU的功能,您将需要为CUDA / OpenCL / Metal等重写代码。

如果您不能修改程序以在GPU上运行,则可能可以利用CPU的SIMD功能,并且仍然可以实现(较小)加速,这也可能是GPU的垫脚石处理,使您的代码对CPU SIMD友好,也可能使向GPU的移植更加容易。