Skip to content

PML 3.0.1 code: GPU timings and memory

The fix released in 3.0.1 was measured at 32bcfa8. Its numerical code is identical to v3.0.1. The 3.0.1 code rows below compare it with released v2.9.0 and v3.0.0; CSV and raw records retain the original candidate-32bcfa8 identifier. See the 3.0.1 performance overview for the main speed and memory improvements, numerical checks, and limitations.

These measurements cover Contrastive, batch-hard TripletMargin, NT-Xent, and ProxyAnchor on A100 and RTX 5090 systems. Maximum batch sizes were measured separately for v3.0.0.

3 fresh processes per configuration, each averaging 3 blocks of 100 forward/backward pairs after warmup. Times are milliseconds per pair; peak memory is total PyTorch allocation in MiB. Encoder, optimizer, and data loading are excluded. This campaign measures timing and memory; full-gradient agreement and capacity require separate evidence.

GPU GPU memory (GiB) Host CPU PyTorch CUDA
A100-SXM4-80GB 79.25 AMD EPYC 7742 64-Core Processor 2.14.0+cu130 13.0
RTX 5090 31.36 AMD Ryzen 9 7950X 16-Core Processor 2.14.0+cu130 13.0

CSV measurements retain full precision and statuses.

standard: 128 dimensions, 4 samples per class for pair/triplet losses, 1,024 classes for proxy losses.

Batch-hard + Triplet · standard · bfloat16 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 5.15 2.93 2.13 4.17–5.66 22.1
A100-SXM4-80GB 3.0.0 ok 4.27 2.51 1.73 3.6–4.7 134
A100-SXM4-80GB 3.0.1 code ok 5.19 3.11 2 4.84–5.57 21.6
RTX 5090 2.9.0 ok 1.12 0.659 0.442 1.08–1.14 69.9
RTX 5090 3.0.0 ok 1.4 0.908 0.49 1.4–1.4 134
RTX 5090 3.0.1 code ok 1.32 0.891 0.407 1.32–1.33 69.4

Batch-hard + Triplet · standard · bfloat16 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.93 2.8 2.05 4.64–5.36 109
A100-SXM4-80GB 3.0.0 ok 30 18 11.9 29.9–30 2,118
A100-SXM4-80GB 3.0.1 code ok 5.47 3.45 1.94 4.41–6.54 103
RTX 5090 2.9.0 ok 1.1 0.658 0.422 1.09–1.12 157
RTX 5090 3.0.0 ok 16.4 8.54 7.82 16.4–16.4 2,118
RTX 5090 3.0.1 code ok 1.38 0.94 0.42 1.37–1.4 151

Batch-hard + Triplet · standard · float32 · batch 128

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 5.31 3.07 2.15 5.07–5.48 17
A100-SXM4-80GB 3.0.0 ok 4.17 2.39 1.7 4.02–4.25 17
A100-SXM4-80GB 3.0.1 code ok 4.73 2.91 1.74 4.27–5 17
RTX 5090 2.9.0 ok 1.1 0.651 0.426 1.08–1.14 64.8
RTX 5090 3.0.0 ok 1.01 0.652 0.338 1.01–1.01 64.8
RTX 5090 3.0.1 code ok 1.02 0.655 0.347 1.01–1.05 64.8

Batch-hard + Triplet · standard · float32 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 5.14 2.91 2.14 4.64–5.48 23.8
A100-SXM4-80GB 3.0.0 ok 4.4 2.57 1.76 3.8–5.14 22.8
A100-SXM4-80GB 3.0.1 code ok 4.71 2.82 1.8 4.36–4.95 22.8
RTX 5090 2.9.0 ok 1.13 0.662 0.45 1.11–1.15 71.5
RTX 5090 3.0.0 ok 1.04 0.662 0.353 1.02–1.06 70.5
RTX 5090 3.0.1 code ok 1.01 0.653 0.34 1.01–1.02 70.5

Batch-hard + Triplet · standard · float32 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.93 2.75 2.1 4.62–5.46 133
A100-SXM4-80GB 3.0.0 ok 4.54 2.66 1.79 4.08–5.07 117
A100-SXM4-80GB 3.0.1 code ok 4.6 2.71 1.81 4.27–5.18 117
RTX 5090 2.9.0 ok 1.18 0.722 0.435 1.16–1.21 181
RTX 5090 3.0.0 ok 1.08 0.702 0.355 1.06–1.09 165
RTX 5090 3.0.1 code ok 1.07 0.7 0.354 1.06–1.11 165

