dmlc / dmlc/xgboost

Known issues with NCCL.

Open
#11,154 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
28.8k
Forks
8.9k
Avg merge
1d 12h
Merged PRs (30d)
54

Description

- 2.28 nccl doesn't have the `__file__` attribute for the nccl module. XGBoost from PyPI may fail to load nccl. (Workaround in XGBoost: https://github.com/dmlc/xgboost/pull/11806)
- Allgather inside XGBoost might fail when NCCL P2P is enabled, reproduced using 2.27. Workaround: disable NCCL P2P.
- 2.24.x and 2.25.x might crash XGBoost due to the RAS module. Fixed in 2.26
Workaround: `export NCCL_RAS_ENABLE=0`
* https://github.com/dmlc/xgboost/blob/3a2a85da38f8440903c2f5c06711be07c8143245/ops/pipeline/test-python-wheel-impl.sh#L48
* https://github.com/dmlc/xgboost/blob/461d27c1834c8dff42ce23b8c11b4de206cd71d2/ops/docker_run.py#L73

- Linux GPU driver 560 might hang p2p communication in nccl, or make it extremely slow.
Workaround:
* ~Update to 570~ (not solved) Disable P2P for now `NCCL_P2P_DISABLE=1`.
* Use `cuda-samples/Samples/5_Domain_Specific/p2pBandwidthLatencyTest` to check your p2p channel is working correctly.
* Check the correct BIOS configuration.

- With NCCL >= 2.24, you might run into an unhandled CUDA error reported by NCCL if your system doesn't support P2P communication.
Workaround:
Check `CUDA_VISIBLE_DEVICES` is correctly set. You should not split GPUs into different partitions:
* good: `CUDA_VISIBLE_DEVICES=1,0` to use the GPU with ordinal `1` as default (instead of `0`)
* bad: `CUDA_VISBLE_DEVICES=1`

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.