Skip to content

Lazily evaluate max torque when GUI is open (+ remove redundant Sync) - #412

Open
JonathanMaes wants to merge 5 commits into
devfrom
optimize/maxTorque-and-Sync
Open

Lazily evaluate max torque when GUI is open (+ remove redundant Sync)#412
JonathanMaes wants to merge 5 commits into
devfrom
optimize/maxTorque-and-Sync

Conversation

@JonathanMaes

Copy link
Copy Markdown
Contributor

This PR captures part of the changes introduced in mumax³-CO, as presented in C.-Y. You, J. Magn. 31, 204-213 (2026).


Nearly all solvers end their step with a call to SetMaxTorque(slice), which simply sets the variable LastTorque. The latter is only used in the Euler solver and as the value displayed in the GUI. Evaluating the max torque is not a cheap operation, so omitting this when the GUI is closed can result in a >10% speedup, depending on the complexity of the solver.

This PR also includes the final optimization from the aforementioned paper, i.e., the removal of two superfluous Sync() calls, which I felt did not warrant a separate PR.

mirryou-maker and others added 5 commits June 14, 2026 12:42
Squashed snapshot of the CUDA-Graph-accelerated mumax3 fork (based on
mumax/3 commit 3fe3d41, "Update gpus.txt"). Adds a transparent
split-graph CUDA Graph capture/replay path for Run()/Steps() across
Heun, RK23, RK45DP, RK56 and BackwardEuler, with safety guards for
Temp, time-dependent B_ext/material parameters, NoDemagSpins and
custom field terms, plus the conv_kernmul launch-range and lazy
MaxTorque/MemCpyDtoH micro-optimizations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces the upstream mumax3 README with a fork-focused README covering:
- Performance table (4K–1M cell speedup measurements on RTX 5060 Ti)
- How the CUDA Graph capture/replay path works
- Safety guard list
- Pre-built Windows binary download link (GitHub Releases)
- Build-from-source instructions (Windows CUDA 13.2 + Linux)
- Summary table of all source changes vs upstream 3fe3d41
- Upstream citation and license notice

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants