为什么GPU代码中不允许执行系统命令?

Ram*_*qad -4 c++ opencl

我尝试在GPU代码(OpenCL/C++内核)中执行系统命令

system("ngspice");
Run Code Online (Sandbox Code Playgroud)

但是我收到了这条ERROR消息:CL_INVALID_BINARY.

我发现一些问题,说它不允许在内核中调用外部函数!

OPENCL: OpenCL - 是否可以从内核中调用另一个函数?

CUDA: 不支持CUDA外部呼叫

如果我没错,那是OPENCL/CUDA限制之一:

OpenCL:https://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/restrictions.html

CUDA:http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#functions

我对吗?这种限制背后的原因是什么?

Pup*_*ppy 5

因为它完全没有意义.您尝试调用的系统在GPU上不存在.您无法在GPU上调用外部程序.试图通过调用程序或shell来完全没有意义system.