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

FlexiBLAS: Workaround miscompilation on PPC #15867

Conversation

Flamefire
Copy link
Contributor

@Flamefire Flamefire commented Jul 14, 2022

(created using eb --new-pr)

Addresses #12968 and alternative to easybuilders/easybuild-framework#3809 / #13836

I found that although in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100799 I was able to fix the issue with -Og I wasn't able to do reproduce that now. I.e. SciPy-bundle-2021.05-foss-2021a.eb would always segfault or produce wrong results whenever anything but -O0 was used for the C-compilation. I played around with various combinations of the C_FLAGS & Fortran_FLAGS but nothing worked but setting C_FLAGS to -O0

You also have to be careful as C_FLAGS_RELEASE (or C_FLAGS_DEBUG etc.) is appended to the value of C_FLAGS

@Flamefire Flamefire force-pushed the 20220714172540_new_pr_FlexiBLAS304 branch from 3bb6721 to 3323ad1 Compare July 14, 2022 15:34
@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 2 out of 2 (1 easyconfigs in total)
taurusml4 - Linux RHEL 7.6, POWER, 8335-GTX (power9le), 6 x NVIDIA Tesla V100-SXM2-32GB, 440.64.00, Python 2.7.5
See https://gist.github.com/00ef8081ca887a8c6019cf9f91c416ba for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
taurusml4 - Linux RHEL 7.6, POWER, 8335-GTX (power9le), 6 x NVIDIA Tesla V100-SXM2-32GB, 440.64.00, Python 2.7.5
See https://gist.github.com/098cefbaf8edcd473f811bc0cb4ce2b0 for a full test report.

@@ -11,6 +11,13 @@ toolchain = {'name': 'GCC', 'version': '10.3.0'}
local_extra_flags = "-fstack-protector-strong -fstack-clash-protection"
toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}

if ARCH == 'ppc64le':
Copy link
Member

@ocaisa ocaisa Jul 20, 2022

Choose a reason for hiding this comment

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

I don't want to stall this, but in general I think it is better if we avoid logic in easyconfigs if possible (since they are not supposed to contain any). Instead you could create a local_configopts dict and just add local_configopts[ARCH] to the component.
I say this because this easyconfig will now fall over with some of the try-* options. (Well, not fall over but it will evaluate that logic and it will be lost)

Copy link
Member

@ocaisa ocaisa Jul 20, 2022

Choose a reason for hiding this comment

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

BTW ARCH is not defined is it? Shouldn't it be %(arch)s?
Show's how much I know! List of current known archs is at https://github.com/easybuilders/easybuild-framework/blob/develop/easybuild/tools/systemtools.py#L93

@Flamefire
Copy link
Contributor Author

The fix needs to go into OpenBLAS anyway. Closing this.

@Flamefire Flamefire closed this Jul 21, 2022
@Flamefire Flamefire deleted the 20220714172540_new_pr_FlexiBLAS304 branch July 21, 2022 08:02
@boegel boegel added the bug fix label Aug 6, 2022
@boegel boegel added this to the 4.x milestone Aug 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants