- Welcome
- Getting Started With the NVIDIA DriveWorks SDK
- Modules
- Samples
- Tools
- Tutorials
- SDK Porting Guide
- DriveWorks API
- More
The NVIDIA® DriveWorks Context module stores all global components, including:
Every module requires a handle to a valid context instance. When a module is created within a certain context, it functions only within that context. Outside of this context, it does not exist.
The DriveWorks SDK context must be initialized before any other DriveWorks module. A typical context initialization looks like the following:
nullptr
is passed for dataPath
, then a data folder is looked for in typical install locations in relation to the current driveworks library install location. If a data directory is still not found then virtual file system will be unavailable. When that happens, modules that use certain DNN networks will not function properly.When modules call dwInitialize(), they usually pass DW_VERSION
as the argument that specifies the current DriveWorks API version. dwInitialize() uses that argument to ensure the version of the API headers and the library match. After that, the function initializes all context subcomponents.
During the initialization phase, DriveWorks initializes:
An SDK context provides access to the common clock used within all SDK modules. For event timestamps, DriveWorks uses a high-resolution monotonic clock with microseconds precision. Sensor samples are an example of event timestamps. Any module accepting dwTime_t
as input argument, assumes the time is in the right units and is from the same domain.
An SDK context provides the possibility to enable PVA (Programmable Vision Accelerator) on NVIDIA DRVE™ platforms.
If PVA is not enabled, modules that execute on PVA will not work properly. PVA can be enabled during context initialization like this:
An SDK context can be initialized with CUDA Task-Graph enabled.
If it is enabled, CUDA Task-Graph will be used where applicable; such as, DNN inference for models that support this sort of execution. CUDA Task-Graph can be enabled during context initialization like this: