"Core" isn't even really that well defined for CPUs, look at the controversy over whether AMD's new architecture is 4 clusters with 8 cores, or if you should really count the the clusters as cores but with two threads each.
A good way to do it might be to count the number of structures that can independently schedule memory operations, in which case AMD is correct to call their chips 8 core, but if you use that definition then the "512 core" GPUs are suddenly only 32 cores. Or you could count independent execution units so that the GPU is still 512 cores, but then your "4 core" CPU is now suddenly 12 cores.
A good way to do it might be to count the number of structures that can independently schedule memory operations, in which case AMD is correct to call their chips 8 core, but if you use that definition then the "512 core" GPUs are suddenly only 32 cores. Or you could count independent execution units so that the GPU is still 512 cores, but then your "4 core" CPU is now suddenly 12 cores.