Use Data Validation for RDMA transfers
masterThe --data_validation feature provides real-time verification of RDMA data transfers to detect corruption, DMA races, or stale data. It works for ib_write_bw and ib_read_bw using RC connection types.
Supported Backends:
- Host Memory: Uses SIMD-accelerated validators (AVX-512, AVX2, SSE4.2, or ARM NEON).
- GPU Memory: Uses a CUDA kernel plugin (
libperftest_kernels.so) if--use_cudais enabled.
Requirements:
- Connection type must be
RC. - Tests must be bandwidth tests (
ib_write_bw,ib_read_bw). tx_depth(-t) must be $\ge 32$ and identical on both sides.- Hardware must support SIMD (AVX2/NEON/SSE42).
Incompatible Options:
Cannot be used with -a, --post_list > 1, --run_infinitely, --mr_per_qp, --gpu_touch, --use-null-mr, or --payload_file_path.
Interpreting Results:
errors: Real corruption detected. The transfer failed.races: Temporary mismatch because new data arrived during verification. Normal.skips: Transfer rate exceeded verification rate. Normal.retries: Inconsistency at the tail of a chunk due to PCIe ordering. Normal.
# Host memory WRITE validation
./ib_write_bw -d mlx5_0 --data_validation -t 128
# GPU memory WRITE validation
./ib_write_bw -d mlx5_0 --use_cuda=0 --data_validation -t 128