-
Notifications
You must be signed in to change notification settings - Fork 407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Synchronic in Kokkos::Impl #44
Comments
OK, looking at it now. |
@hcedwar, we have somewhat of a severe problem with the Synchronic stuff. The code uses std::this_thread::sleep_for which is only available if GCC detects that nanosleep is available. Apparently, there's a bug in GCC 4.7 and 4.8 where it fails to detect nanosleep and therefore compiles without sleep_for. The bug has since been fixed, but 4.7.2 is our standard compiler. Thoughts? |
Do you need timing for this, its only ever been a best efforts anyway. Can we not just stick in some NOOP values here to cause a core stall out? |
We don't need a direct port, just the design and functionality. If there is an equivalent function that is conditionally available then we could use that function with the appropriate compiler version checks. The Synchronic concept (see previously linked paper and code for details) is to spin but with several incrementally applied back-off strategies to relieve pressure on memory system. |
Understood, but this does not need to be time based in order to meet specification (you can just execute a NOOP block with an exponential number of calls). The point of NOOPs is to prevent the cores from continuing to issue requests into the memory system. |
Si - willing to consult with Jim for the implementation? |
My current impl: This assumes UNIX-type system, but I assume that should work fine for now. |
There is at least one project(DICE) using Tpetra on windows regularly right now. I don't know how important that build is to them, Dan Turner could answer that though. Brent From: James Foucar <notifications@github.commailto:notifications@github.com> My current impl: This assumes UNIX-type system, but I assume that should work fine for now. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120541935. |
?There are more projects who want to do that. They currently use Intel compiler. I think we need a fallback which at least works on windows. From: Brent Perschbacher notifications@github.com There is at least one project(DICE) using Tpetra on windows regularly right now. I don't know how important that build is to them, Dan Turner could answer that though. Brent From: James Foucar <notifications@github.commailto:notifications@github.com> My current impl: This assumes UNIX-type system, but I assume that should work fine for now. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120541935. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120943712. |
They are using Cygwin though right? Ie they have UNIX headers etc on the system? S Si Hammond From: Christian Trott notifications@github.com ?There are more projects who want to do that. They currently use Intel compiler. I think we need a fallback which at least works on windows. From: Brent Perschbacher notifications@github.com There is at least one project(DICE) using Tpetra on windows regularly right now. I don't know how important that build is to them, Dan Turner could answer that though. Brent From: James Foucar <notifications@github.commailto:notifications@github.com> My current impl: This assumes UNIX-type system, but I assume that should work fine for now. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120541935. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120943712. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969329. |
?I don't know, but you might be right. From: Si Hammond notifications@github.com They are using Cygwin though right? Ie they have UNIX headers etc on the system? S Si Hammond From: Christian Trott notifications@github.com ?There are more projects who want to do that. They currently use Intel compiler. I think we need a fallback which at least works on windows. From: Brent Perschbacher notifications@github.com There is at least one project(DICE) using Tpetra on windows regularly right now. I don't know how important that build is to them, Dan Turner could answer that though. Brent From: James Foucar <notifications@github.commailto:notifications@github.com> My current impl: This assumes UNIX-type system, but I assume that should work fine for now. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120541935. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120943712. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969329. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969965. |
I don't think they are using cygwin actually, but I don't know for sure. Their goal was to make libraries that are linkable by a native windows program so I would suspect not. Dan would have all the answers to these questions. I've CC'd him so that we don't have to continue playing the guessing game. Dan, can you fill us in on how you are using Tpetra on windows and what your requirements are? Thanks, Brent From: Christian Trott <notifications@github.commailto:notifications@github.com> ?I don't know, but you might be right. From: Si Hammond <notifications@github.commailto:notifications@github.com> They are using Cygwin though right? Ie they have UNIX headers etc on the system? S Si Hammond From: Christian Trott <notifications@github.commailto:notifications@github.com> ?There are more projects who want to do that. They currently use Intel compiler. I think we need a fallback which at least works on windows. From: Brent Perschbacher <notifications@github.commailto:notifications@github.com> There is at least one project(DICE) using Tpetra on windows regularly right now. I don't know how important that build is to them, Dan Turner could answer that though. Brent From: James Foucar <notifications@github.commailto:notifications@github.commailto:notifications@github.com> My current impl: This assumes UNIX-type system, but I assume that should work fine for now. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120541935. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120943712. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969329. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969965. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120971511. |
Hi Brent, We are not using cygwin. We compile Trilinos via the Intel 15 compilers. Is there anything else you wanted feedback on? Thanks, On Jul 13, 2015, at 9:59 AM, Perschbacher, Brent M <bmpersc@sandia.govmailto:bmpersc@sandia.gov> wrote: I don't think they are using cygwin actually, but I don't know for sure. Their goal was to make libraries that are linkable by a native windows program so I would suspect not. Dan would have all the answers to these questions. I've CC'd him so that we don't have to continue playing the guessing game. Dan, can you fill us in on how you are using Tpetra on windows and what your requirements are? Thanks, Brent From: Christian Trott <notifications@github.commailto:notifications@github.com> ?I don't know, but you might be right. From: Si Hammond <notifications@github.commailto:notifications@github.com> They are using Cygwin though right? Ie they have UNIX headers etc on the system? S Si Hammond From: Christian Trott <notifications@github.commailto:notifications@github.com> ?There are more projects who want to do that. They currently use Intel compiler. I think we need a fallback which at least works on windows. From: Brent Perschbacher <notifications@github.commailto:notifications@github.com> There is at least one project(DICE) using Tpetra on windows regularly right now. I don't know how important that build is to them, Dan Turner could answer that though. Brent From: James Foucar <notifications@github.commailto:notifications@github.commailto:notifications@github.com> My current impl: This assumes UNIX-type system, but I assume that should work fine for now. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120541935. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120943712. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969329. Reply to this email directly or view it on GitHubhttps://github.com//issues/44#issuecomment-120969965. — |
OK, I'll redo the implementation to work on Windows. |
Merged in. |
This enables more scenarios of view assignments and subview taking to occur. For example the following works now (for LayoutRight/Left): Kokkos::View<int*> a("A",N1); Kokkos::View<int[N1]> a1(a); Also for LayoutRight similar scenarios in higher dimension work such as Kokkos::View<int*[N1][N2]> a("A",N0); Kokkos::View<int[N1][N2]> a1(a,0,Kokkos::ALL(),Kokkos::ALL()); Where appropriate those assignments do runtime checks of dimensions. This is part of addressing issue #44.
Need an implementation of Synchronic in Kokkos::Impl with unit testing. We have permission to use the prototype source code; no licensing issues.
The text was updated successfully, but these errors were encountered: