{"paper":{"title":"Single-Thread JPEG Decoder Benchmarks Mis-Evaluate ML Data Loaders","license":"http://creativecommons.org/licenses/by/4.0/","headline":"Single-thread JPEG decoder benchmarks produce different rankings than measurements inside PyTorch DataLoaders.","cross_cats":["cs.LG"],"primary_cat":"cs.PF","authors_text":"Dmitry Kosarevsky, Vladimir Iglovikov","submitted_at":"2026-05-09T06:34:17Z","abstract_excerpt":"JPEG decode is routine ML infrastructure, but Python decoder choices are often justified by single-process, single-thread microbenchmarks. We audit this evaluation assumption with thirteen Python-accessible JPEG decode paths on five matched 16 vCPU Google Cloud CPUs: Intel Emerald Rapids, AMD Zen 4, AMD Zen 5, ARM Neoverse V2, and ARM Neoverse N1. ImageNet validation is the workload, not a new dataset contribution: each run decodes the full 50,000-image split from memory and reports single-thread throughput for all decoders, PyTorch \\texttt{DataLoader} throughput for eligible decoders at worke"},"claims":{"count":4,"items":[{"kind":"strongest_claim","text":"The evaluation protocol changes the supported conclusion. On Neoverse V2, imageio is ninth in single-thread throughput yet lands in the top DataLoader tier with torchvision; on Zen 4, torchvision rises from seventh single-thread to the top measured DataLoader tier.","source":"verdict.strongest_claim","status":"machine_extracted","claim_id":"C1","attestation":"unclaimed"},{"kind":"weakest_assumption","text":"That the observed ranking changes are driven primarily by the single-thread versus multi-worker protocol rather than by unmeasured interactions between specific decoder implementations, memory hierarchy, or the exact PyTorch DataLoader configuration used.","source":"verdict.weakest_assumption","status":"machine_extracted","claim_id":"C2","attestation":"unclaimed"},{"kind":"one_line_summary","text":"Single-thread JPEG decoder throughput rankings change substantially when measured inside PyTorch DataLoaders across Intel, AMD, and ARM CPUs.","source":"verdict.one_line_summary","status":"machine_extracted","claim_id":"C3","attestation":"unclaimed"},{"kind":"headline","text":"Single-thread JPEG decoder benchmarks produce different rankings than measurements inside PyTorch DataLoaders.","source":"verdict.pith_extraction.headline","status":"machine_extracted","claim_id":"C4","attestation":"unclaimed"}],"snapshot_sha256":"b52859a58679c17dc0d4dee032ce754f2c1531ee1d2e88c096935baee933baf7"},"source":{"id":"2605.08731","kind":"arxiv","version":2},"verdict":{"id":"abe77f03-fcaf-4219-b308-99934f992203","model_set":{"reader":"grok-4.3"},"created_at":"2026-05-12T01:59:52.120853Z","strongest_claim":"The evaluation protocol changes the supported conclusion. On Neoverse V2, imageio is ninth in single-thread throughput yet lands in the top DataLoader tier with torchvision; on Zen 4, torchvision rises from seventh single-thread to the top measured DataLoader tier.","one_line_summary":"Single-thread JPEG decoder throughput rankings change substantially when measured inside PyTorch DataLoaders across Intel, AMD, and ARM CPUs.","pipeline_version":"pith-pipeline@v0.9.0","weakest_assumption":"That the observed ranking changes are driven primarily by the single-thread versus multi-worker protocol rather than by unmeasured interactions between specific decoder implementations, memory hierarchy, or the exact PyTorch DataLoader configuration used.","pith_extraction_headline":"Single-thread JPEG decoder benchmarks produce different rankings than measurements inside PyTorch DataLoaders."},"integrity":{"clean":true,"summary":{"advisory":0,"critical":0,"by_detector":{},"informational":0},"endpoint":"/pith/2605.08731/integrity.json","findings":[],"available":true,"detectors_run":[{"name":"claim_evidence","ran_at":"2026-05-20T09:02:01.945030Z","status":"completed","version":"1.0.0","findings_count":0},{"name":"ai_meta_artifact","ran_at":"2026-05-19T22:35:37.390352Z","status":"completed","version":"1.0.0","findings_count":0},{"name":"doi_title_agreement","ran_at":"2026-05-19T14:31:17.599067Z","status":"completed","version":"1.0.0","findings_count":0},{"name":"doi_compliance","ran_at":"2026-05-19T10:50:49.259097Z","status":"completed","version":"1.0.0","findings_count":0}],"snapshot_sha256":"e09e2dd8adbba46ebd750c01ede7c4f50e02ff06ad2f9cc0907317db7f6e3841"},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":2,"snapshot_sha256":"28e720276538ea8acf010d22f30b5ddf6b3ecc96f600cf70c4bd8f9eb5ce7e4d"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"}