CUDA プログラミング ガイドには、次のように記載されています。
the driver API is backward compatible, meaning that applications, plug-ins, and libraries (including the C runtime) compiled against a particular version of the driver API will continue to work on subsequent device driver releases
私のコードがCUDA4でコンパイルされた場合、バイナリはCUDA5で実行されると理解しています。ただし、CUDA5 でコンパイルされたバイナリを CUDA5 で実行すると、次の結果が得られることが判明しました。
error while loading shared libraries: libcudart.so.4: cannot open shared object file: No such file or directory
Linuxの「モジュール」機能を使用して、異なるcudaバージョン間で切り替えることに注意してください。
module load cuda4
compile
module unload cuda4
module load cuda5
run