Skip to content

Conversation

@yaeliyac
Copy link
Contributor

What

As described in NCCL 2.28.3 release notes, NCCL added a new alltoall API.
documentation

This PR updates this (while checking valid NCCL version)

@yaeliyac yaeliyac changed the title add ncclAlltoAll TL/NCCL: ncclAlltoAll Dec 17, 2025
@yaeliyac yaeliyac changed the title TL/NCCL: ncclAlltoAll TL/NCCL: add ncclAlltoAll Dec 24, 2025
@yaeliyac yaeliyac marked this pull request as ready for review December 24, 2025 14:08
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 5, 2026

Greptile Summary

This PR adds support for NCCL's new native ncclAlltoAll API introduced in version 2.28.0, providing a performance optimization over the previous send/recv implementation.

Key changes:

  • Uses #if NCCL_VERSION_CODE >= NCCL_VERSION(2,28,0) to conditionally compile the new API path
  • For NCCL 2.28.0+: calls the native ncclAlltoAll API directly
  • For older versions: maintains backward compatibility using the existing ncclGroupStart/ncclSend/ncclRecv/ncclGroupEnd pattern
  • Removes unused peer variable declaration, moving it into the fallback loop with C99-style declaration

The implementation follows existing version-checking patterns in the codebase and properly maintains backward compatibility.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The change is straightforward and well-structured: it adds a native NCCL API call behind a proper version check while maintaining full backward compatibility with the existing implementation. The version checking pattern matches existing code in the file, and the fallback logic is unchanged except for moving the loop variable declaration to C99 style.
  • No files require special attention

Important Files Changed

Filename Overview
src/components/tl/nccl/tl_nccl_coll.c Adds native NCCL 2.28+ ncclAlltoAll API with version-gated fallback to send/recv implementation for older versions

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 5, 2026

Greptile's behavior is changing!

From now on, if a review finishes with no comments, we will not post an additional "statistics" comment to confirm that our review found nothing to comment on. However, you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

@Sergei-Lebedev
Copy link
Contributor

/build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants