VIC alone is ~28–34 GB/s across 4266/3200; barely moves until 665.6.
tegrastats: VIC ~95%@1107 while EMC util stays low at high EMC.
Other VPI VIC ops (copy/convert/flip/…) do not exceed this ~34 GB/s class.
We currently interpret this as VIC being engine-limited (TRM DP-11881-002
§5.3: Throughput PPC 4; Linux DG: vic 1107 MHz → ~4.4 GPix/s → ~35 GB/s for
RGBA8 R+W), so at high EMC it only needs ~12–16% of DRAM and stays flat,
while GPU absorbs the deficit. At 665.6 MHz VIC already needs most of the
budget, so both drop. Datasheet DS-11945 §2.8 describes MSS arbitration /
client classes but does not say how VIC vs GPU share saturated DRAM.
Questions
Is this expected?
Any public doc on MSS QoS / arbitration between VIC and GPU?
Is PPC×VIC_clk×bytes(R+W) the intended way to budget VIC DRAM traffic?
Thanks for the clarification. I would like to better understand the bandwidth arbitration behavior between VIC and GPU.
In our measurements, we observe two different behaviors:
At 4266/3200 MHz, when GPU traffic is added, the VIC bandwidth remains almost unchanged (~30 GB/s), while the GPU bandwidth decreases by approximately the amount consumed by VIC.
At 665.6 MHz, where the total available DRAM bandwidth is much lower (~39 GB/s in our measurement), adding GPU traffic causes both VIC and GPU bandwidth to decrease.
This makes it look like the MSS treats VIC and GPU differently depending on whether the memory system is saturated:
At high EMC: VIC bandwidth appears to be satisfied first, and GPU takes most of the bandwidth contention.
At low EMC / near saturation: both VIC and GPU are throttled.
Could you clarify what arbitration/QoS mechanism in the MSS causes this behavior?
Specifically:
Does VIC have a higher priority or some minimum-bandwidth guarantee compared with GPU?
Is the arbitration based on client QoS classes, average/peak bandwidth requests, or another mechanism?
Why would VIC appear to be protected at 3200/4266 MHz, but not fully protected when EMC is limited to 665.6 MHz?
Is there any public documentation describing the MSS arbitration policy between VIC and GPU under DRAM saturation?