[{"data":1,"prerenderedAt":287},["ShallowReactive",2],{"blog-4":3},{"id":4,"title":5,"author":6,"body":7,"createdAt":276,"description":277,"extension":278,"image":263,"meta":279,"navigation":280,"path":281,"seo":282,"stem":283,"tags":284,"__hash__":286},"blog\u002Fblog\u002F4-mxgm-an-open-source-cuckatoo32-gpu-miner.md","MXGM — an open-source Cuckatoo32 GPU miner","Maxnflaxl",{"type":8,"value":9,"toc":267},"minimark",[10,14,17,25,30,33,151,160,164,167,171,174,180,183,187,233,237,240,247,251,254,264],[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\u002Freleases\u002Ftag\u002Fv0.1.164",[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.316",[61,72,73],{},"192.7",[61,75,76],{},"146",[40,78,79,82,85,88],{},[61,80,81],{},"MXGM, stock",[61,83,84],{},"1.641",[61,86,87],{},"281.6",[61,89,90],{},"172",[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: 146 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},"apple-silicon","Apple Silicon",[11,165,166],{},"On Macs MXGM runs the reference miner's Metal kernels, mean trimming only for now. An M3 Max does 0.31 g\u002Fs on battery, about a fifth of the 4070 Ti SUPER. Not worth mining with, but enough to try it on a laptop.",[26,168,170],{"id":169},"the-reference-miner-in-rust","The reference miner in Rust",[11,172,173],{},"Last year the Grin forum discussed funding a Rust rewrite of NicolasFlamel1's Cuckatoo Reference Miner:",[11,175,176],{},[20,177,178],{"href":178,"rel":179},"https:\u002F\u002Fforum.grin.mw\u002Ft\u002Frequest-for-funding-cuckatoo-reference-miner\u002F12033",[24],[11,181,182],{},"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,184,186],{"id":185},"other-things-it-does","Other things it does",[188,189,190,194,197,200,203,217,220,230],"ul",{},[191,192,193],"li",{},"CUDA on NVIDIA, OpenCL on other cards, Metal on Macs.",[191,195,196],{},"Picks the slean split that fits your card's VRAM, so 8 GB cards work without any config.",[191,198,199],{},"Multi-GPU.",[191,201,202],{},"TLS to the pool, reconnects, and failover to backup pools. Tested on 2Miners.",[191,204,205,206,209,210,209,213,216],{},"Overclocking from the command line: ",[65,207,208],{},"--pl",", ",[65,211,212],{},"--cclk",[65,214,215],{},"--mclk",", offsets, fan. Restored on exit.",[191,218,219],{},"A watchdog that exits with a restartable code if a card stalls, and a thermal pause.",[191,221,222,225,226,229],{},[65,223,224],{},"--apiport"," serves a small browser dashboard and a ",[65,227,228],{},"\u002Fsummary"," JSON endpoint.",[191,231,232],{},"lolMiner-style console and command line, so your scripts mostly just work.",[26,234,236],{"id":235},"dev-fee","Dev fee",[11,238,239],{},"1%: one 36-second round per hour. The closed miners charge the same, so the open one costs you nothing extra.",[11,241,242,243,246],{},"Fee rounds get their own row in the stats and the API and never mix with your shares. ",[65,244,245],{},"--dev-fee"," raises it. Nothing lowers it.",[26,248,250],{"id":249},"what-would-help","What would help",[11,252,253],{},"Numbers from cards I don't own. Run",[255,256,261],"pre",{"className":257,"code":259,"language":260},[258],"language-text","sudo mxgm --report\n","text",[65,262,259],{"__ignoreMap":263},"",[11,265,266],{},"It benchmarks your card, measures the power curve and prints a markdown block to send to me. Nothing is uploaded.",{"title":263,"searchDepth":268,"depth":268,"links":269},2,[270,271,272,273,274,275],{"id":28,"depth":268,"text":29},{"id":162,"depth":268,"text":163},{"id":169,"depth":268,"text":170},{"id":185,"depth":268,"text":186},{"id":235,"depth":268,"text":236},{"id":249,"depth":268,"text":250},"2026-10-04T16:44:48Z","A Grin miner in Rust, faster than GMiner and lolMiner at every setting measured.","md",{},true,"\u002Fblog\u002F4-mxgm-an-open-source-cuckatoo32-gpu-miner",{"title":5,"description":277},"blog\u002F4-mxgm-an-open-source-cuckatoo32-gpu-miner",[285],"MXGM","gHlChGIuv_hzTW11UR9EA3N07R4-xXQFVd3uAQ-m668",1791141077686]