【发布时间】:2011-11-06 15:37:04
【问题描述】:
我只发现了一个说法,本地内存比寄存器内存慢,每线程两个类型。
共享内存应该很快,但它是否比[线程的]本地内存快?
我想要做的是一种中值过滤器,但使用给定的百分位数而不是中值。因此,我需要获取列表中的大块,对它们进行排序,然后选择一个合适的。但是我无法开始对共享内存列表进行排序,否则会出错。仅复制到本地内存会损失很多性能吗?
【问题讨论】:
-
这与编程无关,是吗?我也没有看到 Mathematica 标签的强链接。
-
@Sjoerd C. de Vries:在 CUDA 的上下文中,这是一个与编程相关的问题——架构具有非统一的内存空间,程序员必须明确选择应该使用哪些内存类型和访问方法在他或她编写的任何代码中使用。这是 CUDA 编程的基本原则。
-
@talonmies 我明白这一点,但这个问题仍然不是关于以编程方式选择内存、API 的差异、编程寄存器与编程共享内存等。它基本上是关于哪种内存类型更快。这是一个硬件问题。我觉得 OP 应该改写这个问题,例如他的问题是在 CUDA 中使用共享内存找到某个百分比的数据。
-
嗯,我在mathematica 中通过其出色的cudalink 功能执行此操作,该功能可让您将cuda 直接写入mathmatica,这是一项非常常见的使用mathematica 的任务,但可以肯定。
标签: c cuda gpu gpu-shared-memory gpu-local-memory