【发布时间】:2015-01-10 07:39:42
【问题描述】:
我刚刚进入 GPU 处理领域。
我想知道是否可以锁定一个新进程,或者“启动”一个锁定到 CUDA 核心的进程?
例如,您可能有一个小型 C 程序,它对图像索引执行图像过滤器。您能否让该程序在基本上永远运行的每个 CUDA 内核上运行 - 从它自己的内存读取/写入系统内存和磁盘?
如果可能,对 CPU 性能有何影响 - 我们可以完全抵消 CPU 使用率还是 CPU 仍需要一些输入/输出?
我在这里的语义可能很离谱。如果我所说的需要一些解释,我深表歉意。我还不太习惯 GPU 的东西。
谢谢。
【问题讨论】:
-
在此评论中,CUDA 线程不能保证与除它们自己的线程块中的线程之外的任何线程同时运行。这包括您可能希望在假设示例中尝试与之通信的 CPU 线程。您可能能够得到一些碰巧起作用的东西,但这种行为将不受支持。也就是说,如果系统决定更改程序中的线程调度,您的程序可能会中断。此外,CUDA 线程通常无法进行系统调用,例如访问磁盘所需的系统调用。
-
CUDA 线程可以通过网络发送数据包吗?
-
不确定;一般来说,可能不会。您可能希望了解 CUDA 的“GPUDirect”功能。