[{"data":1,"prerenderedAt":441},["ShallowReactive",2],{"blog-5":3},{"id":4,"title":5,"author":6,"body":7,"createdAt":431,"description":432,"extension":433,"image":331,"meta":434,"navigation":435,"path":436,"seo":437,"stem":438,"tags":439,"__hash__":440},"blog\u002Fblog\u002F5-mxgm-v01252-an-open-source-cuckatoo32-gpu-miner.md","MXGM v0.1.252 — an open-source Cuckatoo32 GPU miner","Maxnflaxl",{"type":8,"value":9,"toc":420},"minimark",[10,14,17,25,30,33,151,160,164,219,223,226,230,233,239,242,246,290,294,314,321,325,360,375,379,382,389,393,396,404,412,416],[11,12,13],"p",{},"The fast Grin GPU miners, GMiner and lolMiner, are closed source. The open one, the Cuckatoo Reference Miner, runs at less than half GMiner's speed.",[11,15,16],{},"MXGM is a Cuckatoo32 miner written from scratch in Rust and open source. It's faster than all three.",[11,18,19],{},[20,21,22],"a",{"href":22,"rel":23},"https:\u002F\u002Fgit.maxnflaxl.dev\u002Fmaxnflaxl\u002FMXGM",[24],"nofollow",[26,27,29],"h2",{"id":28},"speed","Speed",[11,31,32],{},"One RTX 4070 Ti SUPER, watts as the card reports them:",[34,35,36,55],"table",{},[37,38,39],"thead",{},[40,41,42,46,49,52],"tr",{},[43,44,45],"th",{},"miner",[43,47,48],{},"g\u002Fs",[43,50,51],{},"W",[43,53,54],{},"J a graph",[56,57,58,77,91,109,123,137],"tbody",{},[40,59,60,68,71,74],{},[61,62,63,64],"td",{},"MXGM, ",[65,66,67],"code",{},"--mclk 5001 --cclk 2300 --fan 30",[61,69,70],{},"1.339",[61,72,73],{},"190.9",[61,75,76],{},"141",[40,78,79,82,85,88],{},[61,80,81],{},"MXGM, stock",[61,83,84],{},"1.706",[61,86,87],{},"280.6",[61,89,90],{},"163",[40,92,93,100,103,106],{},[61,94,95,96,99],{},"GMiner 3.44, its best (",[65,97,98],{},"--mclk 5001 --cclk 2400",")",[61,101,102],{},"1.090",[61,104,105],{},"174.8",[61,107,108],{},"160",[40,110,111,114,117,120],{},[61,112,113],{},"GMiner 3.44, stock",[61,115,116],{},"1.29",[61,118,119],{},"276.2",[61,121,122],{},"214",[40,124,125,128,131,134],{},[61,126,127],{},"lolMiner 1.98a, stock",[61,129,130],{},"0.93",[61,132,133],{},"219.7",[61,135,136],{},"236",[40,138,139,142,145,148],{},[61,140,141],{},"Cuckatoo Reference Miner 0.3.3",[61,143,144],{},"0.547",[61,146,147],{},"217.4",[61,149,150],{},"397",[11,152,153,154,159],{},"MXGM is the fastest miner at every setting I tried. GMiner at its best draws less power, but MXGM spends less per graph: 141 J to GMiner's 160. Numbers people sent me from an RTX 4060 and a GTX 1080 Ti are in ",[20,155,158],{"href":156,"rel":157},"https:\u002F\u002Fgit.maxnflaxl.dev\u002Fmaxnflaxl\u002FMXGM\u002Fsrc\u002Fbranch\u002Fmaster\u002Fdocs\u002Fbenchmarks.md",[24],"benchmarks.md",".",[26,161,163],{"id":162},"changes-since-v01164","Changes since v0.1.164",[165,166,167,177,180,195,202,205,208,214],"ul",{},[168,169,170,171,176],"li",{},"3–5% less energy per graph, and faster at every power cap and core clock tested (",[20,172,175],{"href":173,"rel":174},"https:\u002F\u002Fgit.maxnflaxl.dev\u002Fmaxnflaxl\u002FMXGM\u002Fsrc\u002Fbranch\u002Fmaster\u002Fdocs\u002Fperformance.md#operating-point",[24],"curves",").",[168,178,179],{},"Windows: a card with no monitor attached now runs K=2, 1.51 g\u002Fs on an RTX 4070 Ti SUPER against 1.02 at K=4.",[168,181,182,183,186,187,190,191,194],{},"Windows: ",[65,184,185],{},"--tune"," and ",[65,188,189],{},"--report"," save to ",[65,192,193],{},"%LOCALAPPDATA%\\mxgm"," instead of the current directory.",[168,196,197,198,201],{},"CUDA: lean and mean trimming. ",[65,199,200],{},"--trimming auto"," falls back to lean when slean doesn't fit.",[168,203,204],{},"Metal: slean, lean and mean.",[168,206,207],{},"Fixed dropped edges in the staged scatter of CUDA lean and mean, OpenCL and Metal. CUDA slean, the default, was not affected.",[168,209,210,213],{},[65,211,212],{},"--benchmark"," reports steady-state joules per graph.",[168,215,216,218],{},[65,217,185],{}," no longer always recommends the lowest cap.",[26,220,222],{"id":221},"apple-silicon","Apple Silicon",[11,224,225],{},"On Macs MXGM runs the reference miner's Metal kernels. Mean trimming is the fastest there: an M3 Max does 0.40 g\u002Fs, a little under a quarter of the 4070 Ti SUPER. Not worth mining with, but enough to try it on a laptop.",[26,227,229],{"id":228},"the-reference-miner-in-rust","The reference miner in Rust",[11,231,232],{},"Last year the Grin forum discussed funding a Rust rewrite of NicolasFlamel1's Cuckatoo Reference Miner:",[11,234,235],{},[20,236,237],{"href":237,"rel":238},"https:\u002F\u002Fforum.grin.mw\u002Ft\u002Frequest-for-funding-cuckatoo-reference-miner\u002F12033",[24],[11,240,241],{},"That attempt never produced a cycle that passed a correct verifier, and it stalled. MXGM does mean, slean and lean trimming like the reference miner and accepts its command-line flags. Its verifier is tested against Grin's known-answer vectors, with an optional cross-check against Tromp's reference solver.",[26,243,245],{"id":244},"other-things-it-does","Other things it does",[165,247,248,251,254,257,260,274,277,287],{},[168,249,250],{},"CUDA on NVIDIA, OpenCL on other cards, Metal on Macs.",[168,252,253],{},"Picks the slean split that fits your card's VRAM, so 8 GB cards work without any config.",[168,255,256],{},"Multi-GPU.",[168,258,259],{},"TLS to the pool, reconnects, and failover to backup pools. Tested on 2Miners.",[168,261,262,263,266,267,266,270,273],{},"Overclocking from the command line: ",[65,264,265],{},"--pl",", ",[65,268,269],{},"--cclk",[65,271,272],{},"--mclk",", offsets, fan. Restored on exit.",[168,275,276],{},"A watchdog that exits with a restartable code if a card stalls, and a thermal pause.",[168,278,279,282,283,286],{},[65,280,281],{},"--apiport"," serves a small browser dashboard and a ",[65,284,285],{},"\u002Fsummary"," JSON endpoint.",[168,288,289],{},"lolMiner-style console and command line, so your scripts mostly just work.",[26,291,293],{"id":292},"downloads","Downloads",[165,295,296,302,308],{},[168,297,298,301],{},[65,299,300],{},"mxgm-v0.1.252-linux-x86_64.tar.gz",": Linux x86-64, glibc 2.30 or newer",[168,303,304,307],{},[65,305,306],{},"mxgm-v0.1.252-macos-arm64.tar.gz",": macOS on Apple Silicon",[168,309,310,313],{},[65,311,312],{},"mxgm-v0.1.252-windows-x86_64.zip",": Windows x86-64",[11,315,316,317,320],{},"K=2, the fastest layout, needs a 16 GB card with no monitor attached. A card that drives a display runs K=4, about 1.0 g\u002Fs on an RTX 4070 Ti SUPER. On Linux, K=2 doesn't fit next to the display. On Windows, MXGM keeps 1 GB free on that card, because Windows would otherwise move the miner into system RAM whenever another program wants VRAM, and the rate can drop to 0.05 g\u002Fs. If Windows runs a game or browser on a card without a monitor (\"High performance\" in Windows' graphics settings), ",[65,318,319],{},"--slean-parts 4"," keeps that card at K=4.",[26,322,324],{"id":323},"verifying","Verifying",[326,327,332],"pre",{"className":328,"code":329,"language":330,"meta":331,"style":331},"language-sh shiki shiki-themes github-dark","gpg --verify SHA256SUMS.asc SHA256SUMS\nsha256sum -c SHA256SUMS            # Linux\nshasum -a 256 -c SHA256SUMS        # macOS\ncertutil -hashfile mxgm-v0.1.252-windows-x86_64.zip SHA256    # Windows: compare with SHA256SUMS\n","sh","",[65,333,334,342,348,354],{"__ignoreMap":331},[335,336,339],"span",{"class":337,"line":338},"line",1,[335,340,341],{},"gpg --verify SHA256SUMS.asc SHA256SUMS\n",[335,343,345],{"class":337,"line":344},2,[335,346,347],{},"sha256sum -c SHA256SUMS            # Linux\n",[335,349,351],{"class":337,"line":350},3,[335,352,353],{},"shasum -a 256 -c SHA256SUMS        # macOS\n",[335,355,357],{"class":337,"line":356},4,[335,358,359],{},"certutil -hashfile mxgm-v0.1.252-windows-x86_64.zip SHA256    # Windows: compare with SHA256SUMS\n",[11,361,362,363,366,367,370,371,176],{},"Each archive also has its own ",[65,364,365],{},".asc",". Signing key: ",[65,368,369],{},"A6EF 4605 FCE6 FD23 0262  EAA2 18CE ADAC 856C DB53"," (Maxnflaxl ",[20,372,374],{"href":373},"mailto:me@maxnflaxl.dev","me@maxnflaxl.dev",[26,376,378],{"id":377},"dev-fee","Dev fee",[11,380,381],{},"1%: one 36-second round per hour. The closed miners charge the same, so the open one costs you nothing extra.",[11,383,384,385,388],{},"Fee rounds get their own row in the stats and the API and never mix with your shares. ",[65,386,387],{},"--dev-fee"," raises it. Nothing lowers it.",[26,390,392],{"id":391},"what-would-help","What would help",[11,394,395],{},"Numbers from cards I don't own. Run",[326,397,402],{"className":398,"code":400,"language":401},[399],"language-text","sudo mxgm --report\n","text",[65,403,400],{"__ignoreMap":331},[11,405,406,407,159],{},"It benchmarks your card, measures the power curve and prints a markdown block. Root is only for the power curve, because setting the power limit needs it; without it you still get the benchmark. On Windows, use an Administrator terminal. Nothing is uploaded. Send me the block on any of my ",[20,408,411],{"href":409,"rel":410},"https:\u002F\u002Fmaxnflaxl.dev\u002Fsocials",[24],"socials",[413,414],"project-download",{"name":415},"MXGM",[417,418,419],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":331,"searchDepth":344,"depth":344,"links":421},[422,423,424,425,426,427,428,429,430],{"id":28,"depth":344,"text":29},{"id":162,"depth":344,"text":163},{"id":221,"depth":344,"text":222},{"id":228,"depth":344,"text":229},{"id":244,"depth":344,"text":245},{"id":292,"depth":344,"text":293},{"id":323,"depth":344,"text":324},{"id":377,"depth":344,"text":378},{"id":391,"depth":344,"text":392},"2026-10-08T22:03:32Z","A Grin miner in Rust, faster than GMiner and lolMiner at every setting measured.","md",{},true,"\u002Fblog\u002F5-mxgm-v01252-an-open-source-cuckatoo32-gpu-miner",{"title":5,"description":432},"blog\u002F5-mxgm-v01252-an-open-source-cuckatoo32-gpu-miner",[415],"BGuVnf3WZ8wXA3eeTHs6jjIzAP54pSDETmA_qaPN4c4",1791497223940]