Skip to content
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

[cmake] Disable SOFIE if Blas is not found #16722

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dpiparo
Copy link
Member

@dpiparo dpiparo commented Oct 21, 2024

fixes #16720

@dpiparo dpiparo requested a review from pcanal October 21, 2024 03:47
@dpiparo dpiparo self-assigned this Oct 21, 2024
if(GSL_FOUND)
message(STATUS "Using GSL CBLAS for TMVA SOFIE")
else()
set(tmva-sofie OFF CACHE BOOL "Disabled because BLAS was not found (${tmva-cpu_description})" FORCE)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This breaks the fail-on-missing=ON contract. You would need a separate code path for that like in the other cases where we automatically switch off ROOT features.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, it was already a problem is the code for the tmva-cpu option: https://github.com/root-project/root/blob/master/cmake/modules/SearchInstalledSoftware.cmake#L1665

Either this is fixed in both cases, or you keep it as it is now for consistency. But I really like the fail-on-missing flag so I argue for the former :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we have alread the tmva-cpu flag checking for BLAS. We need to be sure tmva-sofie is dependent on that flag, I think there is no need to another BLAS check

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually we can still build SOFIE without BLAS, so no need to switch OFF tmva-sofie. We need only to protect tutorials with tmva-cpu. I can make a PR for this

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we really okay with users that write code that is something 'like' the tutorials to "only" see an error/failure that is 'hard' to understand? I.e. the current symptom is "missing symbol _sgemm" rather than "Please rebuild ROOT once you configured it to find a BLAS library". Can we upgrade the code to have a better error?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Missing symbol _sgemm" is not so hard. It is a well known issue, and asking chatGPT or Google you get 100% the right answer. And you don't need to rebuild ROOT, but just install BLAS to have the tutorial working.

Copy link

Test Results

    18 files      18 suites   3d 20h 37m 27s ⏱️
 2 749 tests  2 749 ✅ 0 💤 0 ❌
46 058 runs  46 058 ✅ 0 💤 0 ❌

Results for commit 38b0d88.

@pcanal
Copy link
Member

pcanal commented Oct 21, 2024

This improves the situations. The first 3 tests are now properly disabled. This leaves this test:

353 - gtest-tmva-pymva-TestRModelParserKeras

as an issue (and the related but maybe or maybe not different #16719)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 TMVA test requires BLAS library but run even when it was not found.
4 participants