Commit Graph

180 Commits

Author SHA1 Message Date
John Bachan 04553b802a Fix to https://github.com/NVIDIA/nccl/issues/560
ncclGroup's containing operations of mixed datatype, element, or collective
would induce crash.


[ROCm/rccl commit: 5f2f2f670f]
2021-08-31 15:50:05 -07:00
Ke Wen 58a9f19dc3 2.10.3-1
Add support for bfloat16.
Add ncclAvg reduction operation.
Improve performance for aggregated operations.
Improve performance for tree.
Improve network error reporting.
Add NCCL_NET parameter to force a specific network.
Add NCCL_IB_QPS_PER_CONNECTION parameter to split IB traffic onto multiple queue pairs.
Fix topology detection error in WSL2.
Fix proxy memory elements affinity (improve alltoall performance).
Fix graph search on cubemesh topologies.
Fix hang in cubemesh during NVB connections.


[ROCm/rccl commit: 7e51592129]
2021-07-08 14:30:14 -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
Sylvain Jeaugey 780273774a 2.9.8-1
Fix memory leaks.
Fix crash in bootstrap error case.
Fix Collnet clean-up issue.
Make PCI switch vendor/device optional for XML injection.
Add support for nvidia-peermem module.


[ROCm/rccl commit: ca8485b0d0]
2021-05-10 14:00:03 -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
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
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
xietingwew 0277094dd2 fix proxyArgs for trace log
[ROCm/rccl commit: 084207e685]
2020-10-21 09:18:40 -07:00
Sylvain Jeaugey 591ffd32fe Fix affinity move
[ROCm/rccl commit: 0e14394c5f]
2020-10-13 16:58:05 -07:00
Sylvain Jeaugey 5de6b6681d Make sure proxy threads inherit the CPU affinity.
[ROCm/rccl commit: c6dbdb0084]
2020-10-13 16:37:52 -07:00
Jack Snyder dca19952fd Setting type when gpu sub node is discovered
[ROCm/rccl commit: de49a77074]
2020-08-05 13:39:23 -07:00
Eric Badger d6a78cb1c7 Don't require NIC devices to have specific PCI class
If a PCI node is the parent of a NIC, treat it as such, regardless of
the PCI class code for the device. This allows non-traditional devices
to act as NICs via the net plugin mechanism.

For consistency, treat GPUs similarly.


[ROCm/rccl commit: 700c0e0f24]
2020-08-05 12:46:29 -07: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
Riatre Foo e791f8c8c7 Fix build action order
Add $(INCTARGETS) to build dependencies of %.o and $(DEVICELIB).
As there were no dep files during the first build, Make may kick off source
compilation before nccl.h got generated, which leads to occasional build
failures on systems with high core count. The build failure could be
reproduced reliably with a `sleep 5` in $(INCDIR)/nccl.h rule.


[ROCm/rccl commit: 2d8601701d]
2020-07-07 10:20:51 -07:00
Sylvain Jeaugey 5432eb8e9d 2.7.6-1
Fix crash when NVswitch is not visible inside a VM.


[ROCm/rccl commit: 1952325569]
2020-06-26 16:35:54 -07:00
Sylvain Jeaugey 1f6b75ca8b 2.7.5-1
Minor fixes for A100 platforms.
Add a WARN for invalid GroupEnd call.


[ROCm/rccl commit: 01afd20a77]
2020-06-26 14:39:49 -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
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
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
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
Sylvain Jeaugey 40958b6445 2.5.7-1
[ROCm/rccl commit: 3701130b3c]
2020-01-16 15:40:57 -08:00
Luke Yeager d91217b16f [topology] remove NET links when trimming system
This fixes a memory leak.


