i add the same .cu file to project under VS2017(cuda9) . when i choose the project compile in 64bit, it can successfully compile and run. but when i choose 32bit, it shows error and fail.
The table above the cited paragraph shows that cross-development is supported for MSVS 2012 and MSVS 2013, but is not supported for MSVS 2015 and MSVS 2017.
I can only point you to the documentation regarding 64-bit → 32-bit cross development, I have no personal experience with that. I have worked exclusively with 64-bit code for the past five years.
NVIDIA has been gradually reducing 32-bit support over the past three years or so. I think with CUDA 9 it is now completely gone on Linux. I would strongly suggest moving all CUDA development to 64-bit at your earliest convenience.
We are at the tail end of things moving from 32-bit to 64-bit (even Firefox is now a 64-bit app). So you might want to think about transitioning away from that 32-bit DLL before 32-bit support in CUDA disappears completely.
Note that with a 32-bit CUDA application, you will be able to use only 3+ GB of the GPU memory.