Граф коммитов

213 Коммитов

Автор SHA1 Сообщение Дата
Wenkai Du abf265a911 Rework barriers and adjust scope of atomics (#1019) 2024-01-04 08:18:48 -08:00
Ziyue Yang 0a53077c9c Improve MSCCL algorithms (#1023) 2024-01-03 14:51:34 -08:00
akolliasAMD f4858e14b2 rearranged how the min and max functions are part of msccl (#1025)
* rearranged how the min and max functions are part of msccl

* added more coverage on in place graph tests
2023-12-21 08:58:33 -07:00
Wenkai Du 81602814a7 msccl: fix data corruption with MTYPE_RW (#1014) 2023-12-11 20:33:15 -08:00
Wenkai Du 7965c8b53c Fix memory fence and use non-temporal store (#1007)
* Fix memory fence and use non-temporal store

* Use amdgcn builtin instead of inline asm

* Move threadfence location

* Revert changes to gfx90a

* Rework gfx90a change

* Apply changes to gfx94x
2023-12-09 12:16:08 -08:00
Wen-Heng (Jack) Chung baadda4bd8 Relax workgroup barrier implementation for MSCCL send/recv ops. (#997)
* Trim logic.

* Revert "Trim logic."

This reverts commit 8f2dba6c764108acf2bf5428366b9f41d4d206b9.

* Introduce MSCCL template parameters to send / recv.

* Address review feedbacks.
2023-12-08 17:46:53 -06:00
Wenkai Du 12c08fc52a msccl: build same number of kernels as in ROCm 5.7 (#1005)
Removed fullOps kernels from build
2023-12-07 13:36:04 -06:00
Bertan Dogancay 7c0f49a878 IFC mix build (#998) 2023-12-02 18:49:52 -07:00
Wenkai Du 4ba65d1d6a Increase max channles to 64 (#993) 2023-12-01 16:01:11 -08:00
akolliasAMD 56ce9ef05f recreated pr 914 to work with current develop branch (#979) 2023-11-28 16:33:47 -07:00
Wenkai Du 569d3f7d59 msccl: allocate scratch as ext-scope fine-grained (#968) 2023-11-16 09:57:25 -06:00
Ziyue Yang df128879a6 Optimize MSCCL reduce primitive switching for gfx942 (#962)
* Optimize reduce primitive switching for gfx942

* address comment
2023-11-15 08:18:44 -08:00
Wenkai Du 5a800e00cd msccl: enable basic collective trace (#959)
To avoid increasing number of kernels, colltrace is only enabled with
RCCL_MSCCL_FORCE_FULLOPS=1
2023-11-08 20:14:28 -08:00
Wen-Heng (Jack) Chung efc42d9045 Use send instead of sendWithBarrier. (#727) 2023-11-07 13:47:24 -06:00
Nusrat Islam 022735d208 Merge pull request #950 from nusislam/msccl-red2
msccl: remove cases from numReduction switch statement
2023-11-04 02:48:03 -05:00
Wenkai Du dbcba2923b Use parallel init of LDS and adjust P2P channels for gfx94x (#943)
* Use parallel init of LDS and adjust P2P channels for gfx94x

* Move another init to parallel

* Fix NCCL_NCHANNELS_PER_PEER setting
2023-11-03 16:06:49 -07:00
Nusrat Islam f545b94d4b msccl: remove cases from numReduction switch statement 2023-11-03 16:56:51 -05:00
Wenkai Du bb84345943 msccl: use 32-bit LDS access and add RCCL_MSCCL_FORCE_FULLOPS (#953) 2023-11-03 10:38:02 -07:00
Wenkai Du f484ff17b9 msccl: add templated kernel (#945)
* msccl: add templated kernel

* Use defines to improve code readability

* Fix kernel indexing and review feedback
2023-11-02 17:21:53 -07:00
Nusrat Islam 6b80a0d0d4 msccl: remove dereference of reduce args
It can be removed because the msccl kernel will never execute this code
according to the current msccl setup.
2023-11-02 13:20:00 -05:00
Wenkai Du a7400218a2 msccl: use atomic to set dependency flags (#941) 2023-10-31 14:46:57 -07:00
Wenkai Du a497722894 NPkit: misc fixes for MSCCL (#936)
* msccl: add xcc_id to timestamp sync

* NPKit: add timestamp for rrc operator

* NPKit: add timestamp for MSCCL init
2023-10-30 10:00:12 -07:00
Wenkai Du dbb5611a3a Remove LDS based software barriers from MSCCL (#923) 2023-10-19 16:39:41 -05:00
Wenkai Du 39812ce757 NPKit: add xcc_id field (#918) 2023-10-13 15:24:59 -07:00
Wen-Heng (Jack) Chung 7ee5c1c28b Change MSCCL kernel signature to allow kernel arguments be preloaded via SGPR (#911)
* Adding a script that will download/compile/run TransferBench/RCCL/UCX/RCCL-tests/RCCL-Unittests/hip-mpi-testsuite (#895)

Co-authored-by: Pedram Alizadeh <pmohamma@banff-pla-r27-05.pla.dcgpu>

* Only build gfx941

* demo

* fine tune malloc

* Fix merge errors

* Fix merge errors

* Disable parallel build

* Adopt --amdgpu-kernarg-preload-count

* Revert "Adding a script that will download/compile/run TransferBench/RCCL/UCX/RCCL-tests/RCCL-Unittests/hip-mpi-testsuite (#895)"

This reverts commit f5e252dddf02a41b4d1bc512f306f45f97166304.

* Revert CMake changes.

* NPKIT changes.

* Remove some license declarations.

* Address code review feedbacks on msccl_kernel_impl.h

* Update CMakeLists.txt

* Add CMake logic to check the existence of --amdgpu-kernarg-preload-count

* Fix NPKIT trace logic.

---------

Co-authored-by: Pedram Alizadeh <pmohamma@amd.com>
Co-authored-by: Pedram Alizadeh <pmohamma@banff-pla-r27-05.pla.dcgpu>
Co-authored-by: Ziyue Yang <ziyyang@microsoft.com>
2023-10-12 20:17:08 -05:00
Wenkai Du 26e982d913 Reduce NPKit latency overhead in MSCCL kernel (#893)
* Reduce NPKit latency overhead in MSCCL kernel

* Fix build error without NPKit enable
2023-09-15 13:28:26 -07:00
Andy li e1dc4d5e42 enable hip graph on multi-node (#884)
* initial checkin

* enable msccl when hip graph is on

* remove the commented out code of msccl enable check

* clean up the code

* remove the msccl HighestTransportType check logic
2023-09-11 15:30:04 -07:00
Nusrat Islam a283f55f12 msccl: add NPKIT profiling for MSCCL send-recv 2023-09-08 13:11:16 -05:00
Pedram Alizadeh e7f27c66e0 optimizing COLL_UNROLL for MI100 machines (#863) 2023-08-29 12:49:06 -04:00
Wenkai Du 6a0a6a37d9 Use relaxed atomics for LL on GFX11 (#859) 2023-08-21 16:28:39 -07:00
Wenkai Du f70e3e569b gfx11: don't use LL for sendrecv (#853)
* gfx11: don't use LL for sendrecv

* Use builtin instead of inline asm
2023-08-17 08:50:51 -07:00
Ziyue Yang d33a70e620 NPKit update (#844)
* NPKit update

1. Enable NPKit for MSCCL kernels
2. Fix NPKit context index calculation for sendrecv kernels

* Update build script for npkit
2023-08-08 17:30:40 -07:00
Wenkai Du 8e58b65873 gfx11xx: disable LL protocol to workaround mtype issue (#840) 2023-08-04 07:53:07 -07:00
Wenkai Du 60efe26549 Fix merge error and replace inline asm (#838) 2023-08-03 13:46:40 -07:00
Wenkai Du c8085eb704 Improve collective trace (#835) 2023-08-03 07:16:12 -07:00
Wenkai Du 3db371c9a5 Revert "Enable Ll128 on gfx90a (#823)" (#829)
This reverts commit 420f8af6a0.

Also increase number of parallel jobs for linking
2023-07-27 20:25:18 -07:00
Wenkai Du 420f8af6a0 Enable Ll128 on gfx90a (#823) 2023-07-26 11:44:15 -07:00
Wenkai Du 4d20b4b758 Replace atomicExch with __atomic_store_n (#818)
* Replace atomicExch with __atomic_store_n

* Remove extra semicolon
2023-07-25 11:15:21 -07:00
Nusrat Islam 47f754e6f5 Merge pull request #810 from nusislam/tune-send-recv
device: fine-tune RCCL send-recv on MI250/MI200
2023-07-25 10:18:12 -05:00
Wenkai Du a7fcd58a97 Enable gfx94x (#808) (#816)
(cherry picked from commit 94da229a7788d74685d1591a4e75a8341de64f41)
2023-07-21 07:31:27 -07:00
Nusrat Islam b2a0a0bd3a device: fine-tune RCCL send-recv 2023-07-17 21:45:52 -05:00
Nusrat Islam 58e53dfd37 device: fine tune MI200/MI250 simple protocol performance
With Simple protocol, unroll factor of 4 offers better
performance for most of the collectives (on MI200. MI250, and
MI300) except large message allreduce with Ring algorithm
on MI250 and MI200). This PR changes the default unroll factor
to 4 while adding fine tuning for reduction operations.
2023-07-08 20:21:18 -05:00
Wenkai Du ce6a2ffac8 Merge pull request #782 from ROCmSoftwarePlatform/2.18.3
Sync up with NCCL 2.18.3
2023-06-29 15:04:16 -07:00
akolliasAMD 9bba4a2f2a added npkit support into the all_gather run ring algorithm (#790) 2023-06-29 13:59:54 -06:00
Wenkai Du abd0615351 Merge remote-tracking branch 'nccl/master' into develop 2023-06-26 22:51:56 +00:00
Bertan Dogancay 0c77c66221 Disable Colltrace for --fast option (#778)
* Disable Colltrace for --fast option

* Limit nprocs for CI
2023-06-21 14:16:09 -06:00
gilbertlee-amd 52a28ff2fc Switching to using atomicAdd_system within kernel for collective trace (#780) 2023-06-20 17:49:52 -06:00
Nusrat Islam 3a741787bf device: use unroll factor based on platforms 2023-06-14 13:36:15 -05:00
Bertan Dogancay f35777e9b0 improve compilation time and create timetrace plot (#773)
* improve compilation time and create time-trace plot

* set default value for nproc
2023-06-14 09:17:51 -06:00
Sylvain Jeaugey ea38312273 2.18.3-1
Fix data corruption with Tree/LL128 on systems with 1GPU:1NIC.
Fix hang with Collnet on bfloat16 on systems with less than one NIC
per GPU.
Fix long initialization time.
Fix data corruption with Collnet when mixing multi-process and
multi-GPU per process.
Fix crash when shared memory creation fails.
Fix Avg operation with Collnet/Chain.
Fix performance of alltoall at scale with more than one NIC per GPU.
Fix performance for DGX H800.
Fix race condition in connection progress causing a crash.
Fix network flush with Collnet.
Fix performance of aggregated allGather/reduceScatter operations.
Fix PXN operation when CUDA_VISIBLE_DEVICES is set.
Fix NVTX3 compilation issues on Debian 10.
2023-06-14 01:29:17 -07:00