所以,我想知道如何使用 threadfence,我想阅读有关 threadfence 的示例代码。
请告诉我有关 threadfence() 的示例代码
我相信当我想访问内存是CUDA5.5中设备端的内核功能时,我想进行独占控制。
我了解到,如果我使用所谓的“()__threadfence”,则可以进行独占控制,但我不知道如何使用。
· 我能做些什么?
(现在,“__threadfence()”出现未定义标识的错误)
·我在哪里写的源代码上的代码。因为我想我想专门控制你想在下面的代码中访问 Log_d 的地方。
其他线程我想阻止在“锁定开始”~“锁定停止”以下代码之间访问 Log_d 的内存,例如。
我在 CPU 端代码中定义了块和线程。块:1,1,1 和线程:256,1,1
__global__ void matrix_vector_multi_gpu_1_256(float *A_d, float *B_d, float *C_d, float *Log_d){
int i;
A_d[threadIdx.x]=0.0F;
for(i=0;i<N;i++){
A_d[threadIdx.x]=A_d[threadIdx.x]+B_d[threadIdx.x*N+i]*C_d[i];
}
//lock Start about Log_d
//__threadfence();
for(int j=0;j<N;j++){
if(Log_d[j]==0){
Log_d[j]=threadIdx.x + 1;
break;
}
}
//Stop the lock
}