Contrastive · standard · bfloat16 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.75 1.91 2.74 3.78–5.33 34.1
A100-SXM4-80GB 3.0.0 ok 4.03 1.78 2.17 3.58–4.3 134
A100-SXM4-80GB 3.0.1 code ok 4.9 2.45 2.37 4.56–5.08 35
RTX 5090 2.9.0 ok 1.03 0.437 0.574 1.01–1.07 81.8
RTX 5090 3.0.0 ok 1.04 0.441 0.599 1.04–1.04 134
RTX 5090 3.0.1 code ok 1.01 0.537 0.454 0.993–1.03 82.7

Contrastive · standard · bfloat16 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 7.63 1.89 5.74 7.57–7.71 299
A100-SXM4-80GB 3.0.0 ok 23.4 9.08 14.3 23.4–23.4 2,118
A100-SXM4-80GB 3.0.1 code ok 6.32 1.91 4.41 5.97–6.61 308
RTX 5090 2.9.0 ok 2.56 0.429 2.13 2.56–2.57 346
RTX 5090 3.0.0 ok 13.3 4.29 9.03 13.3–13.3 2,118
RTX 5090 3.0.1 code ok 2.23 0.535 1.7 2.23–2.24 356

Contrastive · standard · float32 · batch 128

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.28 1.73 2.46 3.17–5.03 17.6
A100-SXM4-80GB 3.0.0 ok 3.93 1.93 1.92 3.81–3.99 17.6
A100-SXM4-80GB 3.0.1 code ok 3.92 1.9 1.93 3.76–4.01 17.6
RTX 5090 2.9.0 ok 1.01 0.431 0.559 0.993–1.04 65.4
RTX 5090 3.0.0 ok 0.79 0.399 0.372 0.778–0.799 65.4
RTX 5090 3.0.1 code ok 0.789 0.398 0.373 0.786–0.792 65.4

Contrastive · standard · float32 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.63 1.84 2.69 3.48–5.29 36
A100-SXM4-80GB 3.0.0 ok 4 1.92 2 3.67–4.25 36
A100-SXM4-80GB 3.0.1 code ok 3.28 1.54 1.66 2.75–4.32 36
RTX 5090 2.9.0 ok 1.02 0.433 0.565 1.01–1.03 83.7
RTX 5090 3.0.0 ok 0.822 0.41 0.393 0.805–0.854 83.7
RTX 5090 3.0.1 code ok 0.808 0.408 0.382 0.8–0.814 83.7

Contrastive · standard · float32 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 7.88 1.88 5.99 7.62–8.04 324
A100-SXM4-80GB 3.0.0 ok 5.57 1.31 4.26 5.23–5.75 324
A100-SXM4-80GB 3.0.1 code ok 5.76 1.45 4.31 5.75–5.77 324
RTX 5090 2.9.0 ok 2.66 0.419 2.24 2.65–2.67 372
RTX 5090 3.0.0 ok 2.09 0.396 1.69 2.07–2.09 372
RTX 5090 3.0.1 code ok 2.08 0.398 1.69 2.08–2.09 372

NT-Xent · standard · bfloat16 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 16.5 10.6 5.92 16.5–16.6 3,451
A100-SXM4-80GB 3.0.0 ok 4.69 2.31 2.28 4.31–4.9 33.9
A100-SXM4-80GB 3.0.1 code ok 4.68 2.27 2.3 4.42–4.9 33.9
RTX 5090 2.9.0 ok 13.3 7.8 5.55 13.3–13.4 3,498
RTX 5090 3.0.0 ok 0.932 0.47 0.444 0.923–0.944 81.6
RTX 5090 3.0.1 code ok 0.942 0.469 0.453 0.917–0.973 81.6

NT-Xent · standard · bfloat16 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 oom — — — — —
A100-SXM4-80GB 3.0.0 ok 8.53 4.99 3.53 8.5–8.56 292
A100-SXM4-80GB 3.0.1 code ok 8.61 5.06 3.55 8.52–8.77 292
RTX 5090 2.9.0 oom — — — — —
RTX 5090 3.0.0 ok 3.16 1.63 1.53 3.15–3.16 339
RTX 5090 3.0.1 code ok 3.16 1.63 1.53 3.15–3.16 339

NT-Xent · standard · float32 · batch 128

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 3.58 1.46 2.04 2.63–4.13 119
A100-SXM4-80GB 3.0.0 ok 4.27 2.06 2.11 3.91–4.52 17.5
A100-SXM4-80GB 3.0.1 code ok 4.01 1.91 2.01 3.31–4.56 17.5
RTX 5090 2.9.0 ok 0.781 0.337 0.426 0.771–0.793 166
RTX 5090 3.0.0 ok 0.87 0.438 0.414 0.848–0.91 65.3
RTX 5090 3.0.1 code ok 0.894 0.444 0.429 0.864–0.913 65.3

