<?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=Virtual_machines_and_passthrough</id>
	<title>Virtual machines and passthrough - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://cmp.wiki/w/index.php?action=history&amp;feed=atom&amp;title=Virtual_machines_and_passthrough"/>
	<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;action=history"/>
	<updated>2026-11-01T03:08:51Z</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=Virtual_machines_and_passthrough&amp;diff=645&amp;oldid=prev</id>
		<title>ImportBot: Import: VM and passthrough update from the older history (2026-07-30 to 2026-10-03): host or guest unlock (contested), the upstream passthrough route, Proxmox problems and LXC, Unraid, XCP-ng, libvirt, nightdays&#039; ESXi R7515 recipe, ESXi MMIO sizing (contested), P2P in a VM (warning); lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough, PixelML/club-170hx, amoghmunikote/cmpunlocker passthrough branch, @.nightdays, @prometasfw, @ikyo, @bismuth67, @spiralglide, @</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=645&amp;oldid=prev"/>
		<updated>2026-11-01T02:56:33Z</updated>

		<summary type="html">&lt;p&gt;Import: VM and passthrough update from the older history (2026-07-30 to 2026-10-03): host or guest unlock (contested), the upstream passthrough route, Proxmox problems and LXC, Unraid, XCP-ng, libvirt, nightdays&amp;#039; ESXi R7515 recipe, ESXi MMIO sizing (contested), P2P in a VM (warning); lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough, PixelML/club-170hx, amoghmunikote/cmpunlocker passthrough branch, @.nightdays, @prometasfw, @ikyo, @bismuth67, @spiralglide, @&lt;/p&gt;
