8. gc-iputraffictest

This tool tests the data transfer between IPUs.

To use it to test data transfer between device 5 and device 6, for example, run:

gc-iputraffictest --device0 5 --device1 6 -j

The device numbers used are those returned by the gc-info tool.

The output will be plain text if the -j option is not specified. The JSON output will look something like this:

{
    "tile_to_tile": {
        "device0": "5",
        "device1": "6",
        "duration_sec": "0.038185906999999998",
        "kbytes_transferred": "2048000",
        "gbytes_transferred": "1.953125",
        "gbps": "409.18237191537708",
        "errors": "0"
    }
}

The reported bandwidth is the simultaneous bi-directional bandwidth: the sum of the bandwidth from device0 to device1 and the bandwidth from device1 to device0.

If an error occurs during the test, then gc-iputraffictest will return a non-zero exit code, and output an error message.

You can use this tool to run a “soak test” of all the IPU-to-IPU links by running:

$ gc-iputraffictest --all-links

There is also a --forever option that will run either a point-to-point or all-link soak forever (until interrupted by Ctrl-C). The -j option is not available when --forever is used.

Note

The --device0 and --device1 arguments must be IDs for single IPUs, not groups of IPUs. (The test will connect to the smallest group containing both the sender and receiver.)

8.1. Usage

8.1.1. Allowed options

-j, --json-output

Emit JSON output

--device0 {arg}

First IPU of exchange

--device1 {arg}

Second IPU of exchange

-i {arg}, --iterations {arg}

Number of (64)KB transfers per tile (default: 1000)

-v, --verbose

Verbose output

--superverbose

Even more verbose output

--all-links

Exercise every link at once

--min-bandwidth {arg}

Minimum bandwidth (Gbps) expected - fails if not reached

--max-errcount {arg}

Maximum error count expected - fails if exceeded

--forever

Transmit data forever

-h, --help

Produce help message

--version

Version number