<?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=ECC</id>
	<title>ECC - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://cmp.wiki/w/index.php?action=history&amp;feed=atom&amp;title=ECC"/>
	<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=ECC&amp;action=history"/>
	<updated>2026-10-31T06:12:22Z</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=ECC&amp;diff=452&amp;oldid=prev</id>
		<title>ImportBot: Software ECC on HBM and SRAM in cmpunlocker v0.5: what it sets, which counters are real vs intercepted, and the open question of whether it corrects errors. Discord Oct 2026.; sources: @_j3ns, @alanoo, @zarquon3157, @zombielurker, @ichundes, @darkmaniac7, @arabus_74064; GitHub amoghmunikote/cmpunlocker</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=ECC&amp;diff=452&amp;oldid=prev"/>
		<updated>2026-10-30T10:02:03Z</updated>

		<summary type="html">&lt;p&gt;Software ECC on HBM and SRAM in cmpunlocker v0.5: what it sets, which counters are real vs intercepted, and the open question of whether it corrects errors. Discord Oct 2026.; sources: @_j3ns, @alanoo, @zarquon3157, @zombielurker, @ichundes, @darkmaniac7, @arabus_74064; GitHub amoghmunikote/cmpunlocker&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:02, 30 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l50&quot;&gt;Line 50:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 50:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The counterpoint: with ECC enabled an unstable card &amp;#039;&amp;#039;&amp;#039;crashes with an Xid instead of silently generating garbage&amp;#039;&amp;#039;&amp;#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The counterpoint: with ECC enabled an unstable card &amp;#039;&amp;#039;&amp;#039;crashes with an Xid instead of silently generating garbage&amp;#039;&amp;#039;&amp;#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;which is itself useful. {{Source|ichundes|2026-10-07|https://discord.com/channels/1518634379604136178/1518695289278566450/1557350680342298647}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;which is itself useful. {{Source|ichundes|2026-10-07|https://discord.com/channels/1518634379604136178/1518695289278566450/1557350680342298647}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Status|Proven}} The hardware half does change state. On one 8 GB card, with three other cards as controls, the hardware part of the patch landed all 14 protected writes, &amp;lt;code&amp;gt;FEATURE_READOUT&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0x823814&amp;lt;/code&amp;gt;) went from &amp;lt;code&amp;gt;0x00000233&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0xec8ff233&amp;lt;/code&amp;gt; (DRAM ECC bit 16 set), &amp;lt;code&amp;gt;FBPA_ECC_CTRL&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0x9a0470&amp;lt;/code&amp;gt;) went from 0 to &amp;lt;code&amp;gt;0x41&amp;lt;/code&amp;gt;, and a 60 GiB write/verify passed with ECC on. This shows the bits flip, not that errors are corrected, and it contradicts an earlier write-up that the ECC readout is latched at power-on. How to test real correction: [[Memory errors and ECC]]. {{Source|handle=darkmaniac7|date=2026-10-19|note=lab notes}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Treat ECC as &amp;quot;reported enabled and surfaces errors&amp;quot;, not proven to correct VRAM bit errors.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Treat ECC as &amp;quot;reported enabled and surfaces errors&amp;quot;, not proven to correct VRAM bit errors.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key cmp_wiki:diff:1.41:old-167:rev-452:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
	<entry>
		<id>https://cmp.wiki/w/index.php?title=ECC&amp;diff=167&amp;oldid=prev</id>
		<title>ImportBot: Software ECC on HBM and SRAM in cmpunlocker v0.5: what it sets, which counters are real vs intercepted, and the open question of whether it corrects errors. Discord Oct 2026.; sources: @_j3ns, @alanoo, @zarquon3157, @zombielurker, @ichundes, @arabus_74064; GitHub amoghmunikote/cmpunlocker</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=ECC&amp;diff=167&amp;oldid=prev"/>
		<updated>2026-10-30T08:04:15Z</updated>

		<summary type="html">&lt;p&gt;Software ECC on HBM and SRAM in cmpunlocker v0.5: what it sets, which counters are real vs intercepted, and the open question of whether it corrects errors. Discord Oct 2026.; sources: @_j3ns, @alanoo, @zarquon3157, @zombielurker, @ichundes, @arabus_74064; GitHub amoghmunikote/cmpunlocker&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Unlock&lt;br /&gt;
