For example, it could be that while NVIDIA is planning to drop support for 32-bit Windows, it might continue to include nvcuda32.dll with its drivers for 64-bit Windows. Just as it does now. So that 32-bit CUDA code would continue to run in a 64-bit environment.
The above indicates a misunderstanding. The key learning in my comment comes after that first "Yes, it is the same thing." sentence: 32-bit Manifold runs in a 32-bit Windows context that 64-bit Windows opens, as it does whenever you launch a 32-bit program within 64-bit Windows. That's a 32-bit world so everything has to be 32-bit in that context.
There is no such thing as 32-bit CUDA code running in a 64-bit environment, not now and not in the future. 32-bit CUDA code only runs within a 32-bit environment. nvcuda32.dll is not a driver for 64-bit Windows. It is a 32-bit driver that is used exclusively within 32-bit Windows. Whenever you launch 32-bit code, whether that is a driver or an application or whatever, it may seem to run within 64-bit Windows but in reality it is running within 32-bit Windows. It is part of the cleverness of 64-bit Windows that people think their 32-bit applications are "running in 64-bit Windows" when in reality they are running in 32-bit Windows. When Microsoft introduced 64-bit Windows they knew perfectly well there were no applications that could run in 64-bit Windows. So they put effort into a key feature within 64-bit Windows that enables it to more-or-less seamlessly launch 32-bit Windows as a host environment for 32-bit applications. That is one reason why when 32-bit applications run they run with all the unreliability and other issues attendant to 32-bit Windows. Running a 32-bit application (or driver or whatever...) means you are running 32-bit Windows. It literally is the same thing. I should note that exploiting widespread ignorance about how that works is an essential part of deceptive marketing practices. For example, ESRI for many years would tell people "we support 64-bit Windows" in a way that gave the impression their products could actually run 64-bit. Nonsense. Their products remained 32-bit products which ran within 32-bit Windows even if your machine was loaded with 64-bit Windows, and thus their 32-bit products had all the limitations of 32-bit memory and significantly lower reliability of 32-bit Windows. When you launch 32-bit software in a Windows installation you launch that within 32-bit Windows, whether or not what you have loaded on your machine is a 64-bit Windows operating system. Conceptually, it is somewhat like running a PC application on a Mac, where a virtual machine emulator launches Windows to run that application. In this case, it is just 64-bit Windows seamlessly launching a 32-bit Windows instance to allow your 32-bit code to run.
|