[ROCm/rccl commit: 7a18fe0784]
2020-01-07 13:29:57 -08:00
Luke Yeager 91ff39bedb [build] Allow setting CXXFLAGS on the command line
[ROCm/rccl commit: c7ba70ff90]
2020-01-07 13:29:42 -08:00
Christian Sigg ff74ebdcea Fix clang build (#274)
The attribute is called `optnone`, not `noopt`.

[ROCm/rccl commit: 3899f6e0f2]
2019-12-09 09:31:13 -08:00
Ke Wen 6413a29ce8 Merge branch 'master' into HEAD
[ROCm/rccl commit: 44b5652617]
2019-12-06 18:28:11 -08:00
Ke Wen 8dc42618e4 2.5.6-2
Fix PPC64 Debian packaging


[ROCm/rccl commit: 6bb953d4e6]
2019-12-06 18:26:39 -08:00
Sylvain Jeaugey e5a17ee58d Fix clang compilation
[ROCm/rccl commit: aa15dfb29c]
2019-12-06 09:55:54 -08:00
Christian Sigg 4984d5ce0b Fix clang build (#271)
Clang doesn't understand `optimize("O0")`. It has `noopt`, which GCC doesn't understand. Wrap the difference in a macro.

[ROCm/rccl commit: 8c564e9b57]
2019-12-06 09:14:55 -08:00
Sylvain Jeaugey 71560fd67b 2.5.6-1 (#255)
Add LL128 Protocol.

Rewrite the topology detection and tree/ring creation (#179). Improve
tree performance by sending/receiving from different GPUs. Add
model-based tuning to switch between the different algorithms and
protocols.

Rework P2P/SHM detection in containers (#155, #248).

Detect duplicated devices and return an error (#231).

Add tuning for GCP

[ROCm/rccl commit: 299c554dcc]
2019-11-19 14:57:39 -08:00
David Addison d57c0b0f92 Updated PR#196 to use a common hash function
[ROCm/rccl commit: fad079a8ae]
2019-08-14 10:08:39 -07:00
David Addison bb5b11fa23 Merge branch 'shm' of git://github.com/lowintelligence/nccl into lowintelligence-shm
[ROCm/rccl commit: 01d1836668]
2019-08-14 09:45:45 -07:00
David Addison c7957daee3 Make use of SO_REUSEPORT conditional
Fixes: #244

SO_RESUEPORT was introduced in Linux 3.9 and later.
This change allows NCCL to compile against older releases.

The functionality is only required if the user is specifying
a NCCL bootstrap address via an environment variable.


[ROCm/rccl commit: 7f2b337e70]
2019-08-13 16:32:07 -07:00
Cao Zongyan d45a1180f7 Refine RPM package building spec file.
Add /sbin/ldconfig into RPM package install operations.


[ROCm/rccl commit: bfb3921519]
2019-07-31 10:36:22 -07:00
Ke Wen a66ab68630 Fix NIC distances for 11+ NICs
[ROCm/rccl commit: 4d579e51cc]
2019-07-17 06:32:33 -07:00
Ke Wen 5c5c58c73b Fix #224: prevent number of IB devices from going out of bound
[ROCm/rccl commit: 920ae57c14]
2019-07-17 06:32:33 -07:00
Ke Wen 4211da6d29 Size up IPC buffers to multiples of 2MB
Avoid potential CUDA error in concurrent communicator initialization


[ROCm/rccl commit: c8c68fb5f7]
2019-07-12 09:50:17 -07:00
Hirochika Asai ee08e8b421 Add the exact matching modifier support "=" to the NCCL_IB_HCA variable (#236)
Perform exact matching when the prefix "=" is specified in the NCCL_IB_HCA variable to exclude HCAs mlx5_X[0-9]+ when mlx5_X is specified.

[ROCm/rccl commit: 0b192d2299]
2019-07-09 14:45:41 -07:00
Ke Wen 3c13a4d1bb Merge branch 'master' into HEAD
[ROCm/rccl commit: 8e04d80382]
2019-06-25 13:39:08 -07:00
Ke Wen b91d8170f8 2.4.8-1
Fix #209: improve socket transport performance
  Split transfers over multiple sockets
  Launch multiple threads to drive sockets
  Detect AWS NICs and set nsockets/nthreads accordingly


[ROCm/rccl commit: 7c72dee660]
2019-06-25 13:22:47 -07:00
Felix Abecassis d2f579ba8b Fix out-of-bounds read in ncclStrToCpuset (#233)
The affinityStr string was not null-terminated but was passed to strlen(3).

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>

[ROCm/rccl commit: 37e4f8729e]
2019-06-21 10:25:08 +02:00
Rajat Chopra 1071f54eeb Update debian dependencies in README (#228)
'fakeroot' is needed for building deb packages

[ROCm/rccl commit: 6d8b2421bc]
2019-05-22 21:19:36 -07:00
David Addison 00bc3a724a NCCL 2.4.7-1
Performance tweaks for PowerPC builds only;
      Set default NCCL_MIN_NRINGS to 4
      Disable PCI-E NUMA distance detection


[ROCm/rccl commit: 0ceaec9cee]
2019-05-10 13:52:16 -07:00
jakirkham 1a4357b99a Allow CUDA runtime library selection (#220)
Makes a change to allow the user to select between the static CUDA
runtime library (default) and the dynamic CUDA runtime library. Does
this by allowing `CUDARTLIB` to be overridden.

[ROCm/rccl commit: 60a586ded9]
2019-05-07 17:35:14 -07:00
Gustavo Alvarez 0e0902d201 Add pkgconfig file (#190)
[ROCm/rccl commit: 9db4b1d801]
2019-04-08 09:16:54 -07:00