As profquail said, you can use emulation mode to test your programs. Beware ,however, that sometimes I have been getting completey erroneous results with emulation mode, while the GPU code ran flawlessly. So I could’t tell how reliable emulation mode is, but definitely the way to start if you don’t have a compatible GPU yet.
There was an Nvidia slideshow containing slide that said CUDA 2.1 should be able to run on multi-core processors as well. I don’t have the link, but a rigurous search through the forums might reveal it. As of right now, CUDA 2.1 is already in beta, and no multi-core support, so I don’t know if it will happen soon.