gpt4 book ai didi

cuda - GPU从CPU读取还是CPU写入GPU?

转载 作者:行者123 更新时间:2023-12-02 06:22:04 26 4
gpt4 key购买 nike

我是并行编程的初学者。我有一个问题,可能看起来很愚蠢,但当我用谷歌搜索时,我没有得到明确的答案。

在 GPU 计算中,有一个设备(即 GPU)和主机(即 CPU)。我编写了一个简单的 hello world 程序,它将在 gpu 上分配一些内存,将两个参数(例如 src[] 和 dest[])传递给内核,将 src 字符串(即 Hello world)复制到 dest 字符串,并从 gpu 获取 dest 字符串主人。

字符串“src”是由GPU读取还是CPU写入GPU?另外,当我们从GPU返回字符串时,GPU是写入CPU还是CPU从GPU读取?

在来回传输数据时,有四种可能性1.CPU到GPU - CPU写入GPU - GPU从CPU读取2.GPU到CPU - GPU写入CPU - CPU 从 GPU 读取

有人可以解释一下哪些是可能的,哪些是不可能的吗?

最佳答案

在早期版本的 CUDA 和相应的硬件模型中,GPU 更严格地说是 CPU 拥有的协处理器; CPU将信息写入GPU,并在GPU准备就绪时将信息读回。在较低级别,这意味着实际上所有四件事都在发生:CPU 将数据写入 PCIe,GPU 从 PCIe 读取数据,GPU 然后将数据写入 PCIe,CPU 读回结果。但事务是由CPU发起的。

最近(CUDA 3?4?甚至可能从 2 开始?),其中一些细节从应用程序级别隐藏起来,因此,GPU 代码可以有效地导致传输以与CPU可以。考虑统一虚拟寻址,程序员可以通过它访问 CPU 和 GPU 内存的统一虚拟地址空间。当 GPU 请求 CPU 空间中的内存时,必须启动来自 CPU 的传输,本质上是从 CPU 读取。从CPU端将数据放到GPU上的能力也被保留。基本上,现在在顶层,所有方法都是可能的(在底层,它基本上与往常一样的协议(protocol):从 PCIe 总线读取和写入,但现在,GPU 也可以启动事务)。

关于cuda - GPU从CPU读取还是CPU写入GPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299784/

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