- 
                Notifications
    You must be signed in to change notification settings 
- Fork 9
Address oneAPI 2025 deprecations #278
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
Address oneAPI 2025 deprecations #278
Conversation
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.
The changes are ok to me. I think there are remaining deprecation warnings like
/work/fft/src/KokkosFFT_SYCL_plans.hpp:126:51: warning: 'CONJUGATE_EVEN_STORAGE' is deprecated [-Wdeprecated-declarations]
  126 |   plan->set_value(oneapi::mkl::dft::config_param::CONJUGATE_EVEN_STORAGE,
/work/fft/src/KokkosFFT_SYCL_plans.hpp:112:9: warning: 'set_value' is deprecated: Use set_value(config_param, const std::vector<std::int64_t>&) instead. [-Wdeprecated-declarations]
  112 |   plan->set_value(oneapi::mkl::dft::config_param::INPUT_STRIDES,
        
          
                fft/src/KokkosFFT_SYCL_plans.hpp
              
                Outdated
          
        
      | plan->set_value(oneapi::mkl::dft::config_param::FWD_STRIDES, | ||
| in_strides.data()); | ||
| plan->set_value(oneapi::mkl::dft::config_param::OUTPUT_STRIDES, | ||
| plan->set_value(oneapi::mkl::dft::config_param::BWD_STRIDES, | 
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.
It looks like the macros FWD_STRIDES and BWD_STRIDES are available in older versions of Intel MKL also. Have INPUT_STRIDES and OUTPUT_STRIDES alone been deprecated?
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.
According to the errors, INPUT_STRIDES and OUTPUT_STRIDES have been deprecated.
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.
FWD_STRIDES and INPUT_STRIDES are having the same meaning. Same with BWD_STRIDES and OUTPUT_STRIDES. I was curious about that.
| 
 Good catch. It may be that we can remove  | 
| Are you fine with the current change? Or you think it is better to suppress  Since I cannot test this on Intel GPU now, I would like to keep it until I confirm that it is OK to be removed | 
| Should we wait until we can test all the changes to merge then ? | 
| Has Kokkos fixed all these warnings about  | 
| 
 Yes, with this In the nightly, you may find almost no warnings from kokkos codes | 
fcd62a7    to
    642696a      
    Compare
  
    | People from Aurora and Intel told me the correct way to set up the descriptor with new arguments. Thanks a lot! @tpadioleau @science-enthusiast | 
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.
That is good news but I cannot tell if we are addressing the warnings given the spurious warnings coming from Kokkos. Could we find a way to remove them ?
| 
 From nightly with newest Kokkos and OneAPI 2025, the warnings are from KokkosFFT side. All of these warnings should have been addressed in the PR. /opt/intel/oneapi/mkl/2025.1/include/oneapi/mkl/dfti.hpp:18:2: warning: "Header 'oneapi/mkl/dfti.hpp' is deprecated. Please use oneapi/mkl/dft.hpp instead" [-W#warnings]
   18 | #warning "Header 'oneapi/mkl/dfti.hpp' is deprecated. Please use oneapi/mkl/dft.hpp instead"
      |  ^
/work/fft/src/KokkosFFT_SYCL_plans.hpp:24:15: warning: unused variable 'once' [-Wunused-variable]
   24 |   static bool once = [] {
      |               ^~~~
/work/fft/src/KokkosFFT_SYCL_plans.hpp:112:51: warning: 'INPUT_STRIDES' is deprecated: Use FWD/BWD strides instead. [-Wdeprecated-declarations]
  112 |   plan->set_value(oneapi::mkl::dft::config_param::INPUT_STRIDES,
      |                                                   ^
/opt/intel/oneapi/mkl/2025.1/include/oneapi/mkl/dft.hpp:51:31: note: 'INPUT_STRIDES' has been explicitly marked deprecated here
   51 |     INPUT_STRIDES           [[deprecated("Use FWD/BWD strides instead.")]]
      |                               ^
/work/fft/src/KokkosFFT_SYCL_plans.hpp:114:51: warning: 'OUTPUT_STRIDES' is deprecated: Use FWD/BWD strides instead. [-Wdeprecated-declarations]
  114 |   plan->set_value(oneapi::mkl::dft::config_param::OUTPUT_STRIDES,
      |                                                   ^
/opt/intel/oneapi/mkl/2025.1/include/oneapi/mkl/dft.hpp:53:31: note: 'OUTPUT_STRIDES' has been explicitly marked deprecated here
   53 |     OUTPUT_STRIDES          [[deprecated("Use FWD/BWD strides instead.")]]
      |                               ^
/work/fft/src/KokkosFFT_SYCL_plans.hpp:126:51: warning: 'CONJUGATE_EVEN_STORAGE' is deprecated [-Wdeprecated-declarations]
  126 |   plan->set_value(oneapi::mkl::dft::config_param::CONJUGATE_EVEN_STORAGE,
      |                                                   ^
/opt/intel/oneapi/mkl/2025.1/include/oneapi/mkl/dft.hpp:49:31: note: 'CONJUGATE_EVEN_STORAGE' has been explicitly marked deprecated here
   49 |     CONJUGATE_EVEN_STORAGE  [[deprecated]]  = DFTI_CONJUGATE_EVEN_STORAGE,
      |                               ^ | 
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.
In some parts of the PR, we are changing the implementation for versions <20250100. If we allow this, can't we only keep the version >=20250100 ? Otherwise maybe keep the old implementation for <20250100 ?
| 
 That is a good point. | 
| 
 Then I would consider keeping the safe old implementation when <20250100. | 
| 
 Do you mean that the default should be the new version like #if INTEL_MKL_VERSION < 20250100
#include <oneapi/mkl/dfti.hpp>
#else
#include <oneapi/mkl/dft.hpp>
#endif | 
| @tpadioleau I have fixed accordingly. May I have another review? | 
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.
LGTM, thanks
| Thanks! I will merge this. | 
| Nightly looks almost good. https://github.com/kokkos/kokkos-fft/actions/runs/18210223243/job/51849125743 I do not know how to suppress  | 
| 
 Can you check that this flag is being added by googletest ? | 
| 
 How can I check that? | 
| 
 You can build in verbose mode 
 | 
| 
 Can I test this in nightly? The oneAPI is 2025+ but oneMKL is 24.347. | 
This PR addresses the oneAPI 2025 deprecations as found in Nightly builds.