【发布时间】:2014-01-08 19:42:58
【问题描述】:
在 CUDA 代码中,您可以通过零复制访问主机端内存。根据维基百科的下图,访问请求通过北桥并在不中断 CPU 的情况下完成。
- GPU(至少在理论上)是否可以独立于 CPU 访问 I/O 等南桥组件?据我在实践中所知,在 CUDA 编码期间(目前)是不可能的。
- 基于this Wikipedia 链接,2014 代名为 Maxwell 的 CUDA 设备内部将配备 ARM CPU。如果上述问题的答案是肯定的,那么这个 ARM CPU 可以控制或通信 I/O 多少?
【问题讨论】:
-
我想这在很大程度上取决于 I/O 端口和/或 MMIO 范围是否可以完全独立于 CPU。如果可以,并且 CUDA 不限制您可以访问的地址,那么您可能会有机会。 (不过,我不了解 CUDA,所以这一切都只是在吐槽。)
-
第一个问题的简短回答是否定的。对于第二个问题,NVIDIA 尚未公开宣布 Maxwell 架构的详细信息,因此如果您要求提供非公开信息,那么这不是一个合适的 SO 问题。此外,由于第一个问题的答案是否定的(请参阅我对罗杰答案的评论),并且您将第二个问题的前提是“如果上述问题的答案是肯定的......”,那么您的第二个问题似乎没有实际意义。
-
Nvidia 尚未包含此功能(到目前为止)的答案很明确。我的问题是即使在理论上也不可能?与南桥的所有通信都必须仅由 CPU 发起吗?此外,当 GPU 可以直接访问主机 RAM 而不中断 CPU 时,为什么我们不能通过内存映射 IO 使 GPU 与 IO(例如鼠标)通信? (对不起,我的问题可能很幼稚。)
标签: cuda hardware gpu gpgpu nvidia