How to address the CUDA cores?


Since we have so many cores on GPU, can we address the GPU cores?

More specifically, can I somehow control the number of cores that I want to use? Can I assign or choose certain cores to run a certain kernel function?


You can’t . The progamming model deliberately abstracts that level of hardware detail away.

You could not launch specific KERNEL on each cuda core, but at least you could launch different kernel in parallel, with CUDA 4.x.
You could also aggregate code for different functions, and use a simple test if( threadIdx.x=ANY_CONSTANT ) { … a cuda core… } else { … other cuda core … } to launch specific code on any cuda core, but you have to think in term of warp and group processing to avoid sequential execution between the 2 branches.

Specifically, I have parts of my code that do memory prefetching and write-back, or other kinda “cron” within a kernel, and I group them within a specific warp, the first one of the first block, to be sure it will be executed whatever the number of cuda core or block are launched.