-
Notifications
You must be signed in to change notification settings - Fork 199
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
How to configure hypre with sycl for Aurora? #1222
Comments
@waynemitchell is the expert on Aurora and can probably help here. In the meantime, take a look at our test script for Aurora: https://github.com/hypre-space/hypre/blob/master/AUTOTEST/machine-aurora.sh oneAPI is changing frequently, and you might need to use a newer version: |
Yes, I did have |
Are you using v2.32.0? https://gitlab.com/petsc/petsc/-/blame/main/config/BuildSystem/config/packages/hypre.py#L7 Wayne implemented fixes for the SYCL build since 2.32.0. I would recommend using hypre's master |
With hypre/master, that error went away. But there were new errors with respect to MPI symbols. I think I know why.
Because hypre uses |
Could you share |
Attached. |
Could you try removing |
Removed but no effect |
Ok! Could you specify |
Yes, I could add |
Thanks for testing this, Junchao. I see your point. For now, as a workaround, specifying I’ll bring this up with the team to see if we can improve this in future releases. Let me know if the workaround helps! Note that using CMake makes things much easier since it automatically detects and configures the correct MPI settings, avoiding these manual adjustments. I encourage PETSc to consider building hypre via CMake |
Hi, Victor,
` typeinfo name for oneapi::dpl::__par_backend_hetero::__parallel_for_submitter<oneapi::dpl::__par_backend_hetero::__internal::__optional_kernel_name<> >::operator()<oneapi::dpl::execution::__dpl::device_policyoneapi::dpl::execution::__dpl::DefaultKernelName, oneapi::dpl::unseq_backend::walk_n<oneapi::dpl::execution::__dpl::device_policyoneapi::dpl::execution::__dpl::DefaultKernelName, oneapi::dpl::__internal::__transform_functor<hypreSycl_sequence<int*, int>(int*, int*, int)::{lambda(auto:1)#1}> >, long, oneapi::dpl::__ranges::guard_view<oneapi::dpl::counting_iterator >, oneapi::dpl::__ranges::guard_view<int*> >(oneapi::dpl::execution::__dpl::device_policyoneapi::dpl::execution::__dpl::DefaultKernelName&&, oneapi::dpl::unseq_backend::walk_n<oneapi::dpl::execution::__dpl::device_policyoneapi::dpl::execution::__dpl::DefaultKernelName, oneapi::dpl::__internal::__transform_functor<hypreSycl_sequence<int*, int>(int*, int*, int)::{lambda(auto:1)#1}> >, long, oneapi::dpl::__ranges::guard_view<oneapi::dpl::counting_iterator >&&, oneapi::dpl::__ranges::guard_view<int*>&&) const::{lambda(sycl::_V1::handler&)#1}::operator()(sycl::_V1::handler&) const::{lambda(sycl::_V1::item<1, true>)#1} |
Thanks Junchao, I don't have access to Aurora, so I can't help with this. Hopefully Wayne can chime in and help you with this issue |
Hi @jczhang07 . Sorry for my slow response on this. I was out sick for most of the past couple weeks. What's the current status on your end? I don't know that I totally follow the entire discussion above... For me, simply doing |
@waynemitchell I could configure and build hypre on Aurora (via petsc). But when I ran a petsc/hypre test, I met the "No kernel named ..." runtime error. See above posts. |
Hello,
From https://hypre.readthedocs.io/en/latest/ch-misc.html#gpu-build-options, it seems I don't need
--with-gpu-arch=ARG
anymore, and only need--with-sycl
,--with-sycl-target=ARG
, and--with-sycl-target-backend=ARG
. But I don't know what ARGs I should use. Do you have examples for Aurora?BTW, I tried
--with-sycl-target=spir64_gen --with-sycl-target-backend=12.60.7
, but met warnings & errors:Thanks!
--Junchao
The text was updated successfully, but these errors were encountered: