Commit Graph

1039 Commits

Author SHA1 Message Date
Mustafa Abduljabbar 88652b53d0 Add fix for WarpSpeed auto mode (#2104)
[ROCm/rccl commit: 5787c960fc]
2025-12-12 17:56:52 -05:00
Mustafa Abduljabbar 2621e0254e [Device] WarpSpeed enablement and single node CU and perf opt for MI350 (#2073)
[ROCm/rccl commit: d009ab144e]
2025-12-11 19:04:35 -05:00
Ahmed Khan f17357d0d4 Add ncclCommDump API (#2068)
* Add ncclCommDump API

* remove trailing whitespace changes

* Add more proxy trace timestamps

* Add facebook_rccl namespace before proxyTrace timestamp call

* Clean up ProxyTrae construction

* Move updateProxyOpCounter to member function

* Move setProxyOpTimestamp to member function

* Move addNewProxyOp to member function

* Make internal methods private

* Make ProxyTrace thread safe

* Fix unit tests

* Fix overwritten ProxyTrace DONE setting in net.cc

[ROCm/rccl commit: 08dd75712f]
2025-12-11 15:02:35 -07:00
Mustafa Abduljabbar 085752d6e5 Add WAIT_PEER NPKIT event (#2100)
[ROCm/rccl commit: 2cf6a9bb19]
2025-12-11 11:18:41 -05:00
Atul Kulkarni a364ada6e7 Add missing header in alloc.h (#2086)
[ROCm/rccl commit: 892d258319]
2025-12-04 11:26:19 -06:00
Wenkai Du 3e650467fa Use one side stream per process (#2063)
* Use one side stream per process

* Handle multiple GPUs per process

* Reset stream when not found

* Address review comments

* Fix missing mutex initializer

[ROCm/rccl commit: 185e78a8f0]
2025-12-02 10:03:15 -08:00
corey-derochie-amd 8e3f60e080 Add copyright to src/device/symmetric/all_reduce.cuh (#2080)
[ROCm/rccl commit: 4acd0f64ea]
2025-11-27 14:29:21 -07:00
isaki001 cf11e2f39f add back missing proxy-counter updates (#2052)
[ROCm/rccl commit: da183596cd]
2025-11-25 15:22:34 -06:00
AbandiGa d6087d0d62 Fix rcclNetP2pPolicy issue (#2072)
* fix rcclNetP2pPolicy issue

* change the comment to ncclNetIb

[ROCm/rccl commit: b14e32c46e]
2025-11-21 18:28:10 -06:00
Matt Williams 7456dc7d17 Fix ToC in API Library page (#2053)
* Add intro and remove ToC

[ROCm/rccl commit: 3495baa6b2]
2025-11-20 09:35:15 -05:00
Pedram Alizadeh 3d2fc04b45 Using hip_bf16.h instead of hip_bfloat16.h for the __bf16 intrinsic (#2037)
* Using hip_bf16.h instead of hip_bfloat16.h for the __bf16 intrinsic

* Switching to hip_bf16.h from ROCm 6.0.0

[ROCm/rccl commit: fb67e5b467]
2025-11-13 15:56:18 -05:00
AbandiGa 7f7c8d14f6 Disable Bfloatf16 pipelining for reduction collectives for gfx950 (#2047)
* disable bf16 reduce_copy pipelining for gfx950

* edit CHANGELOG

* Combine unroll and pipeline local arch calculation into single function

* fix multi-node error and disbale for gfx950 even if it's not a local build

* removed has_gfx950

* disable pipelining for gfx950 in rcclSetPipelining

---------

Co-authored-by: Ghadeer Alabandi <galaband@cv350-zts-gtu-h30-08.prov.gtu.zts.cpe.ice.amd.com>
Co-authored-by: Ghadeer Alabandi <galaband@cv350-zts-gtu-h30-18.prov.gtu.zts.cpe.ice.amd.com>
Co-authored-by: Ghadeer Alabandi <galaband@cv350-zts-gtu-h28a-08.prov.gtu.zts.cpe.ice.amd.com>

[ROCm/rccl commit: 277b6e9bac]
2025-11-13 14:55:09 -06:00
isaki001 9a81823515 Post thread-block size increase tuning (#2042)
* for multinode gfx950, extend AR LL128 up to 256MB, extend RS LL128 up to 8MB per rank, extend AG LL up to 64KB per rank

* dont override direct allgather threshold if set to -1

* restore 2-node AR simple at earlier message sizes than higher multi-node AR

* extend range of LL for single-node RS on gfx950

* update algo/proto for multi-node allreduce on gfx942

* set single-node AR on gfx950 to Tree LL for KB message sizes

* decrease threshold for single node Tree for gfx950 AR

[ROCm/rccl commit: 0d09f86608]
2025-11-13 14:51:04 -06:00
Bertan Dogancay 48f37be1e3 [Launch] Move cudaEventRecord call to capturing stream only (#2050)
[ROCm/rccl commit: 83ffc82fa7]
2025-11-13 08:38:09 -06:00
gilbertlee-amd 22d9a038a2 [GRAPH] Adding support for rail-optimized trees for MI3XX with 4 NICs (#2031)
[ROCm/rccl commit: 46b032b760]
2025-11-12 19:34:27 -06:00
Dingming Wu 0d3fba9a22 Adjust nChannels on gfx950 based on ranks and nodes for better bandwidth (#2027)
[ROCm/rccl commit: b811645688]
2025-11-11 09:46:51 -06:00
Gheorghe-Teodor Bercea 3da73a7526 Fix compilation when enabling indirect function calls (#1994)
Fix compilation when enabling indirect function calls.

[ROCm/rccl commit: 1678bb9ae7]
2025-11-11 09:36:48 -05:00
Mustafa Abduljabbar b12399898d Reduce LL threshold for a2a (#2032)
[ROCm/rccl commit: 52f9526bd6]
2025-11-10 19:14:23 -05:00
Kapil S. Pawar 6bbc4b5d48 [RcclReplayer] Compile without the need for RCCL to be compiled (#2039)
[ROCm/rccl commit: acdafac49f]
2025-11-10 15:38:48 -06:00
Dingming Wu 23870ceccd Fail the job if flag HIP_HOST_UNCACHED_MEMORY is not set on MI350x (#2023)
* Fail the job if compiler flag HIP_HOST_UNCACHED_MEMORY is not turned on on mi350x
Place the check after initTransportsRank as the GPU arch info in comm->topo->nodes info is populated after that.

* Update src/init.cc to use ERROR instead of WARN
Co-authored-by: Nilesh M Negi <Nilesh.Negi@amd.com>

[ROCm/rccl commit: 05f914c997]
2025-11-10 11:54:35 -06:00
Dingming Wu c601f9b3f8 Increment opCount for intra-node comms as well (#2024)
* Enhance logging in NCCL initialization
It's convenient to log comms obj and default channels together for debugging

* Add opCount to collDevWork and update increment logic
Added opCount to collDevWork and incremented it when proxyOpQueue is empty (e.g., for intra-node comms)

* Clarify opCount increment logic in enqueue.cc
Updated comment to clarify incrementing opCount for intranode communications.

* Refactor NCCL_INIT logging format
Updated logging format for NCCL_INIT to improve clarity.

* Remove duplicate INFO logging in init.cc

[ROCm/rccl commit: b00ee4c83c]
2025-11-10 11:23:49 -06:00
Bertan Dogancay b955a7df40 [GEN/BUILD] Refactor generator script and reduce build time for old archs. (#2030)
[ROCm/rccl commit: b1e680adc0]
2025-11-07 15:15:25 -05:00
Bertan Dogancay 524453baea [Launch] Enable Implicit order launch with serial mode (#2033)
[ROCm/rccl commit: a9bb7e9807]
2025-11-07 13:29:53 -05:00
Ghadeer Ahmed H Alabandi 5b66480595 [NET] Enable capping the number of QPs created for send/recv colls (#1998)
[ROCm/rccl commit: 45991fadad]
2025-11-07 00:47:01 +00:00
alex-breslow-amd bd614458c3 [gfx950] Turn On Single Node One Slice Optimization for gfx950 and MI300A (#2017)
* Internal benchmarking shows nice single-node performance uplift for MI300A and MI350

[ROCm/rccl commit: 56e0b4e445]
2025-11-06 12:12:45 -08:00
Arm Patinyasakdikul 25005c1cce proxy: handle progressOps return code properly. (#2029)
[ROCm/rccl commit: d6a53d2022]
2025-11-04 09:09:50 -06:00
nawrinsu 6d22ce9b1a Fix protocol and channel override when tuner is used (#1985)
* Fix protocol and channel override when tuner is used

* Added comment

* Fix README for basic tuner implementation

[ROCm/rccl commit: 166268d715]
2025-11-03 13:56:34 -08:00
Nilesh M Negi dd625edf56 Revert "[GEN/BUILD] Refactor generate.py and reduce build time for older archs (#2006)" (#2021)
This reverts commit 40f3faead0.

[ROCm/rccl commit: 62ab7a22d7]
2025-10-31 10:04:12 -05:00
David DeBonis 3e750f0f57 Single-node AllGather and ReduceScatter Optimization (#2019)
* Single-node performance tuning

* Normalizing value to individual rank

[ROCm/rccl commit: 63d5846452]
2025-10-31 08:59:46 -06:00
Arm Patinyasakdikul 54194a17c3 Added ERROR message class to handle fatal error messages. (#2002)
* Added ERROR message class to handle fatal error messages.

New ERROR message class will print the message in all debug level,
including none.

Change some of the fatal error message to be in ERROR instead of WARN.

Added new error handler function to print out more meaningful error
message in the future.

* Added CHANGELOG entry.

* Update CHANGELOG.md

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

* Change to no longer reuse NONE as ERROR. ERROR is now a separated class.

* Update CHANGELOG.md

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

---------

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

[ROCm/rccl commit: 1ce83d5cc0]
2025-10-30 16:14:20 -05:00
Arm Patinyasakdikul 03e92dc942 Added copyrights for Palamida scan 7.2. (#2018)
[ROCm/rccl commit: 84fdcab68a]
2025-10-30 13:33:20 -05:00
isaki001 9bccbcd619 P2p batching hang-fix (#2011)
* prevent batching when send/recv bytes dont match, restore bit reversal for channel to part mapping, prevent batching beyond 32-nodes

* correct computation for channel to part mapping

* update changelog

* disabling p2p-batching by default

[ROCm/rccl commit: 641c0eb51c]
2025-10-30 13:32:01 -05:00
isaki001 678366f5e2 gx950 multi-node tuning for LL/LL128 (#1953)
* increased LL threshold for gfx950 AR to 256KB

* AG/RS proto threshold update

[ROCm/rccl commit: 72996e4d9f]
2025-10-30 12:08:12 -05:00
Bertan Dogancay 40f3faead0 [GEN/BUILD] Refactor generate.py and reduce build time for older archs (#2006)
[ROCm/rccl commit: bed7cdf863]
2025-10-30 11:45:53 -04:00
Nilesh M Negi 03d37f6305 Fix gfx950 gating conditions to match ROCm 7.0.2 (#2003)
[ROCm/rccl commit: 8444b3c6e9]
2025-10-29 23:27:04 -05:00
Mustafa Abduljabbar eb0b1387b7 [Device] Adjust threadblock size for gfx950 to increase LL64/Simple performance for AR, RS and AG (#1978)
* Add initial commit to increase tb size to 512
* Fix LL perf issue when subset of NCCL_MAX_NTHREADS is used
Adding a constant to barrier_generic logic from using fallback logic when nthreads < NCCL_MAX_NTHREADS and nthreads == blockDim.X
* Adjust nthreads for LL
* Opt threads for reduce_scatter upper small range
* Add macro for single node
* Restrict MSCCL to 256 threads to prevent mem access fault
* Support pre-MI350 compatibility
* Partially refactor threadblock size override
* Use const macros instead of numerals
* opt out of unused function

[ROCm/rccl commit: 12f51ba8bf]
2025-10-29 23:24:32 -05:00
alex-breslow-amd f7405b8739 Remove nontemporality from stores, put in casts to global address space (#1982)
* Implements casting key loads and stores to address_space(1) so that vector global load and store instructions are emitted by the compiler instead of more costly flat loads and stores
* Removes nontemporality from some key stores for gfx950.

[ROCm/rccl commit: e69b11eba5]
2025-10-28 10:34:48 -07:00
mberenjk 96c62b091d Add support for additional paths in RCCL DMABUF kernel configuration loading (#1825)
* Adding more path to the kernel load and an environment variable to force enable DMABUF

---------

Co-authored-by: Marzieh Berenjkoub <mberenjk@amd.com>

[ROCm/rccl commit: b58f234539]
2025-10-20 13:35:22 -07:00
Nilesh M Negi 0aa56fb0a5 Fix ncclDevFuncId for AllReduceWithBias (#1980)
[ROCm/rccl commit: c35bc721ad]
2025-10-17 09:28:57 -05:00
Arm Patinyasakdikul fca120343f Disable graph mode memory registration and UBR as unsupported feature. (#1977)
[ROCm/rccl commit: 58eca5d7f8]
2025-10-17 09:18:39 -05:00
Rahul Vaidya 307f787244 [Profiler plugin] Fix segfault issue with profiler plugin (#1973)
* Fix profiler plugin segfault by correctly setting p2p->func

* Look for librccl-profiler.so instead of libnccl-profiler.so

Signed-off-by: rahulvaidya20 <ravaidya@amd.com>

---------

Signed-off-by: rahulvaidya20 <ravaidya@amd.com>
Co-authored-by: Yongjie Qiu <Yongjie.Qiu@amd.com>

[ROCm/rccl commit: 624f68b2b2]
2025-10-16 16:33:18 -05:00
alex-breslow-amd a5256e6219 MSCCL: Unland PR1788 + Fix for MSCCL Data Corruption (#1960)
- Earlier fix PR1788 is no longer necessary after ROCr fix and pre-ROCr fix workaround
- Inserts an s_waitcnt vmcnt(0), which fixes a data corruption issue in MSCCL

[ROCm/rccl commit: 154350baaf]
2025-10-15 10:32:25 -07:00
gilbertlee-amd bb85692891 Enabling gdrcopy option for gfx950 (#1955)
[ROCm/rccl commit: fedddb452c]
2025-10-15 10:55:25 -06:00
alex-breslow-amd 455d516dc4 [gfx950] Make bypassing __threadfence the default for multinode. (#1947)
* Gate based on ROCM version, safe for ROCm 7.0.2 and beyond.
* Updates naming to gfx9CheapFenceOff since we use this for gfx942 and gfx950.  Thanks Nilesh.
* Add info logging statement to NCCL_INIT to print whether enabled when INFO logging is enabled.

[ROCm/rccl commit: c70f5b4621]
2025-10-15 09:15:36 -07:00
isaki001 6d151d4e21 gfx950 channel tuning for ReduceScatter and AllGather (#1940)
* add channel thresholds to override channel-count adjustments

[ROCm/rccl commit: 0f99fd84a3]
2025-10-14 09:50:44 -05:00
mberenjk 433251272b fixing the ar_with_bias test issue when running rccl-tests (#1912)
* fixing the AR_With_Bias issue when running rccl-tests

[ROCm/rccl commit: e738c03e39]
2025-10-13 13:58:21 -07:00
Arm Patinyasakdikul 0407f294e9 Fix unroll factor display bug. (#1969)
[ROCm/rccl commit: ff75860d73]
2025-10-10 15:35:06 -05:00
Surya Periaswamy 014fae1b51 MSCCL++ fix split path null deref (#1959)
* Add speriaswamy-amd to CODEOWNERS
* MSCCL++: fix split path null deref; key maps by parent ncclUniqueId
* removed no-op

[ROCm/rccl commit: 5bd5079de1]
2025-10-09 14:08:38 -05:00
Rahul Vaidya 8e5016ebfd Fix LL128 proto selection to respect user setting (#1822)
[ROCm/rccl commit: 6b200ee6c5]
2025-10-09 14:08:03 -05:00
Nusrat Islam d6d5fac152 Update direct AG and single node LL threshold (#1944)
* update AG direct and single node LL threshold

* update thresholds based on MI350 expeirmental results

* disable using LL for direct AG

* enable direct AG for lower GPU counts

* direct AG single node tuning

* fix in-place buffer allocation for AG unit test

* whitespace fix

* gate direct AG for gfx950 and gfx942

---------

Co-authored-by: Nusrat Islam <nusislam@nova-login-gtu2.prov.gtu.zts.cpe.ice.amd.com>

[ROCm/rccl commit: d22a39e954]
2025-10-09 10:48:50 -05:00