Graf commitů

87 Commity

Autor SHA1 Zpráva Datum
Wenkai Du faea6ead5c Query XGMI links from xml and adjust gfx906 channel usage (#410)
[ROCm/rccl commit: 818cdb16a8]
2021-07-27 17:32:41 -07:00
Wenkai Du 71dfc3978e Use rocm_smi_lib for getting topology information (#402)
* Use rocm_smi_lib for getting topology information

* Add rocm-smi-lib dependency to RCCL package

[ROCm/rccl commit: 56155ff5b6]
2021-07-08 13:23:11 -07:00
Wenkai Du f82f99f533 Select sendrecv path based on collective data size (#391)
* Select sendrecv path based on collective data size

* Add comments on packing and unpacking group field

* Toggling RCCL_P2P_NET_DISABLE in combined calls unit tests

[ROCm/rccl commit: 6dcae8a459]
2021-06-10 17:51:04 -07:00
Wenkai Du 5bebcb0015 Setup collectives threshold for enabling intranet (#387)
* Setup collectives threshold for enabling intranet

* Use separate operation counters for coll and p2p

[ROCm/rccl commit: b815a2800f]
2021-06-09 13:24:26 -07:00
Wenkai Du c8a432dc25 Allow intranode use of network connection (#383)
* Allow intranode use of network connection

* Checking for graph for null pointer

[ROCm/rccl commit: a3a8c2d56b]
2021-06-08 07:37:59 -07:00
Wenkai Du b154b532a2 Merge remote-tracking branch 'nccl/master' into develop
[ROCm/rccl commit: e3abf1c2ec]
2021-05-25 20:52:15 -07:00
Wenkai Du 92bcdcf5b0 Correction on max number of groups (#373)
[ROCm/rccl commit: 50da1b48af]
2021-05-20 08:58:45 -07:00
Wenkai Du b27490d38d Use fixed segment size for sendrecv (#369)
[ROCm/rccl commit: 8cde34be51]
2021-05-19 08:25:26 -07:00
Sylvain Jeaugey 3dd3a1ca66 2.9.9-1
Fix crash when setting NCCL_MAX_P2P_NCHANNELS below nchannels.
Fix hang during sendrecv dynamic NVB connection establishment on
cubemesh topologies.
Add environment variable to only use SHARP on communicators beyond
a given number of ranks.
Add debug subsystem to trace memory allocations.
Fix compilation with TRACE=1. (Issue #505)


[ROCm/rccl commit: 3fec2fa5ee]
2021-05-12 11:09:31 -07:00
Wenkai Du a76bebf8b6 Merge remote-tracking branch 'nccl/master' into develop
[ROCm/rccl commit: a4ea1fed5b]
2021-05-05 16:01:01 -07:00
gilbertlee-amd ffdf00a2fa Fixing potential race-condition in env var parameter macro (#359)
[ROCm/rccl commit: 4f8e788a61]
2021-04-28 12:04:41 -06:00
Wenkai Du 951d89b12f Use correct WARP_SIZE for gfx1030 (#348)
[ROCm/rccl commit: 9c718ce6d6]
2021-04-14 14:09:52 -07:00
Sylvain Jeaugey 20da390b96 2.9.6-1
Add support for CUDA graphs.
Fuse BCM Gen4 switches to avoid suboptimal performance on some platforms. Issue #439.
Fix bootstrap issue caused by connection reordering.
Fix CPU locking block.
Improve CollNet algorithm.
Improve performance on DGX A100 for communicators with only one GPU per node.


[ROCm/rccl commit: a46ea10583]
2021-04-12 16:00:46 -07:00
Wenkai Du b4a7fa7011 Cleanup number of channels calculation (#340)
[ROCm/rccl commit: e26ad2995e]
2021-04-05 17:51:56 -07:00
Wenkai Du 287ed0f18a Enable collnet in RCCL (#333)
* Enable CollNet and use different number of channels

* topo_expl: enable collnet

[ROCm/rccl commit: 1d6244b18d]
2021-03-19 12:58:13 -07:00
Wenkai Du 7374c512d9 Add GPU memory usage tracker (#326)
[ROCm/rccl commit: f60b76c67a]
2021-03-06 20:32:30 -08:00
Wenkai Du b7253710ca Revert "Port alltoall[v]" (#325)
This reverts commit 2c49121171.

[ROCm/rccl commit: 8e180cf087]
2021-03-06 13:59:31 -08:00
Wenkai Du bcf4ecb0e3 Enable local sendrecv over network if GDR is available on all GPUs (#324)
[ROCm/rccl commit: c018edf0f2]
2021-03-05 19:59:41 -08:00
Wenkai Du ab71643c99 Merge remote-tracking branch 'nccl/master' into 2.8.3
[ROCm/rccl commit: c985358e11]
2021-02-15 18:44:47 -05:00
Wenkai Du 34d7735419 Move HDP flush to CPU
[ROCm/rccl commit: bf8eb40705]
2021-02-12 18:06:19 +00:00
Sylvain Jeaugey fc7bdb38a5 2.8.4-1
Fix hang in corner cases of alltoallv using point to point send/recv.
Harmonize error messages.
Fix missing NVTX section in the license.
Update README.


[ROCm/rccl commit: 911d61f214]
2021-02-09 15:36:48 -08:00
Wenkai Du 57abf599b2 Enable GPU direct RDMA read from GPU
[ROCm/rccl commit: 5f97122442]
2021-02-03 02:48:30 +00:00
gilbertlee-amd c981e76efe Clique kernel support (#295) (#15)
* Adding experimental clique-based kernels (opt-in only)

Co-authored-by: Stanley Tsang <stanley.tsang@amd.com>
Co-authored-by: Gilbert Lee <gilbert.lee@amd.com>
Co-authored-by: Wenkai Du <43822138+wenkaidu@users.noreply.github.com>

Co-authored-by: Stanley Tsang <stanley.tsang@amd.com>
Co-authored-by: Wenkai Du <43822138+wenkaidu@users.noreply.github.com>

[ROCm/rccl commit: 3e62ceddc5]
2021-01-28 09:45:01 -07:00
Wenkai Du d4382de267 Improve collective trace
[ROCm/rccl commit: 2ddbe6646b]
2021-01-14 19:28:01 -05:00
Wenkai Du 2c49121171 Port alltoall[v]
[ROCm/rccl commit: f4d5d3d620]
2021-01-14 19:28:01 -05:00
Wenkai Du adff98765c Merge remote-tracking branch 'nccl/master' into no-target-id
[ROCm/rccl commit: d469947641]
2021-01-14 19:27:53 -05:00
Jonas Zhou 1db601566f x86: Add CPU detection for Zhaoxin processors
Signed-off-by: Jonas Zhou <JonasZhou@zhaoxin.com>


[ROCm/rccl commit: 3996562690]
2020-12-17 11:15:18 -08:00
Sylvain Jeaugey a8908b34ee 2.8.3-1
Optimization for Tree allreduce on A100.
Improve aggregation performance.
Use shared buffers for inter-node send/recv.
Add NVTX profiling hooks.
Accelerate alltoall connections by merging communication for all
channels.
Add support for one hop communication through NVLink, for faster
send/recv communication on cubemesh topologies like DGX-1.
Improve alltoall scheduling to better balance intra/inter node
communication.
Increase send/recv parallelism by 8x, each warp sending or
receiving to a different peer.
Net: move to v4.
Net: make flush operation asynchronous to accelerate alltoall.
Net: define maximum number of requests.
Fix hang when using LL128 protocol after 2^31 steps.
Fix #379 : topology injection failing when using less GPUs than
described in the XML.
Fix #394 : protocol mismatch causing hangs or crashes when using
one GPU per node.


[ROCm/rccl commit: 920dbe5b35]
2020-11-17 11:08:52 -08:00
gilbertlee-amd 94437eef28 Revert "Initial support for clique-based kernels (#276)" (#280)
This reverts commit d68a532bc6.

[ROCm/rccl commit: 84a2541e01]
2020-10-15 11:30:18 -07:00
gilbertlee-amd d68a532bc6 Initial support for clique-based kernels (#276)
* Initial support for clique-based kernels

[ROCm/rccl commit: 2b8184808d]
2020-10-13 11:22:04 -06:00
Wenkai Du 41260bb948 Rework Rome detection and add multiple network ports models (#274)
* Rework Rome detection and add multiple network ports models

* Remove unused opCount in p2p transport

[ROCm/rccl commit: ae008fd2db]
2020-10-07 13:37:36 -07:00
Wenkai Du dbde26e681 Add Alltoallv RCCL kernel implementation (#269)
* Add alltoallv API and implementation

* Extend Rome P2P channel limit to multinode and alltoall kernels

* topo_expl: fix compilation and sync up with main

* gtest: use RCCL alltoallv API

* Code review changes

[ROCm/rccl commit: b871ea3c0c]
2020-09-30 16:25:36 -07:00
Wenkai Du 03bb6bcb54 Increase minimal channels for gfx908 (#259)
[ROCm/rccl commit: c5cbece6d0]
2020-08-26 11:40:11 -07:00
Wenkai Du 3d5fb8142e Add another Rome model (#249)
* Add another Rome model

* Add gfx908 4P3L models and support

* Revert "Use cached value for detecting GDR support only once"

This reverts commit 0108a1219d.

* Skip using ibverb for GPU direct RDMA detection

* Fine tune one Rome model

[ROCm/rccl commit: a51e4071e3]
2020-08-17 10:51:02 -07:00
Wenkai Du 14ad6ff3b4 Merge remote-tracking branch 'nccl/master' into 2.7.8
[ROCm/rccl commit: 7e3f841fab]
2020-08-10 16:11:00 +00:00
David Addison 4acaffebb3 2.7.8-1
Fix collective mismatch error when using ncclSend/ncclRecv


[ROCm/rccl commit: 033d799524]
2020-07-27 16:34:09 -07:00
Wenkai Du 49c667ac8a ib-test: support multiple channels (#241)
[ROCm/rccl commit: 8d5fb920b6]
2020-07-27 11:03:12 -07:00
Wenkai Du f604fc774e Add 8P6L multi-node models (#239)
[ROCm/rccl commit: d5f90e19b5]
2020-07-21 14:10:36 -07:00
Wenkai Du 3e2c9054cd Change default channels duplication for chordal ring (#233)
[ROCm/rccl commit: ab787c767e]
2020-07-14 15:16:50 -07:00
Wenkai Du 77d94493c3 Merge sendrecv kernel from NCCL 2.7.3
This commit was cherry-picked and modified from
https://github.com/NVIDIA/nccl/commit/89072c82e551d7c8bf7bd5ca77780ef540b7611e


[ROCm/rccl commit: 964c4c2061]
2020-06-29 08:47:46 -07:00
Wenkai Du 3c674c9c1f Use separate threads for send and receive
[ROCm/rccl commit: b90735c935]
2020-06-29 08:47:15 -07:00
Wenkai Du 117f0f6e6e Revert use posix_memalign for network buffer allocation on host memory (#222)
[ROCm/rccl commit: 84f8ba3bb0]
2020-06-24 11:25:55 -07:00
Wenkai Du e7d664200f Use posix_memalign for network buffer allocation on host memory (#221)
* Use posix_memalign for network buffer allocation on host memory

* ib-test: add ability to specify run iterations

* ib-test: define iterations as multiple of default cycles

* Add checking to posix_memalign return value

[ROCm/rccl commit: 0eb19a563a]
2020-06-22 13:06:25 -07:00
Wenkai Du 9ca3176346 Add IB/RDMA unit test
[ROCm/rccl commit: cfa97eccd3]
2020-06-16 18:29:17 +00:00
Wenkai Du 5d93f83ae3 Limit network profiling support to simple protocol and avoid overflow
[ROCm/rccl commit: 95b8f70d15]
2020-06-15 20:51:36 +00:00
Wenkai Du 3389838def Rework network proxy profiling
[ROCm/rccl commit: 7484e53ff7]
2020-06-13 03:13:58 +00:00
Wenkai Du 846e1a4427 Add network proxy profiling support
[ROCm/rccl commit: 812543104d]
2020-06-09 17:44:15 -07:00
Wenkai Du bc6840f937 Calculate and use total wait cycles for RCCL profiling
[ROCm/rccl commit: c9aa11928a]
2020-06-09 17:44:15 -07:00
Wenkai Du 15cd2aff3c Add gather, scatter and alltoall collectives
Introducing 3 new APIs:
ncclResult_t  ncclGather(const void* sendbuff, void* recvbuff, size_t sendcount,
    ncclDataType_t datatype, int root, ncclComm_t comm, hipStream_t stream);
ncclResult_t  ncclScatter(const void* sendbuff, void* recvbuff,
    size_t recvcount, ncclDataType_t datatype, int root, ncclComm_t comm,
    hipStream_t stream);
ncclResult_t  ncclAllToAll(const void* sendbuff, void* recvbuff, size_t count,
    ncclDataType_t datatype, ncclComm_t comm, hipStream_t stream);

Only out of place operation is supported.
Preprocessor symbol RCCL_GATHER_SCATTER=1 indicates API availibility.
By default the APIs launche RCCL kernel implementation, which can be disabled by
RCCL_ALLTOALL_KERNEL_DISABLE=1. Then the APIs use wrapper around ncclSend and ncclRecv.


[ROCm/rccl commit: e80e29573c]
2020-06-09 17:44:08 -07:00
Wenkai Du 67fb4f6cdb Merge remote-tracking branch 'nccl/master' into develop
[ROCm/rccl commit: 26a0fd2517]
2020-06-09 17:40:11 -07:00