2. Runtime options

When running applications, some command line options may be specified to control the behaviour of the Graphcore Device Access (GCDA) library. GCDA options are separate from Poplar engine options and are specified in JSON format using environment variable GCDA_OPTIONS. For example:

GCDA_OPTIONS='{"enableMonitoring":"true"}' gc-hosttraffictest -d0

Some options can also be specified with their own environment variables. For example:

GCDA_MONITOR=1 gc-hosttraffictest -d0

IPU (SoC) errors can be simulated with following options:

GCDA_OPTIONS='{"simulateSOCError.errorList":"IPUSOFTERR","simulateSOCError.triggerCount":1,"simulateSOCError.rearmOnReset":true}' gc-hosttraffictest -d0

Valid GCDA options are listed below:

configFile:

Path to a JSON configuration file that defines an alternative IPU mapping. Equivalent to GCDA_CONFIG_FILE=<path> environment variable.

discoverUSBDevices:

true or false, default true

Enable discovery of USB devices. “discoverUSBDevices”:”false” is equivalent to GCDA_NO_USB_IPU_DISCOVERY=1.

enableMonitoring:

true or false, default false

Enable sampling of sensor data while application is running, for display in gc-monitor or other monitoring applications. Equivalent to GCDA_MONITOR=1.

forceHSPPosted:

true or false, default false

Override Host Sync Proxy (HSP) sync mode and use posted mode instead. Equivalent to GCDA_HSP_POSTED=1.

monitorUtilisation:

true or false, default true

Enable sampling of IPU utilisation while application is running, for display in gc-monitor or other monitoring applications. “monitorUtilisation”:”false” is equivalent to GCDA_SUPPRESS_UTILISATION_MEASUREMENT=1.

simulateSOCError.errorList:

A quoted list of CIUERRVR errors to inject to simulate IPU (SoC) errors. Requires “simulateSOCError.triggerCount”.

simulateSOCError.rearmOnReset:

true or false, default false

When simulating IPU (SoC) errors, re-initialise after a reset.

simulateSOCError.triggerCount:

An unsigned integer, default 0

The number of times IPU (SoC) errors are checked before errors are injected (0 means disabled, 1 means upon the first call). Requires “simulateSOCError.errorList”.