What's task_fence on DLA traces?

So whenever I profile the DLA traces on my Jetson AGX Xavier, I get something like this:

It is always a DLA task sandwiched between two events called “task_fence”. However, I failed to find any documentation on this.

What exactly is this task_fence? Is it okay to assume that my DLA is always busy doing computation between two "task_fence"s?

What exactly is this task_fence?

This is an event that is used to combine multiple processing workloads into a pipeline, such that a next job can be triggered when a previous job has finished - without round tripping through the CPU. However, Nsight Systems currently cannot visualize such pipelines even if they are used in your code.

Is it okay to assume that my DLA is always busy doing computation between two "task_fence"s?

The DLA engine in this case is active during the “Task” range on the timeline. Fences are not necessarily related.

To summarize, you can safely ignore the task_fence events if you are not trying to optimize an applications that relies on pipelines and signaling between accelerators.