Can I avoid syncronising all threads when threads in the same warp diverge?
example
if(threadid & 31 == 0) {
do stuff, including setting shared data, eg
shared[threadid/32] = calculated value;
}
all threads now try and use shared[threadid/32]
note this is a different index for each warp.
Do we need to explicitly tell all threads to wait
until all copies of shared have been updated?
Or will hardware force divergent threads to resync
before any of them try and use their warp’s index
into array shared?
Thank you
Bill
Dr. W. B. Langdon,
Department of Computer Science,
University College London
Gower Street, London WC1E 6BT, UK
http://www.cs.ucl.ac.uk/staff/W.Langdon/
CIGPU 2012 CIGPU-2012 WCCI-2012 IJCNN-2012, CEC2012
EvoPAR 2012 EvoPAR 2012 EvoStar track on Parallel Architectures and Distributed Infrastructures
EuroGP 2012 30 Nov
RNAnet http://bioinformatics.essex.ac.uk/users/wlangdon/rnanet/
A Field Guide to Genetic Programming
http://www.gp-field-guide.org.uk/
GP EM Genetic Programming and Evolvable Machines | Home
GP Bibliography The Genetic Programming Bibliography