NvMedia IOFA PFSD (nvm_iofa_pfsd_test)

Note: Pre-built test binaries packaged in the NVIDIA DRIVE OS PDK and SDK Developer Guides have a dependency on libnvplayfair.so, which is available in an independent Debian package. Ensure installation by referring to the DRIVE OS 6.0 Safety Developer Guide.

The sample application, nvm_iofa_pfsd_test, runs the permanent fault software diagnostic (PFSD) tests on the NvMedia Optical Flow Accelerator (OFA) hardware engine.

The PFSD tests are divided in 2 groups (group 0 and group 1) in order to split the execution time into two roughly equal parts per DOS requirements. The test binary runs both the groups, one after the other, in a single iteration. The nvm_iofa_pfsd_test application can run all OFA PFSD tests multiple times in a loop. The rate of execution can also be input to the test application. The output of the application is the result of the PFSD tests; either pass or fail.

To run the sample:

  1. Follow the steps in Building and Running the NvMedia Samples.
  2. Launch the application:
    $ nvm_iofa_pfsd_test -h

Command Line Options for nvm_iofa_pfsd_test

The sample application command syntax is as follows:

$ nvm_iofa_pfsd_test [options]

There is no mandatory command line option for this test application. Running the nvm_iofa_pfsd_test without any command line argument will execute all OFA PFSD tests once and provide the result of the tests.

String parameters, such as file name, have a maximum length of 256 characters. Restrictions on other types of parameters are noted individually.

The command line options are as follows.

Optional Command Line Options
Option Parameter Description
-h n/a Displays guidance on using this application.
-v

0: Errors

1: Warnings

2: Info

3: Debug (default)

Logging level.
-c Default 1 Number of times PFSD tests will execute in an iteration.
-r

1: 1 tests iteration per second (default)

150: 150 tests iteration per second

Rate at which OFA PFSD tests runs.

-f File name

By default Perf/Latency numbers are stored in /tmp/Test_ID_* file

Provides file name for dumping latency stats.
-profileTestTime <InitLatency> <SubmitLatency0> <SubmitLatency1> <ExecutionLatency0> <ExecutionLatency1> Verifies if latencies are within the prescribed time by comparing generated latency values with values provided as argument. Must provide all five latencies when this option is enabled.
InitLatency Provides init latency in microsec.
SubmitLatency0 Provides submit latency in microsec for group 0
SubmitLatency1 Provide submit latency in microsec for group 1
ExecutionLatency0 Provides execution latency in microsec for group 0
ExecutionLatency1 Provides execution latency in microsec for group 1

Examples

These examples demonstrate how to call nvm_iofa_pfsd_test to perform various operations.

  • Run PFSD tests for 1 count at 1 iteration/sec
    $ nvm_iofa_pfsd_test
  • Run PFSD tests for 1000 count at 10 iterations/sec
    $ nvm_iofa_pfsd_test -c 1000 -r 100
  • Run PFSD tests for 10000 times at 150 iterations/sec and also dump the latency numbers
    $ nvm_iofa_pfsd_test -c 10000 -r 150 -f /tmp/ofa_pfsd
  • Run PFSD tests for 5000 times at 50 iterations/sec and provide latency numbers for comparison
    $ nvm_iofa_pfsd_test -c 5000 -r 50 -profileTestTime 150000 1000 1000 4000 4000