Skip to content

MultiCyclone v3.0 - multi-architecture (Turing and up)

Choose a tag to compare

@kemo159 kemo159 released this 25 Aug 22:52
· 6 commits to main since this release

Same code as v3.0
— only the compiled GPU architectures differ. Grab these if you are not on an
RTX 50-series card.

architectures GPUs size
this release sm_75, 80, 86, 89, 90, 120 Turing → Blackwell 41–54 MB
v3.0 sm_120 only RTX 50-series only 10–15 MB

That covers RTX 20 / GTX 16 (Turing), A100, RTX 30 (Ampere), RTX 40 (Ada), H100
(Hopper) and RTX 50 (Blackwell).

asset built with needs
CUDACyclone-v3.0-windows-x64-multiarch.exe CUDA 13.1 + MSVC 14.44 NVIDIA driver for CUDA 13.x
CUDACyclone-v3.0-linux-x64-multiarch CUDA 12.8 + g++, Ubuntu 24.04 NVIDIA driver for CUDA 12.8+, chmod +x

The Linux build is deliberately on CUDA 12.8 rather than 13.x: it asks for an
older minimum driver, so it runs on machines that have not updated.

There is no speed penalty. A fatbinary carries native SASS per architecture,
so the card runs its own code either way — measured on an RTX 5080, 30 s runs:

sm_120-only build     4848 Mkeys/s
multi-arch build      4864 Mkeys/s

The only cost is file size. If you are on an RTX 50-series card and care about
the download, take the smaller v3.0 build; otherwise this one is fine everywhere.

Anything older than Turing

Not covered. CUDA 13.x removed Maxwell, Pascal and Volta entirely, and while
CUDA 12.8 can still target them, none of it is tested here. If you want
sm_50–sm_70, build from source with a CUDA 12.x toolkit and add the
architectures to KNOWN_SM_ARCHS in the Makefile:

make -j$(nproc) CUDA_ARCHS=61        # Pascal, for example

Verified

Both binaries were checked before upload — they report MULTICYCLONE v3.0,
recover the known key 0x100001, and cuobjdump confirms all six architectures
are embedded. Only sm_120 was exercised on real hardware; the rest are compiled
but untested, so please open an issue if an older card misbehaves.

Note for anyone inspecting the Linux binary: cuobjdump from CUDA 12.8 misreads
the sm_120 section and aborts with Support for 'sm_2' has been removed. That is
a bug in the 12.8 tool, not a broken binary — CUDA 13.1's cuobjdump lists all
six correctly.

Full feature notes for v3.0 — encrypted checkpoint/resume, GPU takeover of the
CPU tail, and the fixes — are on the
v3.0 release.