ONNX and benchmarking
Use this sub-skill when the task is about --onnx, ONNX conversion, CPU
latency, OMP_NUM_THREADS, latency.py, or speed_cpu.py.
When to read
Read this sub-skill when the task asks to:
- Use ONNX Runtime instead of the PyTorch model path.
- Explain or prepare
TDDFA_ONNXandFaceBoxes_ONNX. - Run end-to-end latency timing on an image.
- Run the model-only CPU microbenchmark.
- Diagnose missing
.onnxfiles, OpenMP/libomp issues, or unstable timings.
Before running
- Use
../setup-and-assets/to build and verify the baseline checkout. - Check
../../references/model-assets.mdfor which.pth,.pkl, and generated.onnxassets are involved. - Keep benchmark inputs and thread counts fixed when comparing numbers.
Latency wrapper
The latency wrapper preserves the original latency.py CLI. Put original
arguments after --:
bashpython <skill-root>/sub-skills/onnx-and-benchmarking/scripts/run-latency.py \ --repo-root <checkout> -- \ -f <image-path> --onnx --repeated 1 --warmup true
This reports face detection, 3DMM regression, and reconstruction timing.
Speed wrapper
The speed wrapper preserves speed_cpu.py:
bashpython <skill-root>/sub-skills/onnx-and-benchmarking/scripts/run-speed-cpu.py \ --repo-root <checkout>
It runs a random input through weights/mb1_120x120.onnx and prints the mean
and standard deviation per inference.
ONNX conversion behavior
FaceBoxes_ONNXconvertsFaceBoxesProd.pthtoFaceBoxesProd.onnxif the ONNX file is missing.TDDFA_ONNXconverts the selected.pthcheckpoint and the BFM decoder if the ONNX artifacts are missing.- Conversion is CPU-safe but mutates the checkout by writing generated
.onnxfiles.
Thread and provider notes
- The repo sets
OMP_NUM_THREADS=4in the ONNX demo paths. KMP_DUPLICATE_LIB_OK=Trueis set by the demo scripts before ONNX imports.- CPU ONNX Runtime is the baseline. CUDA/other providers are outside the required verification scope.
- On macOS, the original README notes that
libompmay be required.
Troubleshooting
Read references/troubleshooting.md for ONNX-specific issues and
../../references/troubleshooting.md for shared setup failures.


