OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8
, '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

OMPD 5 and limited OMPD support for cuda devices - #49

Open
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices
Open

OMPD 5 and limited OMPD support for cuda devices#49
manorom wants to merge 69 commits into
OpenMPToolsInterface:ompdfrom
manorom:ompd-devices

Conversation

@manorom

Copy link
Copy Markdown

Aligns the OMPD interface with the draft specification of OpenMP 5 and adds limited OMPD support for cuda devices (thread handles, some thread states, parallel handels).

Manoel Roemmerand others added 30 commits June 21, 2018 15:30
This commit aligns libompd and gdb-wrapper with a newer OpenMP spec.
* Some functionality was desiabled as it relies on information no longer
exposed via OMPD.
* The OMPD callback functions still have non-standard names (but
signatures should be correct now)
* Cuda device initialization should work now, but not much other OMPD
device funtionality.
* Code adapted from Marty Mcfadden's (<mcfadden8@llnl.gov>) code for the
clang-ykt runtime.
* OMPD code in the nvptx device runtime library in libomptarget is
currently included regardless of compile flags/defines
* libompd can retrieve thread state information for a cuda thread
* ODB tries to summarize states of many cuda threads (this is still a
bit ugly and doesnt repsect blocks)
* Currently openmp cuda threads can only be in an undefined state or
parallel work state (parallel work is not consistent)
* Moved some removed/renamed types out of ompd.h to ompd-private.h (we
still need them internally i think)
* Removed dead code
* Some types have been renamed
Still need to rename all callbacks and check for completeness
Conflicts:
libompd/src/CMakeLists.txt
libompd/src/omp-debug.cpp
runtime/src/ompd-specific.cpp
ODB now initializes the openmp process with ompd when the first ompd
commadn is issued, not when the debugger starts.
This is necessary because we now check for state tracking in the
process initialization function, and OpenMP runtime may not be present
when the debugger has just loaded the program.
@hahnjo
hahnjo changed the base branch from ompd to masterAugust 14, 2018 12:29
@hahnjo
hahnjo changed the base branch from master to ompdAugust 14, 2018 12:29
@manorom

Copy link
Copy Markdown
Author

@jprotze resolved original conflict with e0538aa and c806b3e. Can someone take a look before we resolve the newest conflicts, or else we might and up with more merge commits than everything else?

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.

3 participants

@manorom@jprotze@mcfadden8