Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Aot compiler fix - #9634

Merged
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix
Mar 26, 2025
Merged

Aot compiler fix#9634
mcr229 merged 2 commits into
pytorch:mainfrom
mcr229:aot_compiler_fix

Conversation

@mcr229

@mcr229mcr229 commented Mar 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Changes:

  1. When initializing Llama2 for aot_compiler, since checkpoints can only e downloaded from hugging face, we initialize llama2 with uninitialized weights. The problem with this is that when running quantization, we can run into errors with the histogram if the unitialized values are nan. We fix this by initializing the weights with zeros if no check point is provided. This enforces that quantization step can still work.
  2. Quant Type in AoT compiler. When looking at the model options available to XNNPACK, everything is quantized with per-tensor static quantization. This isn't the best option for all the models available. For example transformer based models like Llama and MobileBert would likely prefer dynamically quantized per channel weights, where has CNN like MobileNet would prefer statically quantized per channel weights. We add this type of Quant Type to the existing models options. This also helps with Test Timeouts. per-tensor static quantization on a model like llama can take a long time due to the introduction of MANY q/dq nodes, and the complex partitions it creates. As a result, proposing partitions can take a long time due to the constant BFS to find the largest possible partition. By specifying the more apt quantization scheme like dynamic per-channel quantization, we can avoid this complexity.

Overall this should help with flakey [nan, nan] errors in the quantization histogram, and it should also help with CI timing out.

Test plan

OSS XNNPACK CI for all model delegation

cc @digantdesai@cbilgin

@pytorch-bot

pytorch-botBot commented Mar 25, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9634

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 New Failure

As of commit ccf664e with merge base 4b8ac94 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 25, 2025
@mcr229mcr229 added the module: xnnpack Issues related to xnnpack delegation and the code under backends/xnnpack/ label Mar 25, 2025
@mcr229mcr229 added release notes: xnnpack Changes to the XNNPack backend delegate release notes: examples Changes to any of our example LLMs integrations, such as Llama3 and Llava labels Mar 26, 2025

@mergennachinmergennachin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@mcr229

Copy link
Copy Markdown
ContributorAuthor

phi_4_mini ci tests are failing with:

.ci/scripts/test_model.sh: line 75: 30893 Killed "${PYTHON_EXECUTABLE}" -m examples.models.llama.export_llama --model "${MODEL_NAME}" -c examples/models/llama/params/demo_rand_params.pth -p examples/models/phi_4_mini/config.json

there is no error message with the run, so I don't think anything is failing but just that this tests is getting killed. Running it locally on my laptop seems to pass

@mcr229
mcr229 merged commit 91be93c into pytorch:mainMar 26, 2025
@mcr229
mcr229 deleted the aot_compiler_fix branch March 26, 2025 19:59

@jackzhxngjackzhxng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine, doesn't seem like it should have affected the phi test. If it's consistently getting killed it might be OOMing

pytorchmergebot pushed a commit to pytorch/pytorch that referenced this pull request Apr 1, 2025
kirklandsign pushed a commit that referenced this pull request Apr 11, 2025
…ntization for Example Models (#9634)
### Summary
Changes:
1. When initializing Llama2 for aot_compiler, since checkpoints can only
e downloaded from hugging face, we initialize llama2 with uninitialized
weights. The problem with this is that when running quantization, we can
run into errors with the histogram if the unitialized values are nan. We
fix this by initializing the weights with zeros if no check point is
provided. This enforces that quantization step can still work.
2. Quant Type in AoT compiler. When looking at the model options
available to XNNPACK, everything is quantized with per-tensor static
quantization. This isn't the best option for all the models available.
For example transformer based models like Llama and MobileBert would
likely prefer dynamically quantized per channel weights, where has CNN
like MobileNet would prefer statically quantized per channel weights. We
add this type of Quant Type to the existing models options. This also
helps with Test Timeouts. per-tensor static quantization on a model like
llama can take a long time due to the introduction of MANY q/dq nodes,
and the complex partitions it creates. As a result, proposing partitions
can take a long time due to the constant BFS to find the largest
possible partition. By specifying the more apt quantization scheme like
dynamic per-channel quantization, we can avoid this complexity.
Overall this should help with flakey [nan, nan] errors in the
quantization histogram, and it should also help with CI timing out.
### Test plan
OSS XNNPACK CI for all model delegation
cc @digantdesai@cbilgin
amathewc pushed a commit to amathewc/pytorch that referenced this pull request Apr 17, 2025
huydhn pushed a commit to pytorch/pytorch that referenced this pull request May 16, 2025
atalman pushed a commit to pytorch/pytorch that referenced this pull request May 21, 2025
…53750)
* Update ExecuTorch pin to latest viable/strict 3/28/2025 (#150308)
From latest viable/strict: https://hud.pytorch.org/hud/pytorch/executorch/viable%2Fstrict/1?per_page=50Fixes#144480
This commit has important CI stability fixes, such as pytorch/executorch#9561 and pytorch/executorch#9634
Pull Request resolved: #150308
Approved by: https://github.com/jathu, https://github.com/malfet
* Use new hash from #150722
* Update executorch.txt
---------
Co-authored-by: Mergen Nachin <mnachin@meta.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunkCLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.module: xnnpackIssues related to xnnpack delegation and the code under backends/xnnpack/release notes: examplesChanges to any of our example LLMs integrations, such as Llama3 and Llavarelease notes: xnnpackChanges to the XNNPack backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mcr229@mergennachin@GregoryComer@jackzhxng@metascroy@facebook-github-bot