-
Notifications
You must be signed in to change notification settings - Fork 63
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
Intel compiler support #499
Conversation
@@ -52,6 +52,7 @@ void HymodKernelTest::setupArbitraryExampleCase() { | |||
//! Test that Hymod executes its 'run' function fully when passed arbitrary valid arguments. | |||
TEST_F(HymodKernelTest, TestRun0) | |||
{ | |||
GTEST_SKIP() << "Skipping HymodKernelTest_TestRun0 - causes unexplained segfault in some builds (Intel compilers?)"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test case was causing a segfault and this was all I could get for the backtrace:
Running main() from /home/Matthew.Williamson/ohd/ngen/test/googletest/googletest/src/gtest_main.cc
[==========] Running 128 tests from 18 test suites.
[----------] Global test environment set-up.
[----------] 2 tests from HymodKernelTest
[ RUN ] HymodKernelTest.TestRun0
Program received signal SIGSEGV, Segmentation fault.
0x0000000000a63cc4 in ?? ()
(gdb) bt
#0 0x0000000000a63cc4 in ?? ()
#1 0x00007fffffff9a20 in ?? ()
#2 0x000000000081b1dc in ?? ()
#3 0x0000000000000000 in ?? ()
(gdb)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clearly something is call a null address probably needs to be looked into
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally... but this is zombie code--I'm not sure it's even possible to call it outside of the unit tests (e.g. in a realization config). So super-low priority. Thought process is also that any of these non-BMI models--if we keep them--will have to be refactored substantially as we continue to change the formulation interface over the next few months (mainly to handle gridded data)... I'd rather come back to these (inc. tshirt, simple_lumped, lstm) after the API stabilizes again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did not realize that this was one of the old non bmi models. Yes we dont need to support them right now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine, other than the one crashing test which seems to be having a null value called as a function, judging by the stack trace
@@ -52,6 +52,7 @@ void HymodKernelTest::setupArbitraryExampleCase() { | |||
//! Test that Hymod executes its 'run' function fully when passed arbitrary valid arguments. | |||
TEST_F(HymodKernelTest, TestRun0) | |||
{ | |||
GTEST_SKIP() << "Skipping HymodKernelTest_TestRun0 - causes unexplained segfault in some builds (Intel compilers?)"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clearly something is call a null address probably needs to be looked into
A few build system changes and fixes to make it possible to compile with Intel OneAPI (v2022.3.0 tested). This is with the newer, non-legacy LLVM compilers.
Additions
IntelDPCPP
cmake module to enable the compilers when-DINTEL_DPCPP=On
is an argument.Removals
std
version ofunique_ptr
for C++<14 was getting compiled in because the GNU version macros aren't defined by Intel--again this is legacy code that will probably never be used, so it was commented out and should probably be permanently removed.Changes
Testing
Screenshots
Notes
Todos
Checklist
Testing checklist (automated report can be put here)
Target Environment support