【发布时间】:2019-03-13 11:32:09
【问题描述】:
我无法获得使用 atomicMin 的正确语法。我想用这个函数对双精度而不是整数进行操作。
__global__ void npd(int *a, int *g)
{
int index = threadIdx.x;
__shared__ int d[N];
d[threadIdx.x]=a[index];
__syncthreads();
int dd;
int inn;
int u;
if( 0==threadIdx.x )
{
for( int u = 0; u<16; u++ )
{
atomicMin( g, d ) ;
}
}
}
【问题讨论】:
-
没有内置的,但是您可以使用一些漂亮的技巧来创建自己的:stereopsis.com/radix.html
-
这个 Devtalk 论坛帖子似乎给出了一个解决方案,我没有测试它,试试看:devtalk.nvidia.com/default/topic/492068/atomicmin-with-float
-
docs.nvidia.com/cuda/cuda-c-programming-guide/… -- 文档清楚地表明对于任何浮点类型(单或双)都没有 atomicMin
-
@talonmies 我认为这个问题没有你回答的那么字面意思。 OP 可能知道它不存在,并正在寻求有关如何实现它的帮助。
-
要求“正确的语法”听起来不像.....
标签: cuda gpu atomic minimum double-compare-and-swap