__shared__ float products[THREADS_PER_ACTION];
// some computation
products[threadIdx.x] = localSum;
// wait for everyone to finish their computation
__syncthreads();
// then a (basic, ugly) reduction:
if (threadIdx.x == 0) {
float globalSum = 0.0f;
for (i = 0; i < THREADS_PER_ACTION; i++)
globalSum += products[i];
}
Ben bu durumda uçucu olması
products
gerekiyor mu: Ben
volatile
tüm değerleri önbelleğe asla derleyici söyler, ama benim sorum paylaşılan dizi davranışı hakkında olduğunu anlıyoruz? Sadece önbellek onu derleyici dizinin tamamı önbelleğe olabilir ve bu yüzden
volatile
olmaya gerek, ya olacak o mümkün mü herşey iplik 0. tarafından okunan sonunda hariç her dizi girişi yalnızca tek iş parçacığı tarafından erişilir elementler?
Teşekkürler!
Güzel cevap, ben hafıza-eskrim hakkında bilmiyordum. Teşekkür ederim! –