You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: fabtests/README.md
+151Lines changed: 151 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,36 @@ Directory where valgrind is installed. If valgrind is found, then
65
65
valgrind annotations are enabled. This may incur a performance
66
66
penalty.
67
67
68
+
```
69
+
--with-cuda[=DIR]
70
+
```
71
+
72
+
Provide path to where the CUDA development and runtime libraries are installed. This enables CUDA memory support for heterogeneous memory (HMEM) testing.
73
+
74
+
```
75
+
--with-rocr[=DIR]
76
+
```
77
+
78
+
Provide path to where the ROCR development and runtime libraries are installed. This enables ROCr memory support for heterogeneous memory (HMEM) testing.
79
+
80
+
```
81
+
--with-neuron[=DIR]
82
+
```
83
+
84
+
Provide path to where the Neuron development and runtime libraries are installed. This enables Neuron memory support for heterogeneous memory (HMEM) testing.
85
+
86
+
```
87
+
--with-synapseai[=DIR]
88
+
```
89
+
90
+
Enable SynapseAI build and fail if not found. Optional=<PathtowheretheSynapseAIlibrariesandheadersareinstalled.> This enables SynapseAI memory support for heterogeneous memory (HMEM) testing.
91
+
92
+
```
93
+
--with-ze[=DIR]
94
+
```
95
+
96
+
Enable Level-Zero (Ze) support and fail if not found. Optional=<PathtowheretheLevel-Zerolibrariesandheadersareinstalled.> This enables Intel GPU memory support for heterogeneous memory (HMEM) testing.
97
+
68
98
### Examples
69
99
70
100
Consider the following example:
@@ -87,3 +117,124 @@ Tells the Fabtests that it should be able to find the Libfabric header
87
117
files and libraries in default compiler / linker search paths
88
118
(configure will abort if it is not able to find them), and to install
89
119
Fabtests in `/opt/fabtests`.
120
+
121
+
## Installation Location
122
+
123
+
After running `make install`, the fabtests binaries will be installed to:
124
+
-`<prefix>/bin/` - All test executables and scripts (e.g., `fi_rdm_pingpong`, `fi_msg_bw`, `runfabtests.sh`, `runfabtests.py`)
125
+
-`<prefix>/share/fabtests/` - Test configuration files and utilities
126
+
127
+
For detailed documentation of individual test binaries and their options, see [fabtests/man/fabtests.7.md](man/fabtests.7.md) which contains comprehensive man pages for each test binary.
128
+
129
+
## Running Fabtests
130
+
131
+
Fabtests can be run in three different ways. **Note**: Ensure `<prefix>/bin` is in your `$PATH` or use absolute paths to the binaries and scripts.
132
+
133
+
### 1. Direct Binary Execution
134
+
135
+
Run individual test binaries directly. Each binary supports `-h` for detailed options:
136
+
```bash
137
+
# Server side (starts server and waits for client)
138
+
$ fi_rdm_pingpong -p <provider_name>
139
+
140
+
# Client side (from another terminal/node)
141
+
$ fi_rdm_pingpong -p <provider_name><server_ip>
142
+
143
+
# With specific options (-S: transfer size in bytes, -I: number of iterations)
The Python script is well tested with `tcp`, `shm`, and `efa` providers. It includes:
228
+
-**Common test items**: Defined in `fabtests/pytest/` directory, applied to any provider
229
+
-**Provider-specific tests**: Located in `fabtests/pytest/<provider_name>/` directories
230
+
- Currently implemented for `shm` and `efa` providers
231
+
- We welcome more providers to join this framework!
232
+
233
+
The Python script leverages the pytest framework, providing advanced testing configurations including:
234
+
- Support for heterogeneous memory (HMEM) types like CUDA and Neuron
235
+
- Parallel test execution with configurable worker count
236
+
- HTML and JUnit XML report generation
237
+
- Advanced test filtering and exclusion capabilities
238
+
- Comprehensive logging and verbosity controls
239
+
240
+
Both script methods provide comprehensive testing across multiple providers and configurations, while direct binary execution allows for focused testing of specific scenarios.
0 commit comments