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

dynamic load mkl as a fft backend when it is avaialble and requested #36414

Merged
merged 8 commits into from
Oct 15, 2021

Conversation

iclementine
Copy link

@iclementine iclementine commented Oct 13, 2021

PR types

New features

PR changes

Others

Describe

Dynamically load dfti functions from onemkl.
Add mkl as a fft backend when it is avaialble and requested, refer to related pr #35665

To enable mkl as an fft backend, follow the steps below.

Install oneMKL

Download onemkl from intel's website
https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/download.html

Install oneMKL

compile paddle with oneMKL support

  1. add -DWITH_ONEMKL=ON when generating build system for paddle.
  2. build and install as usual.

Add oneMKL's library path into $LD_LIBRARY_PATH

source setvars.sh add oneMKL's environment variables will be set up.
You can add this to .bashrc_profile or .bashrc to do this automatically.
NOTE: oneMKL's library path must be included in $LD_LIBRARY_PATH to use mkl as a fft backend correctly.

@paddle-bot-old
Copy link

Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.

2. use macro MKL_DFTI_CHECK instead of a function.
Copy link
Contributor

@chenwhql chenwhql left a comment

Choose a reason for hiding this comment

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

LGTM for PADDLE_THROW

@iclementine iclementine merged commit f45e6cf into PaddlePaddle:develop Oct 15, 2021
XiaoguangHu01 pushed a commit that referenced this pull request Oct 28, 2021
* update fft api path (#36219)

* update fft api path
* add sample code for ihfft2

Co-authored-by: chenfeiyu <chenfeiyu@baidu.com>

* fix fft axis (#36321)

fix: `-1` is used when fft's axis is `0`

* use unified external error message for cufft api (#36114)

* fft: modify sample code result (#36325)

* dynamic load mkl as a fft backend when it is avaialble and requested (#36414)

* add rocm support for fft api (#36415)

* move signal apis

* move fft and signal API path (#2)

* move signal apis

* move fft.py and signal.py to paddle/, fix typos

* fix relative imports from fft.py and signal.py

* fix typos in signal.py (#3)

* move signal apis

* move fft.py and signal.py to paddle/, fix typos

* fix relative imports from fft.py and signal.py

* fix typos

* disable Cache when CUFFT_VERSION >= 10200 (#4)

* move signal apis

* move fft.py and signal.py to paddle/, fix typos

* fix relative imports from fft.py and signal.py

* fix typos

* Add LRUCache for fft plans

* add LRUCache for cuff and hipfft (#5)

* move signal apis

* move fft.py and signal.py to paddle/, fix typos

* fix relative imports from fft.py and signal.py

* fix typos

* WIP: add cache

* delete move constructor and operator= for CuFFTHandle and FFTConfig

* remove log from CuFFTHandle and FFTConfig

* add lrucache for fft rocm backend

* disable LRUCache when CUFFT_VERSION >= 10200

* disbale copy and move for hipFFTHandle; format code

Co-authored-by: Xiaoxu Chen <chenxx_id@163.com>

* remove debug message of cufftHandler

* roll_op: support Tensor as input for shifts (#36727)

* fix fftshift/ifftshift on static mode

* update roll_op version

* add more test cases for fftshift/ifftshift

Co-authored-by: zhiboniu <31800336+zhiboniu@users.noreply.github.com>
Co-authored-by: chenfeiyu <chenfeiyu@baidu.com>
Co-authored-by: LJQ❤️ <33169170+lijiaqi0612@users.noreply.github.com>
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