How to use nvlink in ucx #9896
-
May I ask if ucx uses cuda_ipc for intra node GPU communication? There are two transmission methods: get_copy and put_copy. There are two issues with this:
Thank you for your assistance and guidance! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Yes all intra-node inter-GPU communication as long as CUDA allows mapping peer GPU's memory between the two GPUs. On most PCIe and all NVLINK-connected systems, this is true. You can use
On many systems which have cuda-ipc realized over PCIe instead of NVLINK, get performance is slower than puts so we want to force protocols layer to use only puts under such circumstances. So when checking if get_zcopy operations should be used, we check if NVLINKs are present and if not, we effectively disable get operations. Put should be used regardless of nvlink or pcie for all cases where cuda-ipc is eligible.
Yes. They are used unconditionally.
Yes and yes. |
Beta Was this translation helpful? Give feedback.
Yes all intra-node inter-GPU communication as long as CUDA allows mapping peer GPU's memory between the two GPUs. On most PCIe and all NVLINK-connected systems, this is true. You can use
nvidia-smi topo -m
to check reachability between GPUs.On many systems which have cuda-ipc realized over PCIe instead of NVLINK, get performance is slower than puts so we want to force protocols layer to use only puts under such circumstances. So when checking if get_zcopy operations should be used, we check if NVLINKs are present and if no…