← All projects

Vesuvius Challenge

A patch and measured comparison for official tools that silently selected the CPU on Apple Silicon even when MPS was available.

  • Python
  • PyTorch
  • Apple MPS
Patch prepared

The project

I prepared a patch that adds MPS to device selection in the official villa tools. It covers ink-detection inference and mixed-precision handling, Dice-family metrics, and automatic device selection in lasagna.

How it works

Follow the processWatch the diagram or scroll to follow each step.Motion is off. You can still choose each step.

Prepare matching inputs

The same scroll crop and trained model are prepared, and the available compute devices are checked.

Select an available device

The patch checks NVIDIA’s CUDA path, then Apple’s MPS path, and selects the CPU if neither GPU path is available.

Compare runtime and images

CPU and MPS runs use the same input; runtime and pixel differences in the ink-detection images are recorded alongside their numerical precision settings.

The comparison uses the same real segment, crop and checkpoint on the CPU and the patched MPS path. Alongside runtime, the output images were compared pixel by pixel.

The comparison records the different precision paths used by the CPU and MPS runs. The issue and submission drafts bring together the cause, the patch and the conditions needed to reproduce the result.

What the records show

In the measured comparison, the patched MPS path was about 9.7× faster than the CPU. The patch and measurements have been assembled into materials being prepared for the Progress Prize.

Files changed
6 files
Lines changed
+28 / −9 lines
MPS speedup over CPU
About 9.7×

What this covers

The measurement applies to this inference setup; it does not establish any newly deciphered text.