我们能知道哪个块/线程找到设备内存的最小值吗?
Posted
技术标签:
【中文标题】我们能知道哪个块/线程找到设备内存的最小值吗?【英文标题】:Can we know which block/thread find the minimum value of the device memory? 【发布时间】:2013-08-25 19:42:12 【问题描述】:cudaatomicMin
操作似乎只能找到设备内存主干的最小值。但是,无论如何要找到哪个块/线程最终找到这个最小值?我有compute-2.0。
【问题讨论】:
【参考方案1】:如果你对一个 32 位的值做atomicMin
,你可以对一个 64 位的值使用广义原子操作,其中 32 位表示最小化的值,其中 32 位表示全局索引线。概述了通用方法here。
由于 64 位 atomicMin
是 only supported on cc 3.5 devices,我假设您正在找到 32 位最小值。
如果您使用的是 64 位值,则可以使用并行归约技术在归约过程中同时携带最小值(或最大值)和索引。 This question/answer 演示了一种并行归约方法,该方法可以找到矩阵的每一行的最大值和索引。
【讨论】:
以上是关于我们能知道哪个块/线程找到设备内存的最小值吗?的主要内容,如果未能解决你的问题,请参考以下文章