Graf commitů

974 Commity

Autor SHA1 Zpráva Datum
corey-derochie-amd 375a2a009b Added an implementation of ncclSymGetKernelPtr for when GENERATE_SYM_KERNELS is not defined, as it is normally generated code. (#1925)
[ROCm/rccl commit: 9b04b2a42f]
2025-09-19 07:52:33 -06:00
corey-derochie-amd ebcc75f118 Moved latency_profiler license into subdirs and updated NOTICES. (#1918)
[ROCm/rccl commit: ed095cad35]
2025-09-18 12:54:39 -06:00
Venkateshwar Reddy Kandula 1a0657f347 due nccl api sync update RCCL_API_TRACE_VERSION_PATCH to 2 (#1916)
[ROCm/rccl commit: 0cc896910e]
2025-09-18 07:36:50 -06:00
Nilesh M Negi d354caecb9 [INIT] Use rocm-smi API instead of CLI for querying FW version (#1920)
[ROCm/rccl commit: da06c69cb8]
2025-09-17 19:17:19 -05:00
Karthik Ganesan 8f4703c0cc Update prims_simple.h to keep header file access to rccl_metadata.h uniform (#1906)
Header files in device/ folder are directly referenced in the code base except here.

[ROCm/rccl commit: 740dfd1efd]
2025-09-16 08:58:50 -05:00
Bertan Dogancay 546b37e35a [BUILD] Stop generating sym kernels by default (#1907)
* Stop generating sym kernels by default

[ROCm/rccl commit: 93d86dd8e3]
2025-09-15 12:19:35 -04:00
mberenjk 84833f8472 disabling msccl for fp8 datatype (#1888)
* disabling msccl for fp8 datatype

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

[ROCm/rccl commit: ada4e12360]
2025-09-11 13:09:34 -05:00
Wenkai Du 94b53a03ac Treat PIX and PXB as same GDR distance (#1894)
[ROCm/rccl commit: de9ebd8a8b]
2025-09-11 10:44:10 -05:00
isaki001 9fa7a738da add reduce/broadcast algo/proto selection table for multi-node gfx940 (#1889)
[ROCm/rccl commit: 9c36439354]
2025-09-10 14:25:23 -05:00
Wenkai Du 2577b33de8 Enable LL128 and use same tuning table for gfx942 4 NICs (#1898)
[ROCm/rccl commit: c2bccf9156]
2025-09-10 11:11:15 -04:00
Mustafa Abduljabbar 1a7ab8dfc8 Force enable proto and/or algo after model selection (#1799)
* Force enable proto or algo

* Remove inc nccl_common.h

* Move logic and add error checks

* Fix topo_expl compatibility

* Allow algo/proto overrides

* Remove extra function decl

* Clarify warning message

* Move algo/proto overrides into separate functions

* Update CHANGELOG.md

[ROCm/rccl commit: 7ccc6f268f]
2025-09-03 08:54:13 -04:00
ycui1984 1999f2eba8 [rocm_regression] Return errors when HSA_NO_SCRATCH_RECLAIM=1 even for rocm>=6.4.0 (#1867)
* [rocm_regression] Return errors when HSA_NO_SCRATCH_RECLAIM=1 even for rocm >= 6.4.0
* [rocm_regression] Check firmware version
* [rocm_regression] Resolve review comments
* [rocm_regression] Move hsa env checking into init once func
* [rocm_regression] Prevent hot fix version in firmware
* [rocm_regression] Improve unit tests

[ROCm/rccl commit: 361d596229]
2025-08-29 11:18:23 -05:00
BertanDogancay 881327184e Merge remote-tracking branch 'nccl/master' into develop
[ROCm/rccl commit: 08a7be231b]
2025-08-28 15:46:28 -05:00
Nusrat Islam fde5d7a8be Device allocation tracker (#1878)
* alloc: add memory allocation tracker

* alloc: add tracker for ncclCuMemAlloc() APIs

* alloc: add null pointer check during free

[ROCm/rccl commit: df448862c3]
2025-08-27 09:30:51 -05:00
Mustafa Abduljabbar f37f290134 [Device] Add dynamic fetch/reduce pipelining for reduction collectives - Simple protocol (#1861)
* Support pipelining codegen and template specialization

* Support ReduceCopy pipelining for AllReduce, ReduceScatter, and Reduce (currently enabled for bfloat16)

* Remove need for FUNC_INDEX_TOTAL

* Add pipeline field to device function key construction logic

* Avoid unneeded codegen for LL/LL64 kernels

* Modify conditions and add pipeline dtypes env

* Optimize selection for both gfx942 and gfx950

* Increase pipeline bitfield width

* Use __forceinline__ for all device functions

* Realign reduceCopy with original form

* Add opt-out option to enable perf debugs

* Remove force-reduce-pipelining option from README

* Update CHANGELOG.md

---------

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

[ROCm/rccl commit: 277747c199]
2025-08-26 15:03:54 -04:00
Nusrat Islam c7fce9b0eb fixup: remove extra semicolon (#1881)
[ROCm/rccl commit: b882af9ffd]
2025-08-26 10:57:25 -05:00
Nusrat Islam 1af94eee8d Add direct allgather algorithm (#1868)
* add direct allgather algorithm

* minor fix

* add debug print for memory allocation tracker

* add message size threshold for direct allgather

* scatter transfers across ranks

* update changelog

* minor fix

* Update CHANGELOG.md

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

* enable direct AG when pxn is ON on MI300X or MI350

---------

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

[ROCm/rccl commit: 5e7937effb]
2025-08-25 07:55:10 -05:00
Nilesh M Negi fbe014c870 [BUILD] Populate host_table entries only for 1 unroll (#1871)
[ROCm/rccl commit: bf6660ee4e]
2025-08-23 00:15:38 -05:00
Arm Patinyasakdikul 3a544ed5f4 Removing "Could not find any local path from gpu X to net." warning (#1866)
* Removing "Could not find any local path from gpu X to net." warning to avoid confusion.

[ROCm/rccl commit: 28a83c3ea6]
2025-08-20 16:52:35 -05:00
Arm Patinyasakdikul d4fecfb0be Remove noinline attribute from reduceCopyPacks and (#1864)
reduceCopyPacksWithBias.

[ROCm/rccl commit: fb882e80f6]
2025-08-19 20:24:31 -05:00
Mustafa Abduljabbar 5025a9aab9 Have ncclDevFuncId use 64-Bit keyed map with field packing (#1857)
- Updated ncclDevFuncId to use a hash-based lookup with std::unordered_map.
- Keys are now 64-bit integers, which pack coll, algo, proto, devRedOp, and type fields.
- Improved flexibility and maintainability by moving away from row-based indexing.
- Added error handling for missing keys in the hash map.
- Aligned key generation logic with generate.py and updated generate.py.

[ROCm/rccl commit: c1b3cd8911]
2025-08-19 16:41:19 -04:00
Nusrat Islam e4c025e5cd device: optimize threadfence for ll64 protocol (#1858)
* device: optimize threadfence for ll64 protocol

* device: use __atomic_signal_fence()

---------

Co-authored-by: Nusrat Islam <nusislam@useocpslog-003.amd.com>

[ROCm/rccl commit: 6ade5065b4]
2025-08-18 09:16:41 -05:00
Nilesh M Negi ed4abedf7b [DEVICE] Use noinline for LLGenericOp only on gfx950 (#1849)
[ROCm/rccl commit: c3b8de4ec8]
2025-08-15 15:15:02 -05:00
isaki001 2e9a2d1762 [TUNING] gfx950 16N tuning (#1835)
* change gfx950 algo/proto selection for multinode allreduce, allgather, reduceScatter
* gfx950 tuning: enable tuning for broadcast, allreduce starts LL128 earlier and switches to ring earlier, change LL128 start for allgather and reduceScatter
* lower LL128 threshold
* update reduceScatter LL128 min to match LL max for consistency
* enable multinode PXN and increase chunksize for gfx950
* change LL128 start to 128KB, adjust ring-start according to node-count
* disable code-path for fused-AR on LL128 for gfx950
* use LL128 starting from 1KB for multinode allgather on gfx950
* start LL128 earlier for multinode reduceScatter on gfx950
* start LL128 earlier for multinode broadcast on gfx950
* set multinode allreduce to start simple on 64MB for gfx950
* start LL128 from 1KB for multinode broadcast on gfx950
* setting multinode AR to use tree instead of ring at 16MB, 64MB, 128MB
* set multinode broadcast to use LL for up to 256KB depending on node-count for gfx950
* adjust algo for 32MB  multinode allreduce on gfx950
* make 32MB tree LL128 for multinode AR on gfx950
* make sure ring is not picked on 2N allreduce on small sizes

[ROCm/rccl commit: 44121db890]
2025-08-15 15:12:45 -05:00
alex-breslow-amd dc3a0c5242 Disable the __threadfence on the sender side of the simple protocol when possible. (#1830)
Leverages the traits of extended-scope fine-grain memory to get rid of a device-scope acquire-release fence.  This improves throughput for single node workloads on gfx942 and gfx950 for some input sizes (e.g., ~32 MiB to about 256 MiB) when using the simple protocol.  Multinode workloads on MI300X see a smaller but statistically significant uplift for some message sizes.  Runtime disablement is supported via setting the environment variable RCCL_GFX942_CHEAP_FENCE_ON to 0.

[ROCm/rccl commit: 1aa2570b48]
2025-08-15 07:54:54 -07:00
mberenjk c76a4492f1 Added useAcc as a template parameter to address the performance regression (#1856)
* Added useAcc as a template parameter to address the 2% performance regression in allreduceWithBias
---------

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


[ROCm/rccl commit: c61152baa4]
2025-08-14 15:58:54 -05:00
Karthikeyan Arumugam 16d0871985 Add cstring header explictly as it is removed from HIP (#1859)
[ROCm/rccl commit: 6d41e5ba99]
2025-08-13 15:14:22 -07:00
isaki001 52d33058bb enable more events for LL128 NPKIT trace collection (#1827)
[ROCm/rccl commit: 74d82a8145]
2025-08-07 11:19:36 -05:00
Avinash f34d760613 Compiler warnings fix 2 (#1801)
* Changes to device code

* Changes to src/misc

* Changes to graph

* src/include changes

* src/transport changes

* changes in init, enqueue, proxy

* Changes to CMakeLists.txt

* Additional changes to device code

* Additional changes to net.cc

* adding 'compiler warning' tag to ease upstream merge'

* typo correction

* Addessing comments

* Additional changes for new commits

[ROCm/rccl commit: 3f8cac388e]
2025-08-05 17:36:23 -05:00
Arm Patinyasakdikul df3b7e477f Disable context tracking for the current version. (#1839)
[ROCm/rccl commit: 6fc228e247]
2025-08-04 10:48:00 -05:00
Nilesh M Negi be810f10f3 [DEVICE] Add unroll=2 for gfx950 multi-node (#1824)
[ROCm/rccl commit: bd55f876e9]
2025-07-31 02:35:26 -05:00
ycui1984 39c508b80d Add collective latency profiler (#1785)
* [LatencyProfiler] Initial commit

* [LatencyProfiler] Add unit tests

* [LatencyProfiler] add more

* [LatencyProfiler] Pass unit tests

* [LatencyProfiler] Add hooks to integrate with meta internal tools

* [LatencyProfiler] Restore install.sh

* [LatencyProfiler] Resolved comments 1. add proper license 2. use proper namespace

* [LatencyProfiler] Add header

[ROCm/rccl commit: 874cd657ef]
2025-07-30 14:59:28 -07:00
Mustafa Abduljabbar cafd7a5126 Optimize alltoall for 64 GPUs and above for gfx942 (#1828)
Add pxn and p2p net chunksize mi300x tuning

[ROCm/rccl commit: 4ce3df8d3a]
2025-07-30 15:14:43 -04:00
mberenjk cca5172260 Upcast FP8 to Half (FP16) for Sum Operation (#1775)
* adding hadd and hadd2 support using builtin functions.

---------

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

[ROCm/rccl commit: c84ee3d298]
2025-07-29 11:33:06 -05:00
Sarat Kamisetty 1719aa67be passing down NET_OPTIONAL_RECV_COMPLETION hint to n/w plugin to enable optimizations (#1752)
Co-authored-by: Sarat Kamisetty <sakamiset@amd.com>

[ROCm/rccl commit: 783c073a03]
2025-07-25 10:26:58 -05:00
Mustafa Abduljabbar b3a0cc5e96 Add optional bf16 software-triggered pipelining for reduceCopyPacks (#1758)
- Introduced double-buffering to reduce copy overhead and overlap BF16 arithmetic with data prefetching.
- Aimed to improve performance of reduction-based collectives by up to 10%.
- Implemented based on recommendations from Guennadi Riguer (AMD)
- Added --force-reduce-pipeline option to install.sh to activate this optimization for BF16 reductions.
- Feature is disabled by default to prevent regressions with large messages until auto-tuning logic is upstreamed.
---------

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

[ROCm/rccl commit: 0ce20e7e07]
2025-07-25 10:57:05 -04:00
Atul Kulkarni bd53bdf447 Added new unit tests for src/transport/shm.cc (#1689)
[ROCm/rccl commit: 1c3d1b3842]
2025-07-25 05:54:42 -05:00
Arm Patinyasakdikul 866058c6d9 Fix segfault when libibverbs returns 0 device. (#1820)
Fix: SWDEV-543816

[ROCm/rccl commit: 3c9c22bb52]
2025-07-23 15:18:52 -05:00
Wenkai Du caff9764d3 Support fused all reduce and elementwise operations (#1729)
* Support fused all reduce and elementwise operations

Add additional "acc" parameter to RCCL Replayer logs

Add flag which indicates availability of new API

* Fix Recorder json parsing

* Remove unreachable code

* Remove extra acc pointer check

* .

* Revert "[DEVICE] Adding ability to choose unroll factor at runtime (#1734)"

This reverts commit 4cadf3597c.

* Use noinline to reduce kernels linking time

* Don't use noinline for gfx942 and gfx950 to avoid perf regression

---------

Co-authored-by: AtlantaPepsi <timhu102@amd.com>
Co-authored-by: BertanDogancay <bertan.dogancay@gmail.com>

[ROCm/rccl commit: 9a4213356d]
2025-07-23 09:04:17 -07:00
alex-breslow-amd cbb648505a Cheaper threadfence for gfx942 in postPeer [1/N]: enable for single node allreduce (#1766)
Boosts single node bfloat16 allreduce performance by up to 20% for some data sizes and provides gating with the RCCL_GFX942_CHEAP_FENCE_OFF environment variable

[ROCm/rccl commit: 11fabf1de1]
2025-07-22 07:15:15 -07:00
Rahul Vaidya bd63518944 Add datatype validation for MSCCLPP AllGather (#1816)
Signed-off-by: rahulvaidya20 <ravaidya@amd.com>

[ROCm/rccl commit: c28d3d26a3]
2025-07-21 11:50:45 -05:00
Atul Kulkarni c94fb7c58e Code coverage improvements (#1665)
* Increased max stack size to 640

* Added new binary for executing unit tests

Added new unit tests for argcheck.cc and alt_rsmi.cc files

Modified the method to execute unit tests to cover static methods
by using a bash script to convert static to non-static functions
and variables on the fly restricted to debug build type.

[ROCm/rccl commit: 275fdd43c1]
2025-07-17 11:20:49 -05:00
Nilesh M Negi 2c0c02b211 [GRAPH] Match maxChannels for gfx942 CUs (#1302)
[ROCm/rccl commit: 6632183efe]
2025-07-16 09:07:02 -05:00
Wenkai Du 670966f86b Fix inline compilation issue with LL (#1806)
[ROCm/rccl commit: 106024b0db]
2025-07-15 08:39:18 -07:00
isaki001 a20e65cfc0 gfx950 updated on LL thresholds for allreduce/allgather, update treeCorrection (#1803)
* change LL thresholds for allreduce/allgather and update treeCorrectionFactor

* update allGather LL cutoff

* adjust allgather LL/LL128 thresholds

[ROCm/rccl commit: 8d0f1a1cef]
2025-07-15 09:10:19 -05:00
Wenkai Du e2ad96bb96 Disable P2P net option by default (#1793)
[ROCm/rccl commit: 708ad75f7a]
2025-07-14 08:55:39 -07:00
Bertan Dogancay d4aafe31fa [GEN] Fix typo in IFC code gen (#1796)
[ROCm/rccl commit: 7158adb57f]
2025-07-11 09:19:39 -04:00
Nilesh M Negi 41c985462c [BUILD] Use fmt-header instead of libfmt (#1791)
[ROCm/rccl commit: 6b4ad0fd74]
2025-07-10 17:19:53 -05:00
Nilesh M Negi ba31e4e846 [INIT] Fix fallback for unsupported user-specified runtime unroll factor (#1780)
* [INIT] Fix fallback for unsupported user-specified runtime unroll factor
* Add CollTrace guard
* Move `commSetUnrollFactor()` to rccl_wrap.cc
* Modify comments in the device-code generator script

[ROCm/rccl commit: 2c099fe29a]
2025-07-10 10:56:18 -05:00
Nilesh M Negi 1050eb13ac [DEVICE] Fix validation errors for multi-node LL with gfx950 non-coherent system memory (#1795)
[ROCm/rccl commit: 68d6f99e0f]
2025-07-10 09:05:46 -05:00