From 567c7a80860a5c4f240f44f9bad856a984952f50 Mon Sep 17 00:00:00 2001 From: gabriele merlo Date: Sun, 25 Jan 2026 17:01:01 +0100 Subject: [PATCH] Add interfaces to streamWaitEvent (cuda&hip) --- src/fortran/gpu_api.cxx | 10 ++++++++++ src/fortran/gpu_api_interface.F90 | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/fortran/gpu_api.cxx b/src/fortran/gpu_api.cxx index e85e49d1..289e2c91 100644 --- a/src/fortran/gpu_api.cxx +++ b/src/fortran/gpu_api.cxx @@ -140,6 +140,11 @@ extern "C" int gpuEventSynchronize(cudaEvent_t event) return static_cast(cudaEventSynchronize(event)); } +extern "C" int gpuStreamWaitEvent(cudaStream_t stream, cudaEvent_t event) +{ + return static_cast(cudaStreamWaitEvent(stream, event)); +} + extern "C" int gpuMemcpyAsync(void* dst, const void* src, size_t bytes, cudaMemcpyKind kind, cudaStream_t stream) { @@ -182,6 +187,11 @@ extern "C" int gpuEventRecord(hipEvent_t event, hipStream_t stream) return static_cast(hipEventRecord(event, stream)); } +extern "C" int gpuStreamWaitEvent(hipStream_t stream, hipEvent_t event) +{ + return static_cast(hipStreamWaitEvent(stream, event)); +} + extern "C" int gpuEventSynchronize(hipEvent_t event) { return static_cast(hipEventSynchronize(event)); diff --git a/src/fortran/gpu_api_interface.F90 b/src/fortran/gpu_api_interface.F90 index d1e9a088..362c911d 100644 --- a/src/fortran/gpu_api_interface.F90 +++ b/src/fortran/gpu_api_interface.F90 @@ -149,6 +149,12 @@ function gpuEventRecord(event, streamid) bind(c,name="gpuEventRecord") integer(C_INT) :: gpuEventRecord end function gpuEventRecord + function gpuStreamWaitEvent(streamid, event) bind(c,name="gpuStreamWaitEvent") + import + type(C_PTR),value :: event,streamid + integer(C_INT) :: StreamWaitEvent + end function gpuStreamWaitEvent + function gpuEventSynchronize(event) bind(c,name="gpuEventSynchronize") import type(C_PTR),value :: event