NVIDIA / nccl-tests

NCCL Tests
BSD 3-Clause "New" or "Revised" License
809 stars 229 forks source link

New AlltoAllV (Imbalanced AlltoAll) benchmark. #157

Open babusid opened 1 year ago

babusid commented 1 year ago

Alltoallv benchmark

This pull request incorporates a new AllToAllV benchmark. This allows for testing a wider range of communication patterns found in real-world workloads, and allows end users to easily create custom benchmarks by adjusting test parameters. It can even be used to simulate communication patterns that have dedicated tests currently, without having to compile all of them.

The benchmark requires a parameterization CSV file which contains a square matrix of dimension NxN where N is the number of ranks. Each entry in this matrix must contain a fraction between 0 and 1 (inclusive). Entry I,J determines the amount of data sent from Rank I to Rank J. The amount is equal to the fraction times the data size specified for the test. For example, if the benchmark is being run at 256M, and a particular entry has a value of 0.5, then the sending rank will send 128M to the receiving rank.

This PR also adds the ability to parameterize any test with a setup file with the -s flag. The AllToAllV benchmark implementation can be referenced for an example on how to use this.

cc: @sjeaugey (I don't have the ability to add reviewers)

babusid commented 1 year ago

cc: @AddyLaddy