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

enable SIMD on power9 (requires gcc>=8) #89

Closed
wants to merge 1 commit into from
Closed

Conversation

kif
Copy link
Member

@kif kif commented Sep 29, 2020

This speeds up the reading of Eiger2 dataset from 36ms to 19ms (on one core) on our power9 computers.
x86 computers are much faster for this task (~12ms)

@vasole
Copy link
Member

vasole commented Sep 29, 2020

@t20100

Should we check the compiler version? We are (supposedly) shipping manylinux2014 wheels for power9...

@kif
Copy link
Member Author

kif commented Sep 30, 2020 via email

@vasole
Copy link
Member

vasole commented Sep 30, 2020

There are distutils hacks, but the simplest seems to me to recover the output of` gcc --version

@t20100
Copy link
Member

t20100 commented Sep 30, 2020

On Power9, we are now building manylinux2014 wheels and Ubuntu20.04 packages.
Running gcc --version on manylinux2014_ppc64le gives: gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
I launched a complete build on your branch to see the outcome: https://gitlab.esrf.fr/silx/bob/hdf5plugin/-/pipelines/34424

It would be best not to modify files under src/ since it is subtrees of other projects.
There is no need to change src/bitshuffle/setup.py since it is not used, and change in src/bitshuffle/src/bitshuffle_core.c can be replaced by "-DUSESSE2" in the project's setup.py as it is already done for "-DNO_WARN_X86_INTRINSICS"

@kif
Copy link
Member Author

kif commented Sep 30, 2020 via email

@t20100
Copy link
Member

t20100 commented Sep 30, 2020

Yes, a PR to bitshuffle would be best.

@vasole
Copy link
Member

vasole commented Sep 30, 2020

Changing line 361 in your setup.py to extra_compile_args += ["-DNO_WARN_X86_INTRINSICS", "-DUSESSE2"] and not touching any file under src should be enough to allow the desired behavior without waiting for upstream changes.

@t20100
Copy link
Member

t20100 commented Sep 30, 2020

You can have a look at this branch: https://github.com/t20100/hdf5plugin/tree/pr89
No change to src/bithsuffle and a slightly more generic approach to enabline SSE2 support on Power9.

@kif
Copy link
Member Author

kif commented Sep 30, 2020

I tried and gcc emits a warning that USESSE2 is already defined ...

@kif
Copy link
Member Author

kif commented Sep 30, 2020

My PR is available upstream to:
kiyo-masui/bitshuffle#87

@t20100
Copy link
Member

t20100 commented Sep 30, 2020

I get no warning with: https://github.com/t20100/hdf5plugin/tree/pr89

@t20100
Copy link
Member

t20100 commented Oct 1, 2020

Closing as supersedes by #90

@t20100 t20100 closed this Oct 1, 2020
Sign up for free to 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