CPU和GPU内存共享

3

如果(离散的)GPU有自己的视频RAM,则必须将数据从RAM复制到VRAM才能使用它们。但是,如果GPU与CPU集成(例如AMD Ryzen)并共享内存,则我是否仍然需要进行复制,还是两者可以交替访问同一内存块?

3个回答

3

在集成显卡的情况下可以避免复制,但这个功能是平台特定的,不同厂商可能有所不同。

如何通过最小化Intel®处理器图形缓冲区复制来提高性能文章介绍了如何在Intel硬件上实现这一点:

要创建零复制缓冲区,请执行以下操作之一:

使用CL_MEM_ALLOC_HOST_PTR,让运行时为您创建零复制分配缓冲区

如果您已经有数据并希望将数据加载到OpenCL缓冲区对象中,则使用CL_MEM_USE_HOST_PTR和在4096字节边界(对齐到页面和缓存行边界)上分配的缓冲区以及总大小为64字节的倍数(缓存行大小)。

从主机读取或写入这些缓冲区的数据时,请使用clEnqueueMapBuffer(),对缓冲区进行操作,然后调用clEnqueueUnmapMemObject()。


2

GPU和CPU内存共享? GPU有多个核心但没有控制单元,而CPU通过控制单元控制GPU。专用GPU有自己的DRAM=VRAM=GRAM,比集成RAM更快。当我们说集成GPU时,意味着GPU放置在与CPU相同的芯片上,CPU和GPU使用相同的RAM内存(共享内存)。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接