Commit Graph

505 Commits

Author SHA1 Message Date
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 a8952356d1 Reduce RCCL kernel count as we don't pass first coll in argument
[ROCm/rccl commit: b257676f30]
2020-06-12 21:30:04 +00:00
Wenkai Du a90fac8579 Sender rank's opCount maybe ahead by one if it finishes earlier
[ROCm/rccl commit: a6d621176c]
2020-06-12 03:39:45 +00:00
Wenkai Du e7dd92dc87 Log NUMA node of RDMA host buffer allocation
[ROCm/rccl commit: e98891d039]
2020-06-09 17:44:15 -07: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
Sylvain Jeaugey 89072c82e5 2.7.3-1
Add support for A100 GPU and related platforms.
Add support for CUDA 11.
Add support for send/receive operations (beta).


[ROCm/rccl commit: 5949d96f36]
2020-06-08 09:31:44 -07:00
Wenkai Du 0108a1219d Use cached value for detecting GDR support only once
[ROCm/rccl commit: 67c8e72ce3]
2020-05-22 17:19:10 +00:00
Wenkai Du b449a3b36d Report HIP version in logs
[ROCm/rccl commit: e41ab173cf]
2020-05-20 18:15:32 +00:00
Wenkai Du e7eff47be4 Revert "Tuning the inline and unroll to reduce the scratch usage"
This reverts commit d8a06589c9.


[ROCm/rccl commit: ca493a6b51]
2020-05-15 14:15:40 -07:00
Wenkai Du 5780637fff Merge pull request #209 from wenkaidu/hip-clang
Rename files which only diffs in extension

[ROCm/rccl commit: c245f1507e]
2020-05-15 13:51:12 -07:00
Wenkai Du 61a82ff572 Merge pull request #208 from wenkaidu/perf_xgmi
Give preference to path with more XGMI connections

[ROCm/rccl commit: 706de76046]
2020-05-15 10:07:22 -07:00
Wenkai Du c2afb1f4ca Rename files which only diffs in extension
[ROCm/rccl commit: e7b36304c8]
2020-05-15 09:16:32 -07:00
Wenkai Du 27519fd019 Give preference to path with more XGMI connections
[ROCm/rccl commit: b3c9852634]
2020-05-14 15:33:16 -07:00
Stanley Tsang abba9d5504 Restoring doxygen documentation to nccl.h.in.
[ROCm/rccl commit: 787ac13486]
2020-05-12 22:03:31 +00:00
Wenkai Du 5ba51914f1 Update rccl_bfloat16.h to match rocBLAS
[ROCm/rccl commit: d5a07a7b5c]
2020-05-08 22:48:07 +00:00
Wenkai Du 069322d05a Set flags when calling hipExtLaunchMultiKernelMultiDevice in hip-clang
[ROCm/rccl commit: 24ea2ef6dd]
2020-05-08 15:57:14 +00:00
Wenkai Du 9813d67cd1 Merge remote-tracking branch 'nccl/master' into HEAD
[ROCm/rccl commit: c4edc257b0]
2020-04-27 17:16:54 +00:00
Wenkai Du 7b7f781658 Fix incorrect next device ID in PCI ordered search
[ROCm/rccl commit: edb49ed2d5]
2020-04-25 01:01:13 +00:00
Sylvain Jeaugey c43022b9d8 Fix crash when only a subset of GPUs are visible within a container.
Fixes #326.


[ROCm/rccl commit: f36540f55a]
2020-04-17 10:03:14 -07:00
Sylvain Jeaugey 5df2502deb Improve robustness of PCI detection
Fallback to default values when class/speed is unknown.


[ROCm/rccl commit: 23a9fbb788]
2020-04-16 14:27:50 -07:00
aokomoriuta acd868dfcb Fix wrong variable name "slice" to "chunk"
https://github.com/NVIDIA/nccl/issues/287


[ROCm/rccl commit: a783484ab5]
2020-04-14 19:00:51 -07:00
Sylvain Jeaugey 627e1a06d0 Fix bug #307 : wrong NIC selection on the reduction tree.
The reduction tree (tree up) was inverting the NICs to use,
causing performance issue in cases where we are using different
NICs on a given channel.


[ROCm/rccl commit: b5b6c6acdd]
2020-04-09 17:14:07 -07:00
Aaron Enye Shi bfbfe370c3 Fix HIP-Clang build with HSA headers
HIP-Clang does not include these HSA headers, and they need to be explicitly added in RCCL.


[ROCm/rccl commit: a95090d981]
2020-04-03 17:58:23 -04:00
Wenkai Du 8852e54181 topo_expl: update to 2.6
[ROCm/rccl commit: 6f54b23503]
2020-04-01 13:37:08 -07:00
Wenkai Du 4aeb7f041e Merge remote-tracking branch 'nccl/master' into v2.6.4_merge
[ROCm/rccl commit: fa36fd9ef9]
2020-04-01 13:35:12 -07:00
Sylvain Jeaugey b996c2ca00 Merge pull request #314 from NVIDIA/v2.6
2.6.4-1

