gpt4 book ai didi

memory - CUDA 纹理内存空间

转载 作者:IT王子 更新时间:2023-10-28 23:37:05 25 4
gpt4 key购买 nike

当我将数组绑定(bind)到 CUDA 中的纹理时,

  1. 该数组是否复制到纹理空间?或者,
  2. 该数组引用是纹理吗?

如果答案是 1,那么我可以绑定(bind)一个纹理并从纹理内存空间中安全地获取数据,同时将结果写入分配在全局内存中的数组。

如果答案是 2,那么纹理内存是否是一个全局内存空间,用于缓存和空间获取数据?

我想知道这个话题,因为我看到了一些与这个话题相关的问题,但我现在还不清楚答案。

提前致谢。

最佳答案

答案是第二种选择,但从那里开始,事情变得更加复杂。没有“纹理内存”之类的东西,只有通过专用硬件访问的全局内存,其中包括 GPU 读取缓存(每个 MP 6-8kb,具体取决于卡,请参阅 Cuda 编程指南附录 F 中的表 F-2)以及一些硬件加速的过滤/插值操作。在 CUDA 中可以通过两种方式使用纹理硬件:

  1. 将线性内存绑定(bind)到纹理,并使用 1D 提取 API 在内核中读取纹理。在这种情况下,纹理硬件实际上只是充当读取缓存,并且 (IIRC) 没有可用的过滤操作。
  2. 创建一个 CUDA 数组,将线性内存的内容复制到该数组,并将其绑定(bind)到纹理。生成的 CUDA 数组包含线性源的空间排序版本,以某种(未记录)space filling curve 的形式存储在全局内存中。 .纹理硬件提供对该数组的缓存访问,包括使用硬件加速过滤的同时内存读取。

您可能会发现 David Kanter 编写的 GT200 架构概述值得一读以更好地了解实际架构如何实现 API 公开的内存层次结构。

关于memory - CUDA 纹理内存空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6647915/

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