From e80506ab5d537ec584d5bc84e3a6451a12e5a1da Mon Sep 17 00:00:00 2001 From: Maya Taylor Date: Tue, 29 Apr 2025 15:02:52 -0500 Subject: [PATCH] hapi python functions must be available regardless of cuda build --- src/ck-core/charm.h | 2 +- src/ck-core/ck.C | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ck-core/charm.h b/src/ck-core/charm.h index b645027626..c10bc4a11f 100644 --- a/src/ck-core/charm.h +++ b/src/ck-core/charm.h @@ -511,7 +511,7 @@ extern void CkEnableTracing(int epIdx); extern void CkCallWhenIdle(int epIdx, void* obj); -#if CMK_CHARM4PY && CMK_CUDA +#if CMK_CHARM4PY extern void CkHapiAddCallback(long stream, void (*cb)(void*, void*), int fid); #endif diff --git a/src/ck-core/ck.C b/src/ck-core/ck.C index 8e6aa5e470..4af42ec30b 100644 --- a/src/ck-core/ck.C +++ b/src/ck-core/ck.C @@ -2638,18 +2638,25 @@ void CkArrayExtSend_multi(int aid, int *idx, int ndims, int epIdx, int num_bufs, } +// HAPI support #if CMK_CUDA #include "hapi.h" +#endif + void CkHapiAddCallback(long stream, void (*cb)(void*, void*), int fid) { + #if CMK_CUDA cudaStream_t stream_ptr = (cudaStream_t)stream; CkCallback callback(cb, (void *) fid); hapiAddCallback(stream_ptr, callback, NULL); + #else + // function must be defined regardless for cython compilation + CkAbort("CkHapiAddCallback> Charm++ was not built with CUDA support"); + #endif } -#endif // CMK_CUDA -#endif +#endif // CMK_CHARM4PY //------------------- Message Watcher (record/replay) ----------------