Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从CUDA设备函数/内核内部并行化方法_C++_Multithreading_Parallel Processing_Cuda_Dynamic Parallelism - Fatal编程技术网

C++ 从CUDA设备函数/内核内部并行化方法

C++ 从CUDA设备函数/内核内部并行化方法,c++,multithreading,parallel-processing,cuda,dynamic-parallelism,C++,Multithreading,Parallel Processing,Cuda,Dynamic Parallelism,我有一个已经并行化的CUDA内核,它执行一些需要频繁插值的任务 所以有一个内核 __global__ void complexStuff(...) 调用此插值设备函数的一次或多次: __device__ void interpolate(...) 插值算法在三维上连续进行WENO插值。这是一个高度并行化的任务,我迫切希望并行化 很明显,内核complexStuff()可以通过使用语法从主机代码调用来轻松实现并行化。同样重要的是,complexStuff()已经并行化了 但我不清楚如何从CUD

我有一个已经并行化的CUDA内核,它执行一些需要频繁插值的任务

所以有一个内核

__global__ void complexStuff(...)
调用此插值设备函数的一次或多次:

__device__ void interpolate(...)
插值算法在三维上连续进行WENO插值。这是一个高度并行化的任务,我迫切希望并行化

很明显,内核
complexStuff()
可以通过使用
语法从主机代码调用来轻松实现并行化。同样重要的是,
complexStuff()
已经并行化了


但我不清楚如何从CUDA设备函数内部并行化某些东西/创建新线程。。。这可能吗?有人知道吗?

你可能想考虑动态并行性(一些资源,和),以便从另一个CUDA内核调用CUDA内核。它要求您的设备计算能力为3.5或更高。它附带了许多可能会降低性能的限制和限制(在第三个链接中提到)。
我的建议是,首先考虑调用CUDA内核,使用<代码>复杂(…)>代码>工作量乘以<代码>内插(…)<代码>金额工作。换句话说,静态地猜测您需要执行的最大并行细粒度作业是什么。然后将内核配置为使用块线程执行这些细粒度作业。请注意,这只是一个猜测,而不知道您的程序代码