<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://cmp.wiki/w/index.php?action=history&amp;feed=atom&amp;title=170tune</id>
	<title>170tune - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://cmp.wiki/w/index.php?action=history&amp;feed=atom&amp;title=170tune"/>
	<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=170tune&amp;action=history"/>
	<updated>2026-10-31T08:27:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://cmp.wiki/w/index.php?title=170tune&amp;diff=144&amp;oldid=prev</id>
		<title>ImportBot: Import: 170tune tuning harness, @rh3dai, @robbbbbb7973, @cibernox, @ichundes, @drew_2, @vektor_prime, @vcore2191, @gnasherrr; repos cachenetics/170tune, vektorprime/170tune</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=170tune&amp;diff=144&amp;oldid=prev"/>
		<updated>2026-10-30T08:03:45Z</updated>

		<summary type="html">&lt;p&gt;Import: 170tune tuning harness, @rh3dai, @robbbbbb7973, @cibernox, @ichundes, @drew_2, @vektor_prime, @vcore2191, @gnasherrr; repos cachenetics/170tune, vektorprime/170tune&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Status|Reported}} {{Cards|both}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;170tune&amp;#039;&amp;#039;&amp;#039; is a tuning and qualification harness for the CMP 170HX: SM clock ceiling and undervolt (clock offset), live HBM memory clock, DRAM timings and refresh, each gated by a hot full-VRAM write and read-back plus a bit-exact compute check. It applies settings live over BAR0, with no driver rebuild or VBIOS flash, so the card always boots stock. It is built around the card&amp;#039;s failure mode: silent memory corruption. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}.&lt;br /&gt;
&lt;br /&gt;
* Upstream: https://github.com/cachenetics/170tune (Cachenetics, commits by studebaker8, MIT). Last commit 2026-09-28.&lt;br /&gt;
* Fork with 10 GB support: https://github.com/vektorprime/170tune, branch &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;fbpa-first-active&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (2026-10-07), meant to pair with https://github.com/vektorprime/cmpunlocker branch &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;fbpa-pll-170tune&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/vektorprime/170tune}}.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* A CMP 170HX: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x20C2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (8 GB, 64 GB unlocked) or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x2082&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (10 GB, 40 GB unlocked); any other device is refused. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}.&lt;br /&gt;
* The cmpunlocker memory unlock, reference driver 610.43.03, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;iomem=relaxed&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on the kernel command line, NVML and a CUDA toolkit to build the sm_80 probes, root. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo 170tune preflight&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; checks all of it. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}.&lt;br /&gt;
* {{Status|Warning}} &amp;#039;&amp;#039;&amp;#039;The unlock must open the right register window.&amp;#039;&amp;#039;&amp;#039; The live memory clock tool reads and writes the unicast FBPA0 PLL window (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x00903c7c&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x00903c98&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;). An unlock that only opens the broadcast window (asm64-hooligan&amp;#039;s cmpunlocker opens only &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x009a3c7c&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) makes those reads return a PRI error (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xBADF...&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;), and preflight reports the window as fenced. Use a cmpunlocker lineage that 170tune targets, or set the memory clock with the unlock&amp;#039;s driver bake (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--mclk-ndiv=N&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) and do not use 170tune&amp;#039;s live memory clock. A driver built with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--mclk-ndiv&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is refused by 170tune. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556290671839551501}}&amp;lt;br /&amp;gt;{{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}. Which unlock builds open which window is on [[Driver unlock]].&lt;br /&gt;
&lt;br /&gt;
== What it found on the reference card ==&lt;br /&gt;
All numbers are from one 8 GB card on the 300 W VBIOS (92.00.6D.00.0A), PCIe Gen2 x4. The authors insist you qualify your own card. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}.&lt;br /&gt;
* Memory clock = NDIV x 27 MHz. Stock points, detected automatically: 10 GB card NDIV 45 (1215 MHz), 8 GB 250 W VBIOS NDIV 54 (1458 MHz), 8 GB 300 W VBIOS NDIV 64 (1728 MHz). The two 8 GB VBIOS variants cannot be told apart by PCI ID; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;STOCK_NDIV=&amp;lt;n&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; overrides.&lt;br /&gt;
* Serving default: SM offset +250 with a 1400 MHz ceiling, HBM NDIV 70, REFRESH 24, fan driven by HBM temperature: +10 percent read bandwidth with zero Xids as long as HBM stays at or below about 76 C. NDIV up to 76 (+19 percent) is bench only: NDIV 72 corrupts as it heats past about 75 C, 74 to 76 crash on the first real load.&lt;br /&gt;
* SM offsets +300 and +350 pass cool benchmarks and then fault in a long serving soak with Xid 13 on weak SMs; under a 200 W cap +280 and +290 threw Xid 13 then Xid 43. Serving-qualified offsets on this card: +200 and +250.&lt;br /&gt;
* Stock BF16 tensor GEMM 184.3 TFLOPS at 199.2 W; +250 at 1400 MHz gives 186.5 TFLOPS at 142.2 W (29 percent less power at stock performance). Stock HBM read 1679 GB/s.&lt;br /&gt;
* Single-stream decode is not bandwidth bound, so the HBM overclock buys almost nothing there. A 175 W cap is the efficiency knee for unattended serving.&lt;br /&gt;
&lt;br /&gt;
== Rules from its changelog ==&lt;br /&gt;
{{Status|Warning}}&lt;br /&gt;
* Never change NDIV while a CUDA context is active: the GPU wedges (Xid 45 or 119) and needs a power cycle.&lt;br /&gt;
* Drive the GPU fan from HBM temperature whenever the card serves.&lt;br /&gt;
* Four or more hot sweeps are the gate. Two clean sweeps once shipped a profile that later returned memory errors.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;nvidia-smi&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; reports 1728 MHz at every NDIV. Read the real value with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;170tune -i N status&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* An NVML clock-offset write can return success while the driver drops it; only a read-back proves it applied. A 150 W power ceiling on some cards is a VBIOS value that neither 170tune nor cmpunlocker changes.&lt;br /&gt;
{{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}.&amp;lt;br /&amp;gt;{{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/vektorprime/170tune}}.&lt;br /&gt;
&lt;br /&gt;
== Persistence ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;170tune persist save&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; writes a receipt that binds the card serial, PCI ID, driver and VBIOS; a driver or VBIOS change invalidates it. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;persist enable&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; installs a one-shot systemd unit that applies the settings after the driver loads, and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;170tune-bootcheck.service&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; reverts to stock if the previous boot&amp;#039;s apply never checked in. To undo: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;170tune persist disable&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;systemctl mask 170tune-persist.service&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Select cards with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-i N&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--gpu N&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/cachenetics/170tune}}.&lt;br /&gt;
&lt;br /&gt;
== 10 GB card ==&lt;br /&gt;
Only on the vektorprime fork branch &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;fbpa-first-active&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which finds the PLL window through the first live memory partition instead of FBPA0 and stops reporting 10 GB tuning that never applied. On the test 10 GB card (VBIOS 92.00.66.00.02) the GPC clock-offset range is [0, +0], so there is no SM undervolt, and the SM clock tops out at 1410 MHz. NDIV 55 corrupted on the first sweep and wedged the card; NDIV 50 passed a 4-sweep screen and gave +14.2 percent read bandwidth over stock (1418 GB/s measured stock read). {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053|repo=https://github.com/vektorprime/170tune}}.&lt;br /&gt;
&lt;br /&gt;
== Experience in the Discord ==&lt;br /&gt;
* {{Status|Contested}} &amp;#039;&amp;#039;&amp;#039;Offsets differ per card.&amp;#039;&amp;#039;&amp;#039; The reference card serves at +250. @cibernox ran the 170tune stability gate at +250, found his card unstable in practice, and settled on +150. {{Source|handle=cibernox|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1557415258174267494}} @ichundes followed the full procedure including workload tests and still saw sporadic errors on a 2-card box, with no way to tell which card. {{Source|handle=ichundes|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1557390595197247540}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Preflight fails with &amp;quot;FBPA privilege masks&amp;quot;.&amp;#039;&amp;#039;&amp;#039; @rh3dai hit &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[FAIL] FBPA privilege masks (unlock)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. {{Source|handle=rh3dai|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1556287917775655053}} @drew_2 got the same with the latest cachenetics/170tune on amoghmunikote master, and again with the vektorprime pair. {{Source|handle=drew_2|date=2026-10-12|link=https://discord.com/channels/1518634379604136178/1555480078089986138/1559076045645160469}} @vektor_prime&amp;#039;s first question: are you on the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;fbpa-pll-170tune&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; branch? {{Source|handle=vektor_prime|date=2026-10-08|link=https://discord.com/channels/1518634379604136178/1555480078089986138/1557555043152957623}} On @rh3dai&amp;#039;s 36 cards, all but one tuned on the vektorprime build on the first try. {{Source|handle=rh3dai|date=2026-10-11|link=https://discord.com/channels/1518634379604136178/1555480078089986138/1558974269449314335}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;The HOT pass on water.&amp;#039;&amp;#039;&amp;#039; Water-cooled cards whose HBM stays at 45 to 50 C never reach the hot gate&amp;#039;s threshold, so the HOT pass never completes. {{Source|handle=rh3dai|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1555480078089986138/1557500085561073766}}&amp;lt;br /&amp;gt;{{Source|handle=rh3dai|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1559924528497426436}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;LACT accepts more.&amp;#039;&amp;#039;&amp;#039; The LACT curve editor sets voltage and frequency curves that 170tune refuses, for example a curve from 210 MHz up to 1695 MHz. {{Source|handle=vcore2191|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1534543856006332586/1557368673264476172}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Idle settings.&amp;#039;&amp;#039;&amp;#039; @robbbbbb7973&amp;#039;s idle gate output (driver 610.57.04, VBIOS 92.00.6D.00.0A): &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;IDLE_CLK=210 IDLE_NDIV=30 COOL_REFRESH=24 IDLE_REFRESH=48 BUSY_NDIV=64 BUSY_REFRESH=6 COOL_C=60 HOT_C=63&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;; his three cards idle at 23, 25 and 26 W. {{Source|handle=robbbbbb7973|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1534543856006332586/1558371152831844353}}&amp;lt;br /&amp;gt;{{Source|handle=robbbbbb7973|date=2026-10-11|link=https://discord.com/channels/1518634379604136178/1534543856006332586/1558697399491240027}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;No combined build yet.&amp;#039;&amp;#039;&amp;#039; @gnasherrr asked for a fork that does both P2P and 170tune; nobody named one. {{Source|handle=gnasherrr|date=2026-10-26|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1564165428631179337}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Tools]]&lt;br /&gt;
* [[Testing and burn-in]]&lt;br /&gt;
* [[Monitoring]]&lt;br /&gt;
* [[Cooling and power]]&lt;br /&gt;
* [[Driver unlock]]&lt;br /&gt;
&lt;br /&gt;
{{ImportFooter}}&lt;br /&gt;
[[Category:Tools]]&lt;br /&gt;
[[Category:8 GB]]&lt;br /&gt;
[[Category:10 GB]]&lt;/div&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
</feed>