我有一个例程,旨在在三种处理模式中的任何一种下调用;SingleCpuThread、ParallelCpuThreads 和 ParallelGpuThreads。
在例程中,使用 Alea.DeviceFunction 执行数学运算,以便在 ParallelGpuProcessing 模式下调用例程时与 Alea 兼容。
问题:当在其他两种模式下调用相同的例程,并且使用 DeviceFunction 执行数学运算时,是否使用 Gpu 并产生开销和编组等?如果是这样(这会很糟糕),让同一个例程使用 dot net 的 .Math 函数而不是 .DeviceFunction 的最佳方法是什么,而不需要为单独的 Cpu-happy 和 Gpu-happy 版本的例程复制整个例程?