') + ')', '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); } })(); })(); [Texture] Add 2d memory support into static memory planner by elvin-n · Pull Request #11876 · apache/tvm · GitHub
Skip to content

[Texture] Add 2d memory support into static memory planner - #11876

Merged
masahi merged 2 commits into
apache:mainfrom
Deelvin:amalyshe/texture_static_mplanner
Jul 18, 2022
Merged

[Texture] Add 2d memory support into static memory planner#11876
masahi merged 2 commits into
apache:mainfrom
Deelvin:amalyshe/texture_static_mplanner

Conversation

@elvin-n

Copy link
Copy Markdown
Contributor

Co-authored-by: Chris Sullivan csullivan@octoml.ai

This PR is a split part of origin PR11357
@csullivan@mbs-octoml

@TejashShah

Copy link
Copy Markdown

@csullivan@masahi@mbs-octoml Please review and push this PR through.

@masahi

Copy link
Copy Markdown
Member

@elvin-n Can you add tests?

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

These changes to the graph memory planner originate back from #7690. Given that I was the author of that PR and many of these changes, I don't feel comfortable merging this without additional reviews but the change looks good to me if others feel that refactor the graph memory planner in this way is acceptable.

Ultimately in Relax graph-tir memory planning will be unified and texture can be represented as an Nd Buffer, and a separate pass can handle memory planning based on a target specific handling for Nd memory. Given that I'm personally okay with this change landing as even though it is fairly specific, we don't intend for the graph executor memory planner to be any more generically useful for Nd memory down the road.

Edit: As @masahi pointed out, it would be useful to have some unit tests of the 2d planner.

@elvin-n
elvin-nforce-pushed the amalyshe/texture_static_mplanner branch from 3cf99ab to 9eab9b2CompareJuly 18, 2022 09:31
@elvin-n

Copy link
Copy Markdown
ContributorAuthor

@elvin-n Can you add tests?

Added test

@masahi
masahi merged commit 6bad21e into apache:mainJul 18, 2022
xinetzone pushed a commit to daobook/tvm that referenced this pull request Nov 25, 2022
)
* [Texture] Add 2d memory support into static memory planner
Co-authored-by: Chris Sullivan <csullivan@octoml.ai>
* Add test verifying GraphPlanMemory work for 2d memory
Co-authored-by: Chris Sullivan <csullivan@octoml.ai>
mikeseven pushed a commit to mikeseven/tvm that referenced this pull request Sep 27, 2023
)
* [Texture] Add 2d memory support into static memory planner
Co-authored-by: Chris Sullivan <csullivan@octoml.ai>
* Add test verifying GraphPlanMemory work for 2d memory
Co-authored-by: Chris Sullivan <csullivan@octoml.ai>
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.

4 participants

@elvin-n@TejashShah@masahi@csullivan