#define HIPCUB_ARCH 1试一试
我在对一个程序进行编译时出现了如下图问题:
dtk版本为dtk-22.10.1程序的部分代码为
GPU_GLOBAL void k_reduction_rvec( rvec *input, rvec *results, size_t n )
{
extern __shared__ hipcub::BlockReduce<double, DEF_BLOCK_SIZE>::TempStorage temp_block[];
rvec data;
unsigned int i;
i = blockIdx.x * blockDim.x + threadIdx.x;
if ( i < n )
{
rvec_Copy( data, input[i] );
}
else
{
rvec_MakeZero( data );
}
data[0] = hipcub::BlockReduce<double, DEF_BLOCK_SIZE>(*temp_block).Sum(data[0]);
__syncthreads( );
data[1] = hipcub::BlockReduce<double, DEF_BLOCK_SIZE>(*temp_block).Sum(data[1]);
__syncthreads( );
data[2] = hipcub::BlockReduce<double, DEF_BLOCK_SIZE>(*temp_block).Sum(data[2]);
if ( threadIdx.x == 0 )
{
#if !defined(GPU_ACCUM_ATOMIC)
rvec_Copy( results[blockIdx.x], data_s[0] );
#else
atomicAdd( (double *) &results[0][0], (double) data[0] );
atomicAdd( (double *) &results[0][1], (double) data[1] );
atomicAdd( (double *) &results[0][2], (double) data[2] );
#endif
}
请问如何解决该问题

暂无数据