Я пытался использовать функцию atomicMin
в CUDA / C ++, используя разделяемую память потоков, вывод «0» всегда независимо от того, какой массив я ввожу. Может кто-нибудь помочь мне исправить это, если есть какая-то ошибка в синтаксисе или использовании указателей, или, возможно, я неправильно использую функцию. Вот код:
__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 ) ;
}
}
}