Special Note Regarding Cache Coherence

The main application of NvSciStream is to produce data in one hardware engine and consume the data in another using different communication channels. Care must be taken in maintaining caching coherence for the buffers accessed by the engines. A memory-modifying operation made by one engine API may be outside of the knowledge of the engine API consuming the data. As a result, the engine consuming the data may be reading stale cached data. For example, memory-boundary IPC updates the GPU buffer without the knowledge of a CUDA consumer. Without proper cache invalidation, the CUDA consumer reading the GPU buffer using CUDA API may receive stale data. Consult with the documentation for the respective engine API for proper ways of invalidating the cache.