Some time ago I asked about using icc with nvcc.  You can use icc with nvcc by passing it as an argument:

nvcc -ccbin /path/to/icc

Has anybody tried building PETSc with CUDA this way?

John