On godbolt what I observe is that if I compile a trivial code with -m32
compiler switch to nvcc
, that on CUDA 11.8 I get a warning message like this:
nvcc warning : Compiling in the 32-bit mode is deprecated and may not be supported in future releases
when I compile the same code on CUDA 12.0 I get a message:
nvcc warning : Compiling in the 32-bit mode is unsupported, relevant compiler option will be removed in an upcoming release
and on CUDA 12.2:
nvcc fatal : Unknown option ‘-m32’
which seems to be roughly consistent with your nvidia custhelp link.
Even if the nvcc
compiler-driver supports -m32
switch, there will be other necessities to compile a 32-bit code, including host compiler support, host standard library support, and CUDA library support. Many of these depend on what you actually install and are outside of NVIDIA control, from a CUDA toolkit perspective.
The support for 32-bit development was removed gradually. If I were working on a 32-bit code, I would probably try to install an environment (OS, host compiler, CUDA toolkit version) that would be consistent with probably something like CUDA 8.x or earlier, and fully 32-bit. See here.
Note that in the past (and still, based on what I see in that custhelp link), NVIDIA also delineated a distinction between “development” support and runtime support. Development support would require the things I mentioned above. Runtime support would require host OS support, an appropriately compiled application, and provision of appropriate 32-bit libraries, for host as well as CUDA.
We can also observe another distinction of support for 32-bit applications and support for 32-bit OS. I believe the support fore 32-bit OS was dropped even earlier. 32-bit OS support was dropped after CUDA toolkit 6.5 from what I can see here.
I wouldn’t be able to give a recipe for how to compile (or run) a 32-bit application in any modern setting (it may be possible; I don’t know.) If I were trying to do that, as I mentioned, I would probably try to “resurrect” an “ancient” setup.