【发布时间】:2016-06-29 19:00:07
【问题描述】:
它明确提到 Tegra TX1 具有共享内存。我的问题: CPU 和 GPU 之间是否共享内存?或者是GPU中不同块之间共享的内存。
【问题讨论】:
它明确提到 Tegra TX1 具有共享内存。我的问题: CPU 和 GPU 之间是否共享内存?或者是GPU中不同块之间共享的内存。
【问题讨论】:
CPU 和 GPU 具有相同的内存系统。也就是说,系统 DRAM 内存也与分配 GPU 全局内存的物理内存相同。零拷贝、Unified Memory等多种技术也可以基本消除系统内存数据和GPU全局数据之间的逻辑区别。
此外,Tegra TX1 中的 GPU 与所有支持 CUDA 的 GPU 一样,具有 CUDA 共享内存。这是在特定块中的线程之间共享的内存,但不在 GPU 中的不同块之间共享。 GPU 中不同块之间共享的主要内存系统是全局内存系统,如前所述,它在 Tegra TX1 上(物理上)与系统 DRAM 内存相同。
【讨论】:
如果你已经使用 cudamalloc() 分配了内存块,那么是。它会自动在 CPU 和 GPU 之间共享 Global-Memory。
请不要将其与称为“共享 MEM”的 CUDA 本地内存混淆。 {在同一个 BLOCK 的线程之间共享}。
记住:CUDA 中的 “共享内存” 是 GPU 的 SM 单元内的 TURBO 速度 可编程缓存! :-)
【讨论】: