') + ')', '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); } })(); })(); fix: align CPU runtime extraction with runtime namespace by voltjia · Pull Request #12 · InfiniTensor/InfiniRT · GitHub
Skip to content

fix: align CPU runtime extraction with runtime namespace - #12

Merged
voltjia merged 4 commits into
feat/extract-infinicore-runtimefrom
fix/extract-infinicore-runtime-runtime-namespace
Jul 3, 2026
Merged

fix: align CPU runtime extraction with runtime namespace#12
voltjia merged 4 commits into
feat/extract-infinicore-runtimefrom
fix/extract-infinicore-runtime-runtime-namespace

Conversation

@voltjia

Copy link
Copy Markdown
Collaborator

Summary

  • Merge latest master into feat/extract-infinicore-runtime through this helper branch, resolving the runtime API conflicts after feat!: align runtime API and add runtime dispatch #11.
  • Keep CUDA-shaped public runtime wrappers under infini::rt::runtime instead of restoring the old outer infini::rt::* API.
  • Move the CPU runtime additions from PR feat: refactor InfiniCore CPU runtime to InfiniRT #8 into the generated runtime namespace surface and dispatch only to backends that actually implement each function.
  • Preserve the current CPU async behavior from master: async memory APIs are exposed but return an invalid-value error on CPU instead of pretending to be asynchronous.

Validation

# ssh nvidia, image infinirt-verify:nvidia-latest
cmake -S /tmp/InfiniRT -B /tmp/infinirt-build \
-DWITH_CPU=ON -DWITH_NVIDIA=ON \
-DINFINI_RT_BUILD_TESTING=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/tmp/infinirt-prefix
cmake --build /tmp/infinirt-build -j$(nproc)
ctest --test-dir /tmp/infinirt-build --output-on-failure
cmake --install /tmp/infinirt-build
100% tests passed, 0 tests failed out of 7
[codex-verify] PR8 image smoke complete

* docs: add README
* docs: update `README.md`
* Align runtime API with generated wrappers
* Add default runtime dispatch specialization
* Refactor runtime dispatch namespace
* Use Abseil status for runtime device API
* Revert "Use Abseil status for runtime device API"
This reverts commit a26ddff.
* Address runtime dispatch review feedback
* Keep runtime API list in generator
* Add TensorView constructor guard test
* Align runtime memcpy kind constants with CUDA API
* Use CUDA-style runtime memcpy constants
* Use CUDA-style runtime memcpy constants
* Move TensorView tests back into core test
* Remove standalone TensorView test target
* Remove standalone TensorView test file
* Use fully qualified runtime API names in README
* style: format runtime dispatch test
@voltjia
voltjiaforce-pushed the fix/extract-infinicore-runtime-runtime-namespace branch from d068185 to 1b989d1CompareJuly 3, 2026 02:08
@voltjia
voltjiaforce-pushed the fix/extract-infinicore-runtime-runtime-namespace branch from 1b989d1 to 3d5b3faCompareJuly 3, 2026 02:25
@voltjia
voltjia merged commit 37c4913 into feat/extract-infinicore-runtimeJul 3, 2026
4 checks passed
@voltjia
voltjia deleted the fix/extract-infinicore-runtime-runtime-namespace branch July 3, 2026 02:35
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.

1 participant

@voltjia