Search code examples
cudagpumemory-addresswin32-process

Can I use CUDA in 32 bit windows?


Currently we're adding some extensive processing to an existing embedded PC with 4GB ram, running 32 bit Windows.

We have a 'huge' input matrix (100MB), and would like to apply an intensive learning algorithm to it. Therefore we want to use a GPU.

However, rumour has it that adding a graphics card will cause Windows to assign +3GB (a lot) of memory space to the graphics card.

This would mean that I either have to port everything to 64bit, or live with the remaining 700MB on the host.

So the question: is this true? Does CUDA force me to either give up memory space, or make everything 64bit ready?


Solution

  • As from CUDA Toolkit documentation from the Nvidia's website :

    Native development using the CUDA Toolkit on x86_32 is unsupported.

    What you can do is :

    • x64 development on a x64 machine
    • x32 cross-development on a x64 machine

    So, in both cases, you need a x64 machine and a x64 version of the Windows Operating System.

    You can check what I pasted here, and a lot more, on the CUDA Toolkit installation guide concerning Windows.

    Edit : It seems you completely rewrote your question. Since you still don't provide the exact hardware you are working on, it's difficult to answer correctly. What you need to know is :

    • Desktop graphics card have their own dedicated memory
    • Embedded graphics need to have a dedicated memory space in the system memory

    I don't know how you assumed it will be 3 of the 4 GB of system memory. But, even if it was, it will not prevent you to run a program using several GB of memory if you have the correct parameters of pagefile in the system configuration. If caching on the hard drive occurs, you will have very poor performances (unless it's on a very fast SSD), but nothing that will prevent your program for running.