|unlocks=ECC (DRAM and SRAM)&lt;br /&gt;
|variant=both&lt;br /&gt;
|driver_version=nvidia-open 610+ (cmpunlocker v0.5)&lt;br /&gt;
|unlock_build=amoghmunikote/cmpunlocker v0.5&lt;br /&gt;
|steps_page=ECC&lt;br /&gt;
|status=Reported&lt;br /&gt;
|tested_by=_j3ns&lt;br /&gt;
|source=https://github.com/amoghmunikote/cmpunlocker&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Software-based ECC landed in [[Driver unlock|cmpunlocker]] v0.5 on 2026-10-04 and is credited to Amogh. It is one of&lt;br /&gt;
the main reasons prices rose after the release. {{Source|_j3ns|2026-10-04|https://discord.com/channels/1518634379604136178/1518692084729511967/1556439155360407583}}&lt;br /&gt;
It is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; in the [[cmpunlocker forks|Morrowmake P2P fork]]; you cannot have both ECC and that fork&amp;#039;s P2P from one&lt;br /&gt;
install today.&lt;br /&gt;
&lt;br /&gt;
== What it sets ==&lt;br /&gt;
&lt;br /&gt;
ECC is native on HBM2e and is a separate thing from VRAM capacity; the patch does not change usable memory.&lt;br /&gt;
{{Source|alanoo|2026-10-05|https://discord.com/channels/1518634379604136178/1518695328008638516/1556643131091583018}}&lt;br /&gt;
The MR4 write in the commit targets bits 1:0 (DM/ECC mode) of an HBM2e mode register. The CMP&amp;#039;s HBM may be fused rather&lt;br /&gt;
than keyed; a Samsung HBM2 part may need a different config than an HBM2e part.&lt;br /&gt;
{{Source|zarquon3157|2026-10-05|https://discord.com/channels/1518634379604136178/1518695328008638516/1556730503657295994}}&lt;br /&gt;
&lt;br /&gt;
Three patches: &amp;lt;code&amp;gt;ecc-enable.patch&amp;lt;/code&amp;gt; (feature override &amp;lt;code&amp;gt;0x0082380c = 0x00999999&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;0x00823810 = 0x003ffebf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0082382c = 0x0000000f&amp;lt;/code&amp;gt;, ECC control&lt;br /&gt;
&amp;lt;code&amp;gt;0x009a0470 = 0x00000041&amp;lt;/code&amp;gt;, LTCG dstcfg0 &amp;lt;code&amp;gt;0x0017e318 = 0x00000001&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;ecc-fbpa-static.patch&amp;lt;/code&amp;gt;&lt;br /&gt;
(forces &amp;lt;code&amp;gt;bEnabledEccFBPA = NV_TRUE&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;0x20c2&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;0x2082&amp;lt;/code&amp;gt;) and&lt;br /&gt;
&amp;lt;code&amp;gt;ecc-reporting.patch&amp;lt;/code&amp;gt; (wires the counters through &amp;lt;code&amp;gt;escape.c&amp;lt;/code&amp;gt;). (From the cmpunlocker patch set.)&lt;br /&gt;
&lt;br /&gt;
== The counters ==&lt;br /&gt;
&lt;br /&gt;
An investigation of which RM controls &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; uses found the counters are mostly &amp;#039;&amp;#039;&amp;#039;real&amp;#039;&amp;#039;&amp;#039;, served by&lt;br /&gt;
GSP, not hardcoded:&lt;br /&gt;
&lt;br /&gt;
* Served by GSP (real): &amp;lt;code&amp;gt;0x20803400&amp;lt;/code&amp;gt; ECC_GET_CLIENT_EXPOSED_COUNTERS, &amp;lt;code&amp;gt;0x20803401&amp;lt;/code&amp;gt;&lt;br /&gt;
  ECC_GET_VOLATILE_COUNTS, &amp;lt;code&amp;gt;0x20803404&amp;lt;/code&amp;gt; ECC_GET_REPAIR_STATUS.&lt;br /&gt;
* Intercepted: &amp;lt;code&amp;gt;0x20800133&amp;lt;/code&amp;gt; GPU_QUERY_ECC_CONFIGURATION (&amp;quot;Enabled&amp;quot; hardcoded),&lt;br /&gt;
  &amp;lt;code&amp;gt;0x2080014b&amp;lt;/code&amp;gt; GET_INFOROM_OBJECT_VERSION (ECC object &amp;quot;6.16&amp;quot;), &amp;lt;code&amp;gt;0x2080012f&amp;lt;/code&amp;gt; legacy status&lt;br /&gt;
  (zeroed), &amp;lt;code&amp;gt;0x20803406&amp;lt;/code&amp;gt; UNREPAIRABLE_MEMORY_FLAG (0).&lt;br /&gt;
&lt;br /&gt;
Ago saw the ECC counter increase on an SRAM error in the NVIDIA Prometheus exporter, consistent with real counters.&lt;br /&gt;
{{Source|alanoo|2026-10-13|https://discord.com/channels/1518634379604136178/1518695328008638516/1559521944024387685}}&lt;br /&gt;
&lt;br /&gt;
== Does it correct errors? (contested) ==&lt;br /&gt;
&lt;br /&gt;
{{Status|contested}} On a card with about 5,000 single-bit and some multi-bit errors per 5-minute&lt;br /&gt;
&amp;lt;code&amp;gt;memtest_vulkan&amp;lt;/code&amp;gt; run, enabling ECC did not correct any of them, and &amp;lt;code&amp;gt;gpu-burn&amp;lt;/code&amp;gt; behaved the same;&lt;br /&gt;
no one showed a corrected-error counter moving. {{Source|zombielurker|2026-10-05|https://discord.com/channels/1518634379604136178/1518692084729511967/1556515369286504489}}&lt;br /&gt;
The counterpoint: with ECC enabled an unstable card &amp;#039;&amp;#039;&amp;#039;crashes with an Xid instead of silently generating garbage&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
which is itself useful. {{Source|ichundes|2026-10-07|https://discord.com/channels/1518634379604136178/1518695289278566450/1557350680342298647}}&lt;br /&gt;
Treat ECC as &amp;quot;reported enabled and surfaces errors&amp;quot;, not proven to correct VRAM bit errors.&lt;br /&gt;
&lt;br /&gt;
== Why keep it on ==&lt;br /&gt;
&lt;br /&gt;
Xid 48/172 uncorrectable ECC errors in GPC0 traced to an over-aggressive undervolt; lowering the voltage offset fixed&lt;br /&gt;
it. Keeping ECC on turned a silent-corruption problem into a clean crash that could be diagnosed, even after 170tune&amp;#039;s&lt;br /&gt;
stability test passed. {{Source|ichundes|2026-10-07|https://discord.com/channels/1518634379604136178/1518695289278566450/1557350219111342183}}&lt;br /&gt;
See [[Cooling and power]] and [[Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* No performance impact on bandwidth is reported from ECC; one decode regression after the 0.4 to 0.5 move was suspected&lt;br /&gt;
  to be ECC but not confirmed (see [[Driver unlock]]).&lt;br /&gt;
* ECC also reports &amp;quot;enabled&amp;quot; on unrelated cards (5060, 3050, 3090) after the unlock, which may be reporting only.&lt;br /&gt;
  {{Source|arabus_74064|2026-10-05|https://discord.com/channels/1518634379604136178/1518692084729511967/1556465749948629003}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Enabled and reproduced by others (68x live on master; MistyAshHole ran it clean for 25 h), so &amp;quot;enabled&amp;quot; is&lt;br /&gt;
{{Status|Proven}}; whether it corrects VRAM errors is {{Status|Contested}}. See the confirmation below.&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
[[Driver unlock]], [[cmpunlocker forks]], [[Cooling and power]], [[Troubleshooting]], [[Tools]].&lt;br /&gt;
&lt;br /&gt;
{{ImportFooter}}&lt;br /&gt;
[[Category:Unlocks]]&lt;br /&gt;
[[Category:8 GB]]&lt;br /&gt;
[[Category:10 GB]]&lt;/div&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
</feed>