我们能知道哪个块/线程找到设备内存的最小值吗?

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 演示了一种并行归约方法,该方法可以找到矩阵的每一行的最大值和索引。

【讨论】:

以上是关于我们能知道哪个块/线程找到设备内存的最小值吗?的主要内容,如果未能解决你的问题,请参考以下文章

哪个版本的Linux占硬盘空间最小?

cpu个数、核数、线程数的关系

可以修改min()来选择大于0的最小值吗

Ford-Fulkerson 算法找到哪个最小割?

Codeforces Round #379 (Div. 2)

python 学习