AIRUNTIME-32 - Add try/catch around all HIP API calls (#2822)

이 커밋은 다음에 포함됨:
German Andryeyev
2026-01-23 14:53:20 -05:00
커밋한 사람 GitHub
부모 340f3aa887
커밋 2b1b41f4da
2개의 변경된 파일1112개의 추가작업 그리고 11개의 파일을 삭제
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다. Diff 로드
+9
파일 보기
@@ -24,6 +24,8 @@ namespace hip {
const HipDispatchTable* GetHipDispatchTable();
const HipCompilerDispatchTable* GetHipCompilerDispatchTable();
const HipToolsDispatchTable* GetHipToolsDispatchTable();
template <typename T> T HandleException();
template <> hipError_t HandleException<hipError_t>();
} // namespace hip
#ifdef _WIN32
@@ -32,6 +34,9 @@ const HipToolsDispatchTable* GetHipToolsDispatchTable();
#define DllExport extern "C"
#endif // !_WIN32
#define TRY try {
#define CATCH } catch(...) { return hip::HandleException<hipError_t>(); }
DllExport hipError_t hipExtModuleLaunchKernel(hipFunction_t f, uint32_t globalWorkSizeX,
uint32_t globalWorkSizeY, uint32_t globalWorkSizeZ,
uint32_t localWorkSizeX, uint32_t localWorkSizeY,
@@ -39,9 +44,11 @@ DllExport hipError_t hipExtModuleLaunchKernel(hipFunction_t f, uint32_t globalWo
hipStream_t hStream, void** kernelParams,
void** extra, hipEvent_t startEvent,
hipEvent_t stopEvent, uint32_t flags) {
TRY;
return hip::GetHipDispatchTable()->hipExtModuleLaunchKernel_fn(
f, globalWorkSizeX, globalWorkSizeY, globalWorkSizeZ, localWorkSizeX, localWorkSizeY,
localWorkSizeZ, sharedMemBytes, hStream, kernelParams, extra, startEvent, stopEvent, flags);
CATCH;
}
DllExport hipError_t hipHccModuleLaunchKernel(hipFunction_t f, uint32_t globalWorkSizeX,
uint32_t globalWorkSizeY, uint32_t globalWorkSizeZ,
@@ -50,7 +57,9 @@ DllExport hipError_t hipHccModuleLaunchKernel(hipFunction_t f, uint32_t globalWo
hipStream_t hStream, void** kernelParams,
void** extra, hipEvent_t startEvent,
hipEvent_t stopEvent) {
TRY;
return hip::GetHipDispatchTable()->hipHccModuleLaunchKernel_fn(
f, globalWorkSizeX, globalWorkSizeY, globalWorkSizeZ, localWorkSizeX, localWorkSizeY,
localWorkSizeZ, sharedMemBytes, hStream, kernelParams, extra, startEvent, stopEvent);
CATCH;
}