&lt;a href=&quot;https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;amp;diff=645&amp;amp;oldid=483&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
	<entry>
		<id>https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=483&amp;oldid=prev</id>
		<title>ImportBot: ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others; gap-fill from #general 2026-10-25 (CMP plus V100), @zingy90210, @nathang6866</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=483&amp;oldid=prev"/>
		<updated>2026-10-30T10:02:44Z</updated>

		<summary type="html">&lt;p&gt;ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others; gap-fill from #general 2026-10-25 (CMP plus V100), @zingy90210, @nathang6866&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-l55&quot;&gt;Line 55:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 55:&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;* GalyGames: the unlock works on his Proxmox system (Debian based), and he reproduced Plean&amp;#039;s 2-card Qwen3.8 Flash Next recipe on Proxmox. {{Source|handle=galygious|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1557452515354607679}}&amp;lt;br /&amp;gt;{{Source|handle=galygious|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1518695328008638516/1558336191634612340}}&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;* GalyGames: the unlock works on his Proxmox system (Debian based), and he reproduced Plean&amp;#039;s 2-card Qwen3.8 Flash Next recipe on Proxmox. {{Source|handle=galygious|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1557452515354607679}}&amp;lt;br /&amp;gt;{{Source|handle=galygious|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1518695328008638516/1558336191634612340}}&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;* ElectroHobo ran 170HX cards and V100s in one Dell R730 under Proxmox while first testing, in separate VMs rather than one model across both. {{Source|handle=nathang6866|date=2026-10-25|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563727993896177735}} See [[Dell PowerEdge R730]].&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;* ElectroHobo ran 170HX cards and V100s in one Dell R730 under Proxmox while first testing, in separate VMs rather than one model across both. {{Source|handle=nathang6866|date=2026-10-25|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563727993896177735}} See [[Dell PowerEdge R730]].&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;** He answered PJ, who had asked owners of both cards to try combining them now that 170HX prices are up. He thinks the only way to run one model across both is two VMs plus software that shards the model across machines. He also has four 32 GB SXM2 V100s (no four-card board yet) and five 170HX in a Supermicro server, and plans separate models on each group. Mixed-GPU vLLM: see [[Operating systems and kernels#Mixed GPUs in one host]]. {{Source|handle=zingy90210|date=2026-10-25|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563725299273957438}}&amp;lt;br /&amp;gt;{{Source|handle=nathang6866|date=2026-10-25|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563727993896177735}}&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;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;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;== ESXi ==&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;== ESXi ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key cmp_wiki:diff:1.41:old-363:rev-483:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
	<entry>
		<id>https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=363&amp;oldid=prev</id>
		<title>ImportBot: ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=363&amp;oldid=prev"/>
		<updated>2026-10-30T08:47:27Z</updated>

		<summary type="html">&lt;p&gt;ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others&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 08:47, 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-l49&quot;&gt;Line 49:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 49:&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;* Froggo: &amp;quot;mine wouldnt work in proxmox&amp;quot;. No details. {{Source|handle=froggao|date=2026-10-18|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561443221832208445}}&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;* Froggo: &amp;quot;mine wouldnt work in proxmox&amp;quot;. No details. {{Source|handle=froggao|date=2026-10-18|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561443221832208445}}&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;* ybryany could not get hardware VFIO passthrough of the CMP to work with a CachyOS (Arch) host; the card works on the host itself beside an RTX 4080 Super. {{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748494875426837}}&amp;lt;br /&amp;gt;{{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748535690203160}}&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;* ybryany could not get hardware VFIO passthrough of the CMP to work with a CachyOS (Arch) host; the card works on the host itself beside an RTX 4080 Super. {{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748494875426837}}&amp;lt;br /&amp;gt;{{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748535690203160}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Compute hangs in a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;passthrough VM after &lt;/del&gt;the unlock&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: A longer &lt;/del&gt;write-up &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;by @vipic exists&lt;/del&gt;; see [https://discord.com/channels/1518634379604136178/1518692084729511967/1561427071157272727 Discord].&lt;/div&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;&#039;&#039;&#039;&lt;/ins&gt;Compute hangs &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;after the unlock: drop &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;bar1-resize-unlock.patch&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039; ViPiC (Debian 13.4 guest with PCI passthrough, hypervisor not named, nvidia-open 615.71.09, also tried 610.43.02): after the unlock &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;nvidia-smi&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; showed 64 GB and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;./verify.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; passed, but any compute workload hung the process, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;nvidia-smi&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; stopped responding and the VM could not reboot cleanly; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;./remove.sh --yes&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; stopped the hangs but returned the card to 8 GB. The fix was to build the unlock without &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;bar1-resize-unlock.patch&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (remove the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;bar1_resize&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; entry from &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;common/constants.yaml&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and the patch from &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PATCH_ORDER&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;driver/build.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;); that patch writes the card&#039;s BAR1 override registers and enables &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;NVreg_EnableResizableBar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Without it there were no hangs and all 64 GB stayed. It had worked two days earlier, before a bootloader repair, &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kernel update and a reinstall of &lt;/ins&gt;the unlock&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This matches the ESXi finding that the BAR1 resize is a Linux-host path that does not work inside a VM. Summary of his &lt;/ins&gt;write-up; see [https://discord.com/channels/1518634379604136178/1518692084729511967/1561427071157272727 Discord]. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Source|handle=vipic|date=2026-10-18|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561427071157272727}}&amp;lt;br /&amp;gt;{{Source|handle=vipic|date=2026-10-18|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561429038361223329}}&amp;lt;br /&amp;gt;{{Source|handle=vipic|date=2026-10-18|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561436105767788685}}&amp;lt;br /&amp;gt;{{Source|handle=vipic|date=2026-10-19|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561714793637744711}}&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;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;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;=== Proxmox setups people run ===&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;=== Proxmox setups people run ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key cmp_wiki:diff:1.41:old-346:rev-363:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
	<entry>
		<id>https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=346&amp;oldid=prev</id>
		<title>ImportBot: ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=346&amp;oldid=prev"/>
		<updated>2026-10-30T08:43:03Z</updated>

		<summary type="html">&lt;p&gt;ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others&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 08:43, 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-l57&quot;&gt;Line 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&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;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;== ESXi ==&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;== ESXi ==&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;Step-by-step for the 64 GB BAR1: [[BAR1 64 GB on ESXi]]. Code and write-up: [https://github.com/darkmaniac7/cmp170hx-esxi darkmaniac7/cmp170hx-esxi]. {{Source|handle=darkmaniac7|date=2026-10-21|repo=https://github.com/darkmaniac7/cmp170hx-esxi|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;Four 8 GB cards (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;10de:20c2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, Hynix HBM, VBIOS 92.00.67.00.01) were passed through from VMware ESXi 8.0.3 into one Ubuntu 24.04 VM, next to other newer NVIDIA GPUs in the same guest, on a single-socket EPYC server with the slots bifurcated x8/x8 so every card sits behind its own root port. Measured in October 2026. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&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;Four 8 GB cards (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;10de:20c2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, Hynix HBM, VBIOS 92.00.67.00.01) were passed through from VMware ESXi 8.0.3 into one Ubuntu 24.04 VM, next to other newer NVIDIA GPUs in the same guest, on a single-socket EPYC server with the slots bifurcated x8/x8 so every card sits behind its own root port. Measured in October 2026. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&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;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l97&quot;&gt;Line 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&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;# programs the parent port&amp;#039;s prefetchable window;&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;# programs the parent port&amp;#039;s prefetchable window;&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;# restores the parent port&amp;#039;s COMMAND register;&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;# restores the parent port&amp;#039;s COMMAND register;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;then starts the existing ESXi loader with its original load options. It adds about 3.5 to 4 minutes to a host boot and has to run on every host boot. Two traps: the CYA store alone already moves CTRL from &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x801&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, so do not expect &quot;unchanged&quot;; and the card&#039;s extended capability chain has a null capability (ID 0) at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x900&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, so a strict decoder never reaches the ReBAR block at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbb0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. ESXi&#039;s own view then reports BAR size 68719476736 and the guest &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;resource1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is 64 GiB. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ask @darkmaniac7 &lt;/del&gt;on &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Discord for &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;writer before improvising one&lt;/del&gt;. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;/div&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;then starts the existing ESXi loader with its original load options. It adds about 3.5 to 4 minutes to a host boot and has to run on every host boot. Two traps: the CYA store alone already moves CTRL from &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x801&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, so do not expect &quot;unchanged&quot;; and the card&#039;s extended capability chain has a null capability (ID 0) at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x900&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, so a strict decoder never reaches the ReBAR block at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbb0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. ESXi&#039;s own view then reports BAR size 68719476736 and the guest &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;resource1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is 64 GiB. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The full procedure, build notes and risks are on [[BAR1 64 GB &lt;/ins&gt;on &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ESXi]]; &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;code is in [https://github.com/darkmaniac7/cmp170hx-esxi darkmaniac7/cmp170hx-esxi]&lt;/ins&gt;. {{Source|handle=darkmaniac7|date=2026-10-21&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|repo=https://github.com/darkmaniac7/cmp170hx-esxi&lt;/ins&gt;|note=lab notes}}&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;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;=== VM settings ===&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;=== VM settings ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key cmp_wiki:diff:1.41:old-212:rev-346:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
	<entry>
		<id>https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=212&amp;oldid=prev</id>
		<title>ImportBot: ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others</title>
		<link rel="alternate" type="text/html" href="https://cmp.wiki/w/index.php?title=Virtual_machines_and_passthrough&amp;diff=212&amp;oldid=prev"/>
		<updated>2026-10-30T08:05:20Z</updated>

		<summary type="html">&lt;p&gt;ESXi and Proxmox passthrough of CMP 170HX cards from @darkmaniac7 lab notes (ESXi 8, 4 cards), anoane/01-proxmox-dual-gpu-passthrough (posted by @logy0), PixelML/club-170hx, and Discord reports by benoit, SpiralGlide, ybryany, Froggo, ViPiC and others&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;
Running CMP 170HX cards inside a virtual machine works, with more moving parts than bare metal. The short version:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Unlock where the NVIDIA driver runs.&amp;#039;&amp;#039;&amp;#039; Under Proxmox/QEMU most people unlock on the host and pass the unlocked card in. Under ESXi the unlock runs inside the guest.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;64 GB VRAM works in a VM.&amp;#039;&amp;#039;&amp;#039; It does not need a big BAR1.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Gen2 works in a VM&amp;#039;&amp;#039;&amp;#039;, but how it is done differs per hypervisor, and the Gen2 path has caused guest hangs under Proxmox for some people.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;64 GB BAR1 in a VM is hard&amp;#039;&amp;#039;&amp;#039; (ESXi needs a pre-boot step on every host boot).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;P2P between CMPs inside a VM has not been shown to work&amp;#039;&amp;#039;&amp;#039; by anyone in these sources.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bare metal is much simpler.&amp;#039;&amp;#039;&amp;#039; {{Source|handle=darkmaniac7|date=2026-10-29|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
See also [[Server BIOS setup]] (case D), [[Operating systems and kernels]], [[Gen2 link retrain]], [[Resizable BAR and BAR1 64 GB]], [[P2P]].&lt;br /&gt;
&lt;br /&gt;
== Where to run the unlock ==&lt;br /&gt;
Asked whether the unlock must happen on the hypervisor, benoit tried both on Proxmox: unlocking fully inside the VM gave him trouble unlocking both cards, while unlocking on the Proxmox host worked and is what he kept. {{Source|handle=jack0x01|date=2026-10-08|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1557804623996387329}}&amp;lt;br /&amp;gt;{{Source|handle=bismuth67|date=2026-10-08|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1557833870626529311}} SpiralGlide does the same: unlock on the host and pass the card into a container that runs Docker containers. {{Status|Proven}} {{Source|handle=spiralglide|date=2026-10-08|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1557834451499880519}}&lt;br /&gt;
&lt;br /&gt;
The PixelML club writes the same rule from its VFIO baseline: under VFIO the unlock can be applied host-side so the guest runs the stock driver; their second host showed Gen2 x16 and 64 GB in the guest that way. {{Source|handle=djpandaman|date=2026-10-24|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563629622673936384|repo=https://github.com/PixelML/club-170hx}} (docs/INSTALLATION.md)&lt;br /&gt;
&lt;br /&gt;
The cmpunlocker upstream &amp;quot;Virtual Passthrough&amp;quot; route also unlocks on the host, because under QEMU/VFIO the in-guest Booter path returns &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x15&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (ACR_ERROR_FLCN_REG_ACCESS) and the guest ends up on a stock driver. Under ESXi that error did not appear and the whole v0.5 core ran inside the guest. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
aidoc confirmed his register probe script can be run from inside a VM. {{Source|handle=sekkit_75019|date=2026-10-04|link=https://discord.com/channels/1518634379604136178/1518695328008638516/1556290013497528422}}&lt;br /&gt;
&lt;br /&gt;
== Proxmox (QEMU/KVM, VFIO) ==&lt;br /&gt;
&lt;br /&gt;
=== A working Proxmox host recipe ===&lt;br /&gt;
The most complete public Proxmox write-up is the anoane repo (MIT license), linked by Logy as the guide he followed: {{Source|handle=logy0|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1540599965007478854/1558505023187714068|repo=https://github.com/anoane/01-proxmox-dual-gpu-passthrough}}. It passes an RTX PRO 6000 Blackwell and an 8 GB CMP 170HX unlocked to 64 GB into one Ubuntu 24.04 guest. The author calls it a point-in-time transcription of one host, not a turnkey script. Key points from the repo (commit &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;865a608&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, 2026-09-22):&lt;br /&gt;
* Host: Proxmox VE 9.2.x, kernel 7.0.x-pve, &amp;#039;&amp;#039;&amp;#039;Secure Boot disabled&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;mokutil --sb-state&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; must say disabled), AMD Ryzen 9 9950X3D. cmpunlocker pinned at commit &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;76f0954&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on the host with driver 610.43.02. The guest runs Ubuntu 24.04.4, kernel 6.8.0-139-generic, the &amp;#039;&amp;#039;&amp;#039;stock&amp;#039;&amp;#039;&amp;#039; NVIDIA driver 610.43.02; the unlock lives on the host. The guest sees the CMP as &amp;quot;NVIDIA Graphics Device&amp;quot; with 65,536 MiB, so match it by PCI id &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;10de:20c2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, not by name.&lt;br /&gt;
* Host kernel command line: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;quiet amd_iommu=on iommu=pt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;; modules &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;vfio vfio_iommu_type1 vfio_pci vfio_virqfd&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;options vfio-pci disable_idle_d3=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: if vfio idles the CMP into D3, BAR0 reads all ones and the card disappears.&lt;br /&gt;
* The CMP is armed and bound by cmpunlocker&amp;#039;s boot service, not by the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;vfio-pci ids=&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; list.&lt;br /&gt;
* VM: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;machine q35&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (required), &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;bios seabios&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;cpu host&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;balloon 0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, CMP passed as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;hostpci1: 0000:06:00.0,pcie=1,rombar=0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The CMP shared an IOMMU group with a PCIe bridge, so the whole group&amp;#039;s function set is passed.&lt;br /&gt;
* A pre-start hookscript re-runs cmpunlocker&amp;#039;s &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;gsp-restore&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for cards on vfio-pci before every VM start, because the vfio bind event only fires on a real driver change and later VM starts would otherwise skip the restore.&lt;br /&gt;
* A VM that is killed rather than shut down leaves the GSP boot state latched and the next VM gets no GPU; only &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;./tools/passthrough.sh restore &amp;amp;lt;bdf&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; clears it. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;cmp_no_bus_reset.ko&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; blocks the bus reset vfio does at bind, which would otherwise erase the unlock.&lt;br /&gt;
* PCIe: the card trains Gen1 at boot. A host-side &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;gen2-hammer&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; script walks the upstream bridge and retrains with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;setpci&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; until LnkSta reads Gen2, run by a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;gen2.service&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;basic.target&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The card was confirmed Gen2 x16 in a PCIe 5.0 x16 slot; in the documented build it sits in a PCIe 3.0 x1 slot and measured about 0.38 GB/s.&lt;br /&gt;
From the repo README and vm/ai-vm.conf: {{Source|handle=logy0|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1540599965007478854/1558505023187714068|repo=https://github.com/anoane/01-proxmox-dual-gpu-passthrough}}&lt;br /&gt;
&lt;br /&gt;
=== PixelML club VFIO baseline ===&lt;br /&gt;
The club&amp;#039;s earlier VFIO baseline (docs/INSTALLATION.md): Ubuntu Server 22.04 guest, Linux 6.8, &amp;#039;&amp;#039;&amp;#039;Q35 + SeaBIOS&amp;#039;&amp;#039;&amp;#039; (OVMF/UEFI repeatedly gave &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;RmInitAdapter&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and SEC2 failures; the same cards initialized under SeaBIOS), no &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;x-vga=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on a compute-only card, NVIDIA 610.43.03 open module, cmpunlocker &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;7019bc2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--profile=8gb&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The experimental Gen2 patch was &amp;#039;&amp;#039;&amp;#039;excluded&amp;#039;&amp;#039;&amp;#039; because it caused guest and QEMU hangs and RCU stalls. Trap: a stock DKMS copy under &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;updates/dkms&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; shadowed the patched module and the card showed 8 GiB; fix with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;dkms remove&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;depmod -a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, confirm &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;modinfo -n nvidia&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; points at the cmpunlocker module, then a full guest shutdown. Under VFIO they had no P2P. The club later moved to bare-metal Proxmox VE 9.2 (kernel 7.0.2-6-pve) serving from a GPU LXC that shares the host driver. {{Source|handle=djpandaman|date=2026-10-24|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563629622673936384|repo=https://github.com/PixelML/club-170hx}}&lt;br /&gt;
&lt;br /&gt;
=== Gen2 stability under Proxmox passthrough ===&lt;br /&gt;
A feature-request thread on the Discord is titled &amp;quot;Gen 2 Unlock not stable as PCIE Pass through Proxmox&amp;quot;. Its only messages are Logy&amp;#039;s: he runs the cards &amp;quot;in a vm : proxmox &amp;amp; qemu&amp;quot; and points anyone still having passthrough trouble to the anoane guide above. {{Source|handle=logy0|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1540599965007478854/1558454719297486903}}&amp;lt;br /&amp;gt;{{Source|handle=logy0|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1540599965007478854/1558505023187714068}} Whether Gen2 is stable for him after following it is not stated. {{Status|Reported}}&lt;br /&gt;
&lt;br /&gt;
What else is known:&lt;br /&gt;
* The PixelML club excluded the experimental in-guest Gen2 patch after guest hangs and RCU stalls (above).&lt;br /&gt;
* The anoane host retrains Gen2 from the host side (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;gen2-hammer&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) and reports Gen2 working.&lt;br /&gt;
* In a register review of a Gen3 patch, ropuls noted that in an earlier sweep the value &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xA&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XVE_FUSE_OVERRIDE&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; eventually wedged the function under VFIO while &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x6&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (the working Gen2 path) was stable. {{Source|handle=ropuls|date=2026-10-08|link=https://discord.com/channels/1518634379604136178/1518695328008638516/1557885155501277256}}&lt;br /&gt;
* Under ESXi, Gen2 works from inside the guest (below).&lt;br /&gt;
&lt;br /&gt;
=== Problems reported under Proxmox ===&lt;br /&gt;
* Froggo: &amp;quot;mine wouldnt work in proxmox&amp;quot;. No details. {{Source|handle=froggao|date=2026-10-18|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1561443221832208445}}&lt;br /&gt;
* ybryany could not get hardware VFIO passthrough of the CMP to work with a CachyOS (Arch) host; the card works on the host itself beside an RTX 4080 Super. {{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748494875426837}}&amp;lt;br /&amp;gt;{{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748535690203160}}&lt;br /&gt;
* Compute hangs in a passthrough VM after the unlock: A longer write-up by @vipic exists; see [https://discord.com/channels/1518634379604136178/1518692084729511967/1561427071157272727 Discord].&lt;br /&gt;
&lt;br /&gt;
=== Proxmox setups people run ===&lt;br /&gt;
* ikyo: six cards, one machine with four and another with two under Proxmox. {{Source|handle=ikyo|date=2026-10-26|link=https://discord.com/channels/1518634379604136178/1534370835220004885/1564316034360672329}}&lt;br /&gt;
* GalyGames: the unlock works on his Proxmox system (Debian based), and he reproduced Plean&amp;#039;s 2-card Qwen3.8 Flash Next recipe on Proxmox. {{Source|handle=galygious|date=2026-10-07|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1557452515354607679}}&amp;lt;br /&amp;gt;{{Source|handle=galygious|date=2026-10-10|link=https://discord.com/channels/1518634379604136178/1518695328008638516/1558336191634612340}}&lt;br /&gt;
* ElectroHobo ran 170HX cards and V100s in one Dell R730 under Proxmox while first testing, in separate VMs rather than one model across both. {{Source|handle=nathang6866|date=2026-10-25|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1563727993896177735}} See [[Dell PowerEdge R730]].&lt;br /&gt;
&lt;br /&gt;
== ESXi ==&lt;br /&gt;
Four 8 GB cards (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;10de:20c2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, Hynix HBM, VBIOS 92.00.67.00.01) were passed through from VMware ESXi 8.0.3 into one Ubuntu 24.04 VM, next to other newer NVIDIA GPUs in the same guest, on a single-socket EPYC server with the slots bifurcated x8/x8 so every card sits behind its own root port. Measured in October 2026. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What !! Status on ESXi 8 passthrough !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 64 GB VRAM unlock, inside the guest || works || cmpunlocker v0.5 core ported onto open modules 580.178.04. Does not need a big BAR1.&lt;br /&gt;
|-&lt;br /&gt;
| 64 GiB BAR1 || works, but ESXi never does it for you || needs a small UEFI app that runs before ESXi on every host boot, plus a guest-side hook on every VM power-on&lt;br /&gt;
|-&lt;br /&gt;
| PCIe Gen2 || works, guest-side retrain is enough || cards come up Gen1 x8 stock, Gen2 x8 after&lt;br /&gt;
|-&lt;br /&gt;
| PCIe Gen3 || fused off on these 8 GB cards || the software fuse override path is itself fused off&lt;br /&gt;
|-&lt;br /&gt;
| 74 SMs || works || port of upstream PR #55 onto 580&lt;br /&gt;
|-&lt;br /&gt;
| P2P between CMPs in the VM || no || static BAR1 P2P init fails or wedges UVM in the guest; the same cards do 12/12 pairs on bare metal&lt;br /&gt;
|-&lt;br /&gt;
| Serving || 4 cards run GLM-5.3-Flash W4A16 at recipe-book parity in PP4, about 0.75x in TP4 || the TP4 gap is the host-staged all-reduce&lt;br /&gt;
|}&lt;br /&gt;
{{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== Unlock inside the guest ===&lt;br /&gt;
* The six v0.5 core patches were re-applied onto pristine nvidia-open 580.178.04, because 615.71.09 plus cmpunlocker made other GPUs in the same VM hit &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;krcWatchdog: GPU is probably locked&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and then wedged UVM; NVIDIA&amp;#039;s 615.71.09 notes list that symptom as a known issue.&lt;br /&gt;
* Each boot logs 48 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Booter failed ... 0x31&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; lines. They are noise, not a failure.&lt;br /&gt;
* One nvidia.ko drives every GPU in the VM. A CMP module swap or wedge takes the other GPUs down with it.&lt;br /&gt;
* Hold the kernel and every nvidia package: an upgrade silently restores stock modules and the cards drop to 8 GB.&lt;br /&gt;
{{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== Why ESXi cannot give you a 64 GB BAR1 ===&lt;br /&gt;
At every host power-on the card advertises a 64 MiB BAR1: ReBAR CAP at config &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbbc&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; reads &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x400&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and CTRL at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbc0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; reads &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x601&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Firmware sizes the BAR to that, ESXi enumerates whatever firmware assigned, and ESXi never writes the vendor override. Broadcom&amp;#039;s VMDirectPath notes say resizable BAR is unsupported for passthrough and that devices get reset at VM power-on. Raising &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;pciPassthru.64bitMMIOSizeGB&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; only reserves guest address space; it cannot grow the physical BAR. The upstream &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;bar1-resize-unlock.patch&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is a Linux-host path. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== What worked: resize before ESXi boots ===&lt;br /&gt;
A small UEFI application, booted from USB (IP-KVM virtual media and a BMC boot override), runs after firmware PCI enumeration and before the ESXi loader. For each card it reserves a 64 GiB + 32 MiB span (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1002000000&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) at 64 GiB alignment inside the root bridge aperture, then, with each store read back:&lt;br /&gt;
# turns MEM and bus mastering off on the card and its parent port;&lt;br /&gt;
# writes CYA &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x724 = 0x30&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;;&lt;br /&gt;
# writes CFG &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xdcc = 0x8000000a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (CAP &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbbc&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; then goes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x400&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1ffc00&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;);&lt;br /&gt;
# sets ReBAR CTRL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbc0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to size code 16 (64 GiB), result &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;;&lt;br /&gt;
# programs BAR1 and BAR3 (BAR3 is 32 MiB at base + 64 GiB);&lt;br /&gt;
# programs the parent port&amp;#039;s prefetchable window;&lt;br /&gt;
# restores the parent port&amp;#039;s COMMAND register;&lt;br /&gt;
then starts the existing ESXi loader with its original load options. It adds about 3.5 to 4 minutes to a host boot and has to run on every host boot. Two traps: the CYA store alone already moves CTRL from &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x801&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, so do not expect &amp;quot;unchanged&amp;quot;; and the card&amp;#039;s extended capability chain has a null capability (ID 0) at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x900&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, so a strict decoder never reaches the ReBAR block at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xbb0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. ESXi&amp;#039;s own view then reports BAR size 68719476736 and the guest &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;resource1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is 64 GiB. Ask @darkmaniac7 on Discord for the writer before improvising one. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== VM settings ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;pciPassthru.use64bitMMIO = TRUE&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;pciPassthru.64bitMMIOSizeGB&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; had to go from 384 to &amp;#039;&amp;#039;&amp;#039;1024&amp;#039;&amp;#039;&amp;#039; for four cards plus the other GPUs&amp;#039; BARs (with one 64 GiB card the guest EFI already refused the MMIO at 384). {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== BAR1 inside the guest: the 256 MiB trap ===&lt;br /&gt;
After the host had 64 GiB BAR1s, the first VM boot showed &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;resource1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; = 64 GiB in sysfs but NVML said BAR1 Total 256 MiB. Every VM power-on resets the card&amp;#039;s vendor override while the host allocation survives, and GSP reports what the ReBAR block says. Fix: a modprobe &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;install nvidia&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; hook that runs before nvidia.ko loads, maps one page of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;resource0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x88000&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (the config mirror; guest config-space writes are virtualised and never reach the device), checks the reset profile, writes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x724 = 0x30&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; then &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0xdcc = 0x8000000a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, and requires CAP &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1ffc00&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; / CTRL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x1001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on read-back. Three lessons: a cold VM boot leaves memory decode off, so enable MEM (never bus master) first; udev runs the hook once per NVIDIA function concurrently, so take a lock; and never retry, a wrong read-back means a VM power cycle. Keep nvidia.ko out of the initramfs and never &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;insmod&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; by hand, or the hook is bypassed. After that NVML reports 65536 MiB BAR1 on all four cards. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== Gen2 and Gen3 under ESXi ===&lt;br /&gt;
Stock, the cards train Gen1 x8 behind Gen4 x8 root ports. cmpunlocker&amp;#039;s Gen2 retrain, ported as a module parameter, brings all four to &amp;#039;&amp;#039;&amp;#039;Gen2 x8&amp;#039;&amp;#039;&amp;#039; inside the VM; the root-port LnkCtl2 write is a no-op in a VM (it hits VMware&amp;#039;s virtual bridge) and turned out to be unnecessary. Gen3 is closed on these 8 GB cards: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;DISABLE_SW_OVERRIDE_STATUS&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x820084&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) reads 1 and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;OPT_DISABLE_GEN3_SPEED&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;0x820250&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) reads 1 on all four. One attempt through the XP/XVE registers left a card at Gen1 x8 until a VM power cycle re-ran the Gen2 retrain. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== P2P inside the VM: not working ===&lt;br /&gt;
* Stock, GSP reports P2P not supported for the CMP device IDs and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;cudaDeviceCanAccessPeer&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is false on all 12 directed pairs.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;RMForceStaticBar1=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; alone fails init: the static map is placed at offset 512 MiB and the framebuffer overruns the 64 GiB BAR1 (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;kbusEnableStaticBar1Mapping_TU102: Failed to create the static bar1 mapping&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;RMForceStaticBar1=1;RMPcieP2PType=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; inits cleanly and NVML shows 64 GiB, but the first plain CUDA context never exits and UVM wedges (hard VM reset, twice).&lt;br /&gt;
* RM only detects VMware through CPUID leaves; with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;hypervisor.cpuid.v0 = FALSE&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; that detection is false. Do not gate anything on hypervisor detection in a VM that hides it.&lt;br /&gt;
* Other GPUs in the same VM do P2P with each other (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;pciPassthru.allowP2P&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;relaxACSforP2P&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; set), so ESXi&amp;#039;s peer transport is not the blocker. The reading is that it is the ESXi mapping of a 64 GiB BAR1 under CUDA, not the cards; that is a reading, not a root cause. {{Status|Theory}}&lt;br /&gt;
* The same four cards booted into native Linux on the same host passed 12/12 directed P2P pairs.&lt;br /&gt;
Serving runs with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;NCCL_P2P_DISABLE=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a host-staged all-reduce. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== Serving numbers under ESXi ===&lt;br /&gt;
GLM-5.3-Flash W4A16 with the DFlash2 drafter on the Morrowmake vLLM fork (engine &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;819146023f&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, recipe 1.8.0), cards at 180 W, 74-SM driver; tok/s structured / code / prose:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Layout !! 1 user !! 8 users aggregate !! 32k cold prefill&lt;br /&gt;
|-&lt;br /&gt;
| 4x CMP, PP4 (ESXi, Gen2 x8, no P2P) || 201 / 149 / 97 || 664 / 548 / 477 || 6.8 to 7.0k tok/s&lt;br /&gt;
|-&lt;br /&gt;
| 4x CMP, TP4 (ESXi, Gen2 x8, no P2P) || 361 / 284 / 199 || 697 / 587 / 529 || 1.6 to 1.75k tok/s&lt;br /&gt;
|-&lt;br /&gt;
| recipe book PP4 (x16, P2P on) || 232 / 210 / 100 || 664 / 609 / 469 || 7.4k tok/s&lt;br /&gt;
|-&lt;br /&gt;
| recipe book TP4 (x16, P2P on) || 483 / 442 / 232 || 944 / 835 / 667 || 3.2k tok/s&lt;br /&gt;
|}&lt;br /&gt;
PP4 lands on the recipe book within noise on decode; TP4 is about 0.75x on decode and 0.55x on prefill, which is the all-reduce going through host memory over Gen2 x8 instead of P2P over x16. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
=== ESXi traps ===&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;nvidia-persistenced&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is down after a VM power cycle; start it before any &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; that uses the NVIDIA runtime.&lt;br /&gt;
* Power caps reset to 250 W on every module load. Set them after.&lt;br /&gt;
* Only one &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;NVreg_RegistryDwordsPerDevice&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; line counts; a second file silently replaces the first.&lt;br /&gt;
* During a UVM wedge do not run nvidia-smi: every new caller blocks in D state. Hard reset the VM after restoring known-good modules on disk.&lt;br /&gt;
* Never follow a successful 64 GiB host boot with a &amp;quot;normal&amp;quot; reboot just to check something; you lose the allocation and have to run the pre-boot step again.&lt;br /&gt;
{{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
== Other hypervisor notes ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;vGPU&amp;#039;&amp;#039;&amp;#039; is in progress in cmpunlocker: Amogh announced on 2026-10-26 that vGPU is close to working, on the [https://github.com/amoghmunikote/cmpunlocker/tree/vGPU-and-others vGPU-and-others] branch, not in main. {{Status|Theory}} {{Source|handle=_j3ns|date=2026-10-26|link=https://discord.com/channels/1518634379604136178/1518692084729511967/1564421429703737355}}  See [[Unlocks]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mixed host.&amp;#039;&amp;#039;&amp;#039; A CMP in a desktop that also drives a gaming GPU works on bare metal (ybryany, CachyOS, RTX 4080 Super), but the global Gen2 registry keys would also force the other card to Gen2, so he left them off. {{Source|handle=ybryany|date=2026-10-14|link=https://discord.com/channels/1518634379604136178/1518695289278566450/1559748433353384017}} See [[Operating systems and kernels#Mixed GPUs in one host]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Agents in VMs.&amp;#039;&amp;#039;&amp;#039; Not a passthrough issue, but people running agent workloads in VMs on these hosts report models probing networks and acting destructively; sandbox them. {{Source|handle=segmond|date=2026-10-20|link=https://discord.com/channels/1518634379604136178/1528826330454429706/1561965044529496085}}&lt;br /&gt;
&lt;br /&gt;
== Open questions ==&lt;br /&gt;
* Is Gen2 stable under Proxmox passthrough with the current cmpunlocker, using a host-side retrain? Only the thread title and the anoane recipe speak to it.&lt;br /&gt;
* P2P between CMPs inside any hypervisor: no public report of it working.&lt;br /&gt;
* TRAP31 mailbox P2P inside a VM, a smaller static BAR1 window, and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;hypervisor.cpuid.v0 = TRUE&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; under ESXi are untested. {{Source|handle=darkmaniac7|date=2026-10-21|note=lab notes}}&lt;br /&gt;
&lt;br /&gt;
{{ImportFooter}}&lt;br /&gt;
[[Category:Platforms]]&lt;br /&gt;
[[Category:8 GB]]&lt;br /&gt;
[[Category:10 GB]]&lt;/div&gt;</summary>
		<author><name>ImportBot</name></author>
	</entry>
</feed>