NT-Xent · standard · float32 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 24.5 14.6 9.91 24.5–24.5 6,500
A100-SXM4-80GB 3.0.0 ok 4.66 2.26 2.29 4.59–4.71 35
A100-SXM4-80GB 3.0.1 code ok 3.88 1.86 1.93 3.64–4.09 35
RTX 5090 2.9.0 ok 24.6 13.9 10.7 24.6–24.6 6,548
RTX 5090 3.0.0 ok 0.875 0.442 0.413 0.869–0.886 82.7
RTX 5090 3.0.1 code ok 0.866 0.438 0.408 0.862–0.872 82.7

NT-Xent · standard · float32 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 oom — — — — —
A100-SXM4-80GB 3.0.0 ok 8.47 4.74 3.72 8.42–8.51 308
A100-SXM4-80GB 3.0.1 code ok 8.54 4.81 3.72 8.5–8.59 308
RTX 5090 2.9.0 oom — — — — —
RTX 5090 3.0.0 ok 3.15 1.58 1.57 3.15–3.16 356
RTX 5090 3.0.1 code ok 3.15 1.58 1.57 3.15–3.15 356

ProxyAnchor · standard · bfloat16 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.18 2.21 1.88 3.91–4.66 33.3
A100-SXM4-80GB 3.0.0 ok 4.93 2.46 2.38 4.1–5.75 25.8
A100-SXM4-80GB 3.0.1 code ok 4.16 2 2.08 3.44–4.71 25.8
RTX 5090 2.9.0 ok 0.933 0.528 0.381 0.929–0.937 80.3
RTX 5090 3.0.0 ok 1.06 0.554 0.481 1.03–1.1 73.5
RTX 5090 3.0.1 code ok 1.08 0.559 0.492 1.03–1.1 73.5

ProxyAnchor · standard · bfloat16 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.34 2.29 1.94 3.18–5.14 96.3
A100-SXM4-80GB 3.0.0 ok 4.76 2.39 2.27 4.61–4.94 67.3
A100-SXM4-80GB 3.0.1 code ok 4.76 2.34 2.32 4.09–5.5 67.3
RTX 5090 2.9.0 ok 0.957 0.552 0.381 0.954–0.961 144
RTX 5090 3.0.0 ok 1.06 0.57 0.47 1.05–1.08 115
RTX 5090 3.0.1 code ok 1.05 0.567 0.463 1.05–1.06 115

ProxyAnchor · standard · float32 · batch 128

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.31 2.24 1.96 3.82–4.99 22.8
A100-SXM4-80GB 3.0.0 ok 3.99 1.97 1.94 3.44–4.51 20.9
A100-SXM4-80GB 3.0.1 code ok 4.64 2.38 2.16 3.45–5.34 20.9
RTX 5090 2.9.0 ok 0.931 0.524 0.383 0.925–0.936 70.5
RTX 5090 3.0.0 ok 0.968 0.519 0.426 0.953–0.993 68.7
RTX 5090 3.0.1 code ok 0.952 0.518 0.413 0.942–0.969 68.7

ProxyAnchor · standard · float32 · batch 512

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.52 2.4 2.01 3.83–4.98 39.3
A100-SXM4-80GB 3.0.0 ok 4.98 2.54 2.34 4.59–5.2 31.8
A100-SXM4-80GB 3.0.1 code ok 4.92 2.55 2.26 4.8–5.1 31.8
RTX 5090 2.9.0 ok 0.937 0.524 0.389 0.919–0.962 87.1
RTX 5090 3.0.0 ok 0.97 0.521 0.427 0.947–0.996 79.5
RTX 5090 3.0.1 code ok 0.938 0.51 0.407 0.93–0.946 79.5

ProxyAnchor · standard · float32 · batch 2,048

GPU Version Status Total Forward Backward Process range Peak MiB
A100-SXM4-80GB 2.9.0 ok 4.59 2.45 2.03 4.35–4.99 122
A100-SXM4-80GB 3.0.0 ok 5.32 2.79 2.42 5.14–5.44 91.3
A100-SXM4-80GB 3.0.1 code ok 4.93 2.54 2.28 4.69–5.22 91.3
RTX 5090 2.9.0 ok 0.95 0.552 0.374 0.949–0.954 170
RTX 5090 3.0.0 ok 0.974 0.54 0.413 0.965–0.99 139
RTX 5090 3.0.1 code ok 1.01 0.55 0.433 0.98–1.02 139

Raw evidence

A100-SXM4-80GB: raw records · configuration and hardware

RTX 5090: raw records · configuration and hardware