I am evaluating CUDA Quantum; the goal is to build and run with multi-GPU support the example script
cuquantum_backends.cpp located in examples/cpp/basics inside the official container image.
On an HPC system, I reserve 2 GPUs from a DGX Ampere and use
enroot as container engine.
I build as follow with no errors:
nvq++ cuquantum_backends.cpp -o cuquantum_backends.x --qpu cuquantum --platform mqpu
as shown in GTC talk: Inside CUDA Quantum.
To the original code I added the following:
auto &platform = cudaq::get_platform(); printf("Num QPU %zu\n", platform.num_qpus());
From the code execution I get
[ ... ] Num QPU 1
I understood that through cuQuantum library, each GPU simulates a QPU, thus I would expect a
[ ... ] Num QPU 2
As a check I ran
nvidia-smi both inside and outside the container, and both GPUs are seen, so to me it seems that the code sees only one QPU/GPU.
I see many possibilities for the code to behave in this way, among those are
enroot and me missing something in how CUDA Quantum and cuQuantum work. Does anyone as any suggestion?
Thanks for helping