gpt4 book ai didi

c - 为什么我们无法访问主机端的设备内存?

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:23 24 4
gpt4 key购买 nike

我问了一个问题Memory allocated using cudaMalloc() is accessable by host or not?虽然现在我已经很清楚了,但我仍然想知道为什么无法访问主机中的设备指针。我的理解是 CUDA 驱动程序负责 GPU DRAM 内部的内存分配。所以这个信息(即我在设备中分配内存的第一个地址是什么)可以传达给主机上运行的操作系统。然后就可以访问这个设备指针,即分配的设备内存的第一个地址。我的理解有什么问题?请帮助我理解这一点。谢谢你

最佳答案

GPU 显存位于 PCIE 总线的另一端。现代 PC 架构中主机内存的内存 Controller 直接连接到 CPU。

因此访问方法有很大不同。当访问 GPU 上的内存时,事务必须被构造为一系列 PCIE 周期。设置 PCIE 总线以影响此事务的事件并未内置于现代 CPU 中的普通内存获取周期中。

因此,我们需要软件交互(由 cudaMemcpy 处理)来完成软件序列,该序列将对 PCIE 总线上的周期进行编程,以发送或获取总线另一端的数据。

关于c - 为什么我们无法访问主机端的设备内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19193159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com