175 Commits

Author SHA1 Message Date
Sylvain Jeaugey
f36540f55a Fix crash when only a subset of GPUs are visible within a container.
Fixes #326.
2020-04-17 10:03:14 -07:00
Sylvain Jeaugey
23a9fbb788 Improve robustness of PCI detection
Fallback to default values when class/speed is unknown.
2020-04-16 14:27:50 -07:00
aokomoriuta
a783484ab5 Fix wrong variable name "slice" to "chunk"
https://github.com/NVIDIA/nccl/issues/287
2020-04-14 19:00:51 -07:00
Sylvain Jeaugey
b5b6c6acdd 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.
2020-04-09 17:14:07 -07:00
Sylvain Jeaugey
533e3702cf
Merge pull request #314 from NVIDIA/v2.6
2.6.4-1
2020-03-26 17:31:24 -07:00
Sylvain Jeaugey
b221128eca 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.
v2.6.4-1
2020-03-20 14:58:36 -07:00
Rashika Kheria
6c61492eba 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>
2020-03-16 20:40:59 -07:00
Sylvain Jeaugey
c38f174bd4 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.
2020-02-12 11:11:55 -08:00
Sylvain Jeaugey
3701130b3c 2.5.7-1 v2.5.7-1 2020-01-16 15:40:57 -08:00
Sylvain Jeaugey
44c34e5d10
Merge pull request #283 from lukeyeager/topo-trim-net-links
Topo trim net links
2020-01-16 15:40:36 -08:00
Luke Yeager
7a18fe0784 [topology] remove NET links when trimming system
This fixes a memory leak.
2020-01-07 13:29:57 -08:00
Luke Yeager
c7ba70ff90 [build] Allow setting CXXFLAGS on the command line 2020-01-07 13:29:42 -08:00
Christian Sigg
3899f6e0f2 Fix clang build (#274)
The attribute is called `optnone`, not `noopt`.
2019-12-09 09:31:13 -08:00
Ke Wen
44b5652617 Merge branch 'master' into HEAD 2019-12-06 18:28:11 -08:00
Ke Wen
6bb953d4e6 2.5.6-2
Fix PPC64 Debian packaging
v2.5.6-2
2019-12-06 18:26:39 -08:00
Sylvain Jeaugey
aa15dfb29c Fix clang compilation 2019-12-06 09:55:54 -08:00
Christian Sigg
8c564e9b57 Fix clang build (#271)
Clang doesn't understand `optimize("O0")`. It has `noopt`, which GCC doesn't understand. Wrap the difference in a macro.
2019-12-06 09:14:55 -08:00
Sylvain Jeaugey
299c554dcc
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
v2.5.6-1
2019-11-19 14:57:39 -08:00
David Addison
ccb1298148 Merge branch 'lowintelligence-shm'
PR#196
2019-08-14 10:09:53 -07:00
David Addison
fad079a8ae Updated PR#196 to use a common hash function 2019-08-14 10:08:39 -07:00
David Addison
01d1836668 Merge branch 'shm' of git://github.com/lowintelligence/nccl into lowintelligence-shm 2019-08-14 09:45:45 -07:00
David Addison
7f2b337e70 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.
2019-08-13 16:32:07 -07:00
Cao Zongyan
bfb3921519 Refine RPM package building spec file.
Add /sbin/ldconfig into RPM package install operations.
2019-07-31 10:36:22 -07:00
Ke Wen
4d579e51cc Fix NIC distances for 11+ NICs 2019-07-17 06:32:33 -07:00
Ke Wen
920ae57c14 Fix #224: prevent number of IB devices from going out of bound 2019-07-17 06:32:33 -07:00
Ke Wen
c8c68fb5f7 Size up IPC buffers to multiples of 2MB
Avoid potential CUDA error in concurrent communicator initialization
2019-07-12 09:50:17 -07:00
Hirochika Asai
0b192d2299 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.
2019-07-09 14:45:41 -07:00
Ke Wen
8e04d80382 Merge branch 'master' into HEAD 2019-06-25 13:39:08 -07:00
Ke Wen
7c72dee660 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
v2.4.8-1
2019-06-25 13:22:47 -07:00
Felix Abecassis
37e4f8729e 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>
2019-06-21 10:25:08 +02:00
Rajat Chopra
6d8b2421bc Update debian dependencies in README (#228)
'fakeroot' is needed for building deb packages
2019-05-22 21:19:36 -07:00
David Addison
0ceaec9cee NCCL 2.4.7-1
Performance tweaks for PowerPC builds only;
      Set default NCCL_MIN_NRINGS to 4
      Disable PCI-E NUMA distance detection
v2.4.7-1
2019-05-10 13:52:16 -07:00
jakirkham
60a586ded9 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.
2019-05-07 17:35:14 -07:00
Gustavo Alvarez
9db4b1d801 Add pkgconfig file (#190) 2019-04-08 09:16:54 -07:00
David Addison
f40ce73e89 NCCL 2.4.6-1
Added detection of IBM/Power NVLink bridge device.
    Add NUMA support to PCI distance calculations.
    Added NCCL_IGNORE_CPU_AFFINITY env var.
    Fix memory leaks; GithubIssue#180
    Compiler warning fix; GithubIssue#178
    Replace non-standard variable length arrays. GithubIssue#171
    Fix Tree+Shared Memory crash. GithubPR#185
    Fix LL cleanup hang during long running DL jobs.
    Fix NCCL_RINGS environment variable handling.
    Added extra checks to catch repeat calls to ncclCommDestroy() GithubIssue#191
    Improve bootstrap socket connection reliability at scale.
    Fix hostname hashing issue. GithubIssue#187
    Code cleanup to rename all non device files from *.cu to *.cc
v2.4.6-1
2019-04-05 13:05:45 -07:00
Cao Zongyan
161763aab2 Fix share memory collision in multi-communicator case.
Current SHM object name would only use pidHash and ranks as
identification, which would collide each other when program runs with
multiple communicators. Here we added commId info into pidHash, it makes
'pidHash'es of different communicators keeping in same process will be
distincted with each other.
2019-03-15 12:50:32 +08:00
Rong Ou
14e0cf644b Fix crash during shared memory creation (#185)
The shared memory filename was only based on the destination. While
this was OK for rings since only one rank would send data to a given
rank, it would crash with trees because they communicate in both
directions.

Co-authored-by: Rong Ou <rong.ou@gmail.com>
2019-03-04 11:42:47 -08:00
Sylvain Jeaugey
1450d42675 2.4.2-1
Add tree algorithms for allreduce to improve performance at scale.
Add ncclCommAbort() and ncclCommGetAsyncError() to properly handle
network errors and be permit recover.
Detect initial CPU affinity and no longer escape it.
v2.4.2-1
2019-01-29 15:19:27 -08:00
Christian Sigg
4861e197fd Fix memory leak in bootstrapRoot() 2019-01-07 14:18:46 -08:00
Sylvain Jeaugey
c244b51ae7 Replace CUDA_VERSION by CUDART_VERSION 2018-12-13 15:22:17 -08:00
Christian Sigg
3e6afef473 Qualify nullptr_t with std:: 2018-12-13 14:18:09 -08:00
Christian Sigg
346fc49514 Two temporary workarounds for cuda-clang issues. 2018-12-13 14:17:58 -08:00
Christian Sigg
d08e9b5279 Change __CUDACC_VER_*__ preprocessor directives to CUDA_VERSION because clang doesn't define the former. 2018-12-13 14:17:46 -08:00
Sylvain Jeaugey
469b69a5d0 Fix #163 : remove warnings 2018-12-11 09:19:16 -08:00
Ke Wen
8606cdb8b2 Fix dummy plugin 2018-12-05 17:25:23 -08:00
Sylvain Jeaugey
57368189e1 Remove error logging from a normal path
When initNet fails, we should not print the backtrace as it is
supposed to be normal operation (falling back to sockets)
2018-12-04 14:47:41 -08:00
Sylvain Jeaugey
4b39a4cf91 Fix GPU Direct RDMA detection.
Whether the network supported GPU Direct RDMA or not was ignored,
causing sockets to break when cards were local enough that NCCL
tried to use it.
2018-12-04 14:42:28 -08:00
Sylvain Jeaugey
b8a9a32ccb Add NCCL_NET flag to many debug lines. 2018-12-04 13:10:19 -08:00
Sylvain Jeaugey
cdae05b277 Improve INFO message when external network is not found.
Fix #162
2018-12-04 12:10:58 -08:00
David Addison
5fe2618c0e Fixed some compilation errors when TRACE=1 set 2018-11-29 14:12:14 -08:00