[ROCm/rccl commit: 533e3702cf]
2020-03-26 17:31:24 -07:00
Sylvain Jeaugey 40adc74496 2.6.4-1
Add support for network collectives.
Add support for XML topology dump/injection.
Add text values for GDR and P2P Levels, including "NVL".
Add speed detection for PCI, Infiniband and Ethernet cards.
Add CPU detection for ARM and AMD CPUs.
Add support for adaptive routing on Infiniband.
Change NET plugin API to v3 : merge PCI path and GPU pointer
  capability into a single structure and add other properties.


[ROCm/rccl commit: b221128eca]
2020-03-20 14:58:36 -07:00
Rashika Kheria 38b445c94f Check return code for Flush operation
Current NCCL code does not abort for failed Flush operations by
underlying network. This may compromise data integrity.

Signed-off-by: Rashika Kheria <rashika@amazon.com>


[ROCm/rccl commit: 6c61492eba]
2020-03-16 20:40:59 -07:00
Wenkai Du cb19bce4e0 Merge pull request #183 from wenkaidu/dup_rings
Remove condition for ring duplication

[ROCm/rccl commit: 0976e47b06]
2020-03-02 17:12:42 -08:00
Wenkai Du 85fd51a06f Remove condition for ring duplication
Fix insufficent number of rings on single node after pull #179


[ROCm/rccl commit: 62dc28bd2e]
2020-03-02 12:55:06 -08:00
Wenkai Du 593d99d9a9 Check fine grained memory before enabling RDMA
Adding back the check which was lost from 2.5 merge.


[ROCm/rccl commit: fb59328a7b]
2020-03-02 11:18:27 -08:00
Wenkai Du 2a66deb694 Merge pull request #179 from wenkaidu/search
Use fraction of system maxWidth as steps for searching

[ROCm/rccl commit: 8b5bc8bca2]
2020-02-28 11:05:46 -08:00
Wenkai Du b750defc28 Merge remote-tracking branch 'remotes/nccl/master'
[ROCm/rccl commit: 8e73a2ad60]
2020-02-27 12:53:03 -08:00
Wenkai Du 45a7541582 Revise PCI BW numbers on Rome
[ROCm/rccl commit: d2adc61bf6]
2020-02-26 13:17:49 -08:00
Wenkai Du b4be0ff3b8 Use fraction of system maxWidth as steps for searching
This reverts previous workaround of deducting only half of width
from paths.


[ROCm/rccl commit: 8391637613]
2020-02-26 09:14:35 -08:00
Wenkai Du 5747c3cac1 Fix abort handling in LL primitives
[ROCm/rccl commit: 077c3cda74]
2020-02-25 13:42:54 -08:00
Wenkai Du d640f38d56 Fix system maxSpeed and maxWidth calculation
[ROCm/rccl commit: 9b80b3633f]
2020-02-24 15:18:57 -08:00
Wenkai Du 93d448e2fe Fix incorrect CR8 detection
Also change level of ring graph print to help debugging


[ROCm/rccl commit: f54dc58113]
2020-02-21 10:09:49 -08:00
Wenkai Du cf4bce4ad3 Merge pull request #172 from wenkaidu/topo_expl
Add topology explorer

[ROCm/rccl commit: 5b3856f2ed]
2020-02-20 15:16:55 -08:00
Wenkai Du 00f421ccbd Add topology explorer
[ROCm/rccl commit: 55f8e2dec7]
2020-02-19 14:42:06 -08:00
Sylvain Jeaugey 6034c27655 Fix Allgather operations above 4G with multiple GPUs per process.
Fixes nccl-tests#37.
Direct offsets were still on 32 bits in the low-level primitives.


[ROCm/rccl commit: c38f174bd4]
2020-02-12 11:11:55 -08:00
Wenkai Du 8432e8a921 Generate 8G6L chordal ring from reference
[ROCm/rccl commit: abcfbf1231]
2020-02-11 22:01:12 +00:00
Wenkai Du 6b2d7de200 Add ring bandwidth correction factor
[ROCm/rccl commit: d1dae2721d]
2020-01-30 09:52:27 -08:00
Stanley Tsang e5419407c4 Updating copyright notices for 2020.
[ROCm/rccl commit: 20fa04d9b6]
2020-01-29 15:28:08 -08:00
Wenkai Du 622b49e80a Split primitive class to smaller structures
[ROCm/rccl commit: 486fd436af]
2020-01-29 15:27:23 -08:00
Wenkai Du d2fbcfea02 Misc fixes and improvements for 2.5.6
1. Fix RCCL unit test
2. Add ROME detection and tuning
3. Change default P2P level
4. Fix search algorithm for XGMI
5. Remove explicit channel duplication with implicit by using half of link speed
6. Add collective trace support
7. Correct Intel Skylake CPU detection and bandwidth
8. Fix topo connect function
9. Disable GDR read and remove unreachable code
10. Disable LL128 kernels
11. Add tuning parameters
12. Use original clock64() implementation which returns RTC counter value
13. Print out timestamp of collective trace
14. Do not use struct ncclColl in kernel launch parameter
15. Fix abort handling and add tracing
17. Add __launch_bounds__ to kernel functions
18. Remove unused abortCount
19. Unset default MIN_NRINGS and MIN_NCHANNELS
20. Do not allocate shared memory when not using LL128 kernels
21. Correct time print out in tuning log


[ROCm/rccl commit: 1e55645d97]
2020-01-29 15:27:05 -08:00