') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [Collage] PartitionRule (though without CombinePartitionRule) by mbs-octoml · Pull Request #11993 · apache/tvm · GitHub
Skip to content

[Collage] PartitionRule (though without CombinePartitionRule) - #11993

Merged
mbaret merged 3 commits into
apache:mainfrom
mbs-octoml:mbs-collage-partition-rule
Jul 12, 2022
Merged

[Collage] PartitionRule (though without CombinePartitionRule)#11993
mbaret merged 3 commits into
apache:mainfrom
mbs-octoml:mbs-collage-partition-rule

Conversation

@mbs-octoml

@mbs-octomlmbs-octoml commented Jul 1, 2022

Copy link
Copy Markdown
Contributor

See https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md.

(Special thanks to Matthew Barrett for authoring partition_rule_test.cc and suggesting a PR partitioning strategy.)

Collage uses a small 'combinator library' of PartitionRule to decribe how candidate partitions can be extracted from a model for measurement and comparison. This introduces most of that machinery, however we defer the all important 'CombinerPartitionRule' for the next PR. Thus the rules at this stage can only express the sorts of DFPattern-based rules we find in most BYOC integrations, and cannot describe rules more traditionally associated with operator fusion.

@mbs-octoml

Copy link
Copy Markdown
ContributorAuthor

@mbaret

@mbs-octoml
mbs-octomlforce-pushed the mbs-collage-partition-rule branch from 679be53 to 3b746b2CompareJuly 1, 2022 22:54
See https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md.
(Special thanks to Matthew Barrett for authoring partition_rule_test.cc and suggesting a PR
partitioning strategy.)
Collage uses a small 'combinator library' of PartitionRule to decribe how candidate partitions
can be extracted from a model for measurement and comparison. This introduces most of that
machinery, however we defer the all important 'CombinerPartitionRule' for the next PR. Thus
the rules at this stage can only express the sorts of DFPattern-based rules we find in most
BYOC integrations, and cannot describe rules more traditionally associated with operator fusion.
Based on apache#11981.
@mbs-octoml
mbs-octomlforce-pushed the mbs-collage-partition-rule branch from 3b746b2 to 5903ed1CompareJuly 11, 2022 21:06
@mbs-octoml

Copy link
Copy Markdown
ContributorAuthor

This is now based on main and ready for review, thanks.

@mbaretmbaret 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.

lgtm

@mbaret
mbaret merged commit c1706a9 into apache:mainJul 12, 2022
@mbs-octoml
mbs-octoml deleted the mbs-collage-partition-rule branch July 12, 2022 17:37
masahi pushed a commit to masahi/tvm that referenced this pull request Jul 15, 2022
…#11993)
* [Collage] PartitionRule (though without CombinePartitionRule)
See https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md.
(Special thanks to Matthew Barrett for authoring partition_rule_test.cc and suggesting a PR
partitioning strategy.)
Collage uses a small 'combinator library' of PartitionRule to decribe how candidate partitions
can be extracted from a model for measurement and comparison. This introduces most of that
machinery, however we defer the all important 'CombinerPartitionRule' for the next PR. Thus
the rules at this stage can only express the sorts of DFPattern-based rules we find in most
BYOC integrations, and cannot describe rules more traditionally associated with operator fusion.
Based on apache#11981.
* - Backport improvements to partiton_rule_test.cc
* - Oops
junrushao pushed a commit to yelite/tvm that referenced this pull request Jul 27, 2022
…#11993)
* [Collage] PartitionRule (though without CombinePartitionRule)
See https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md.
(Special thanks to Matthew Barrett for authoring partition_rule_test.cc and suggesting a PR
partitioning strategy.)
Collage uses a small 'combinator library' of PartitionRule to decribe how candidate partitions
can be extracted from a model for measurement and comparison. This introduces most of that
machinery, however we defer the all important 'CombinerPartitionRule' for the next PR. Thus
the rules at this stage can only express the sorts of DFPattern-based rules we find in most
BYOC integrations, and cannot describe rules more traditionally associated with operator fusion.
Based on apache#11981.
* - Backport improvements to partiton_rule_test.cc
* - Oops
xinetzone pushed a commit to daobook/tvm that referenced this pull request Nov 25, 2022
…#11993)
* [Collage] PartitionRule (though without CombinePartitionRule)
See https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md.
(Special thanks to Matthew Barrett for authoring partition_rule_test.cc and suggesting a PR
partitioning strategy.)
Collage uses a small 'combinator library' of PartitionRule to decribe how candidate partitions
can be extracted from a model for measurement and comparison. This introduces most of that
machinery, however we defer the all important 'CombinerPartitionRule' for the next PR. Thus
the rules at this stage can only express the sorts of DFPattern-based rules we find in most
BYOC integrations, and cannot describe rules more traditionally associated with operator fusion.
Based on apache#11981.
* - Backport improvements to partiton_rule_test.cc
* - Oops
mikeseven pushed a commit to mikeseven/tvm that referenced this pull request Sep 27, 2023
…#11993)
* [Collage] PartitionRule (though without CombinePartitionRule)
See https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md.
(Special thanks to Matthew Barrett for authoring partition_rule_test.cc and suggesting a PR
partitioning strategy.)
Collage uses a small 'combinator library' of PartitionRule to decribe how candidate partitions
can be extracted from a model for measurement and comparison. This introduces most of that
machinery, however we defer the all important 'CombinerPartitionRule' for the next PR. Thus
the rules at this stage can only express the sorts of DFPattern-based rules we find in most
BYOC integrations, and cannot describe rules more traditionally associated with operator fusion.
Based on apache#11981.
* - Backport improvements to partiton_rule_test.cc
* - Oops
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mbs-octoml@mbaret