Verification Tool Configuration#
Use a YAML file to configure the test.
Example YAML
name: cluster-validation-suite
global:
duration: 60
parameters:
image-pull-secret: ngc-secret
image-name: nvcr.io/nvidia/holoscan-for-media/h4m-verification-tool-internals:0.1.0
monitoring:
- name: SR-IOV
module: sriov
- name: PTP
module: ptp
- name: GPU
module: gpu
tests:
- name: Platform Checks
description:
Capture and verify system details needed for optimal performance including
PCIe topology, NIC firmware settings, and kernel arguments
module: Platform
enabled: true
validation:
nic_config:
- REAL_TIME_CLOCK_ENABLE: True(1)
- VF_VPD_ENABLE: True(1)
sriov_config:
- sriov: true
acs_config:
- acs: false
kernel_args:
- default_hugepagesz=2M
- hugepagesz=2M
- nosmt
- nosoftlockup
- idle=poll
- cpufreq.default_governor=performance
gpu_config:
- pcie_link_width: 16x
duration: 0
monitoring: null
parameters: null
- name: Rivermax Generic API
description:
Send data with Rivermax Generic API using kernel bypass to capture maximum
throughput possible on the cluster
module: generic_sendx_receive_test
enabled: true
- name: Rivermax Generic API with GPU
description:
Send data with Rivermax Generic API using GPUDirect to capture maximum
throughput possible on the cluster
module: generic_sendx_receive_test
enabled: true
parameters:
gpu: 1
- name: Rivermax Media 1080p60
description:
Send ST2110 1080p 60 fps video streams with Rivermax Media API
module: media_sendx_rtp_receive_test
enabled: true
parameters:
streams: 71
- name: Rivermax Media 1080p60 with GPU
description:
Send ST2110 1080p 60 fps video streams with Rivermax Media API using GPU
Direct
module: media_sendx_rtp_receive_test
enabled: true
parameters:
streams: 71
gpu: 1
- name: Rivermax Media 4K
description: Send ST2110 4K 60 fps video streams using Rivermax Media API
module: media_sendx_rtp_receive_test
enabled: true
parameters:
streams: 17
width: 3840
height: 2160
- name: Rivermax Media 4K with GPU
description:
Send ST2110 4K 60 fps video streams with Rivermax Media API using GPU
Direct
module: media_sendx_rtp_receive_test
enabled: true
parameters:
streams: 17
width: 3840
height: 2160
gpu: 1
Global Parameters#
The global section contains settings that apply to all tests in the suite.
Setting |
Description |
Type |
Possible Values |
|---|---|---|---|
|
The duration of the test in seconds. |
Integer |
Any positive integer, for example, |
|
The parameters for the test. See Parameters section below. |
Dict |
Example: image-pull-secret: ""
cpu: 4
|
|
The monitoring for the test. See Monitoring section below. |
List |
Example: - name: SR-IOV
module: sriov
|
Parameters#
Setting |
Description |
Type |
Default Value |
Possible Values |
|---|---|---|---|---|
|
The image pull secret for the test |
String |
|
The name of the image pull secret to use for the test |
|
The name of the image to use for the test |
String |
|
The name of the image to use for the test |
|
The type of hugepages to use for the test |
String |
|
|
|
The amount of hugepages to use for the test |
String |
|
The amount of hugepages to use for the test |
|
The amount of memory to use for the test |
String |
|
The amount of memory to use for the test |
|
The number of CPU cores to use for the test |
Integer |
|
Any positive integer, for example, 1, 2, 4. |
|
The number of GPUs to use for the test |
Integer |
|
Any positive integer, for example, 1, 2, 4. If not specified, the test will use no GPUs. |
|
The name of the network to use for the test |
String |
|
|
|
The name of the scheduler to use for the test |
String |
|
|
|
The name of the Rivermax license secret to use for the test |
String |
|
Monitoring#
Setting |
Description |
Type |
Possible Values |
|---|---|---|---|
|
The name of the monitoring module. |
String |
Monitoring module name |
|
The module of the monitoring module. |
String |
|
Tests#
Platform Checks#
This test validates the system configuration including NIC settings, SR-IOV networking configuration, and kernel parameters.
Setting |
Description |
Type |
Possible Values |
|---|---|---|---|
|
The name of the test. |
String |
|
|
Name of the module. |
String |
|
|
Whether the test is enabled. |
Boolean |
|
|
Description of the test. |
String |
|
|
Validation for the test. |
Dict |
|
|
The duration of the test. |
Integer |
|
|
Monitoring for the test. |
List |
|
|
Parameters for the test. |
Dict |
|
nic_config
nic_config:
- REAL_TIME_CLOCK_ENABLE: True(1)
- VF_VPD_ENABLE: True(1)
sriov_config
sriov_config:
- sriov: true
acs_config
acs_config:
- acs: false
kernel_args
kernel_args:
- default_hugepagesz=2M
- hugepagesz=2M
- nosmt
- nosoftlockup
- idle=poll
- cpufreq.default_governor=performance
gpu_config
gpu_config:
- pcie_link_width: 16x
Rivermax Xstream Generic API#
Tests basic Rivermax Xstream functionality for sending and receiving generic streams.
- name: Rivermax Generic API
description:
Send data with Rivermax Generic API using kernel bypass to capture maximum
throughput possible on the cluster
module: generic_sendx_receive_test
enabled: true
parameters:
sender:
- flows: 1
receiver:
- data-size: 1500
parameters
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Destination IP address. |
String |
|
|
Destination port. |
Integer |
|
|
Sender parameters. |
Dict |
|
|
Receiver parameters. |
Dict |
sender
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Number of flows. |
Integer |
|
|
Number of total streams. |
Integer |
|
|
Number of threads. |
Integer |
|
|
Number of memory chunks. |
Integer |
|
|
Number of packets in chunk. |
Integer |
|
|
The packet’s payload size. |
Integer |
|
|
Rate limit in bits per second per flow. |
Integer |
|
|
The maximum allowed burst size in number of chunks per flow. |
Integer |
|
|
The number of application cores. |
Integer |
|
|
The list of nodes to use for the test. |
List[int] |
|
receiver
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
User data (payload) size |
Integer |
|
|
Number of packets to allocate memory for. |
Integer |
|
|
Flow ID to use for the test. |
Integer |
|
|
Wait for packets instead of busy loop |
Boolean |
|
|
The number of application cores. |
Integer |
|
|
The list of nodes to use for the test. |
List[int] |
|
validation
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Target Gbps |
Float |
Calculated at runtime from NIC speed |
|
Tolerance percentage |
Integer |
|
Rivermax Xstream Media API#
This test validates Rivermax functionality with GPUDirect support for sending and receiving generic streams.
parameters
- name: Rivermax Media 4K
description: Send ST2110 4K 60 fps video streams using Rivermax Media API
module: media_sendx_rtp_receive_test
enabled: true
parameters:
streams: 17
width: 3840
height: 2160
sender:
- threads: 1
receiver:
- threads: 1
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Destination IP address. |
String |
|
|
Destination port. |
Integer |
|
|
Width of the stream. |
Integer |
|
|
Height of the stream. |
Integer |
|
|
FPS of the stream. |
Integer |
|
|
Number of streams. |
Integer |
|
|
Sender parameters. |
Dict |
|
|
Receiver parameters. |
Dict |
sender
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Number of threads to use for sending. |
Integer |
|
|
Application doesn’t block on send |
Boolean |
|
|
The number of application cores. |
Integer |
|
|
The list of nodes to use for the test. |
List[int] |
|
receiver
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Number of threads to use for receiving. |
Integer |
|
|
Number of streams to receive. |
Integer |
|
|
Packet’s payload size |
Integer |
|
|
Packet’s application header size |
Integer |
|
|
Parse extended sequence number from RTP payload |
Boolean |
|
|
Number of application cores. |
Integer |
|
|
The list of nodes to use for the test. |
List[int] |
|
validation
Setting |
Description |
Type |
Default Value |
|---|---|---|---|
|
Target Gbps |
Float |
Calculated at runtime from the number of streams, width, height, and FPS |
|
Tolerance percentage |
Integer |
|
|
Max number of dropped packets per second for a partial passed test |
Integer |
|