Add profiling script for GPU bottleneck analysis in EasyCom extraction. Introduce command-line options for GPU ID, log directory, and sampling period. Implement stage profiling to measure extraction performance and synchronize CUDA operations. Enhance CausalSourceAV class with new parameters for decoder threads and open readers, optimizing video decoding process.

This commit is contained in:
Xin Wang
2026-08-18 10:30:19 +08:00
parent 24cb92f1f4
commit d610305355
3 changed files with 638 additions and 8 deletions

View File

@@ -680,6 +680,18 @@ conversion can differ slightly; validate a short Decord/PyNvVideoCodec pair
before extracting every session, and do not mix decoder backends across
train/test splits.
For CPU Decord, the direct reader intentionally indexes each clip and releases
that temporary reader, then keeps an LRU of at most two live readers during
extraction. Each reader defaults to one decode thread. These limits avoid one
worker retaining a thread pool for every one-minute EasyCom clip and can be
overridden with `--decoder-threads` and `--max-open-readers`. The recommended
full-run settings are:
```text
--decoder decord --decoder-threads 1 --max-open-readers 2
--frame-cache-size 64
```
Matching `states.shape[0]` to the target is necessary but not sufficient.
The direct reader also validates EasyCom's 20-Hz source inventory, source PTS
monotonicity, dense duration, crop bounds, audio sample count, and causal