From 223ab79e90664e0e3ffb2779ca5c23584dd3d108 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 19 Nov 2018 21:04:47 +0300 Subject: [PATCH] [HIPIFY] Move Complex API types and functions to separate files [ROCm/hip commit: 8aefe12b8e8458f22e3f6c41775643df102b37af] --- projects/hip/hipify-clang/src/CUDA2HIP.cpp | 2 ++ projects/hip/hipify-clang/src/CUDA2HIP.h | 4 +++ .../src/CUDA2HIP_Complex_API_functions.cpp | 28 ++++++++++++++++++ .../src/CUDA2HIP_Complex_API_types.cpp | 8 +++++ .../src/CUDA2HIP_Driver_API_functions.cpp | 29 ------------------- 5 files changed, 42 insertions(+), 29 deletions(-) create mode 100644 projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_functions.cpp create mode 100644 projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_types.cpp diff --git a/projects/hip/hipify-clang/src/CUDA2HIP.cpp b/projects/hip/hipify-clang/src/CUDA2HIP.cpp index 02f3ae0f12..c0879c1f98 100644 --- a/projects/hip/hipify-clang/src/CUDA2HIP.cpp +++ b/projects/hip/hipify-clang/src/CUDA2HIP.cpp @@ -51,6 +51,8 @@ const std::map& CUDA_RENAMES_MAP() { ret.insert(CUDA_DRIVER_FUNCTION_MAP.begin(), CUDA_DRIVER_FUNCTION_MAP.end()); ret.insert(CUDA_RUNTIME_TYPE_NAME_MAP.begin(), CUDA_RUNTIME_TYPE_NAME_MAP.end()); ret.insert(CUDA_RUNTIME_FUNCTION_MAP.begin(), CUDA_RUNTIME_FUNCTION_MAP.end()); + ret.insert(CUDA_COMPLEX_TYPE_NAME_MAP.begin(), CUDA_COMPLEX_TYPE_NAME_MAP.end()); + ret.insert(CUDA_COMPLEX_FUNCTION_MAP.begin(), CUDA_COMPLEX_FUNCTION_MAP.end()); ret.insert(CUDA_BLAS_TYPE_NAME_MAP.begin(), CUDA_BLAS_TYPE_NAME_MAP.end()); ret.insert(CUDA_BLAS_FUNCTION_MAP.begin(), CUDA_BLAS_FUNCTION_MAP.end()); ret.insert(CUDA_RAND_TYPE_NAME_MAP.begin(), CUDA_RAND_TYPE_NAME_MAP.end()); diff --git a/projects/hip/hipify-clang/src/CUDA2HIP.h b/projects/hip/hipify-clang/src/CUDA2HIP.h index 9593c216a4..5c3a6fa246 100644 --- a/projects/hip/hipify-clang/src/CUDA2HIP.h +++ b/projects/hip/hipify-clang/src/CUDA2HIP.h @@ -15,6 +15,10 @@ extern const std::map CUDA_DRIVER_TYPE_NAME_MAP; extern const std::map CUDA_DRIVER_FUNCTION_MAP; // Maps the names of CUDA RUNTIME API types to the corresponding HIP types extern const std::map CUDA_RUNTIME_TYPE_NAME_MAP; +// Maps the names of CUDA Complex API types to the corresponding HIP types +extern const std::map CUDA_COMPLEX_TYPE_NAME_MAP; +// Maps the names of CUDA Complex API functions to the corresponding HIP functions +extern const std::map CUDA_COMPLEX_FUNCTION_MAP; // Maps the names of CUDA RUNTIME API functions to the corresponding HIP functions extern const std::map CUDA_RUNTIME_FUNCTION_MAP; // Maps the names of CUDA BLAS API types to the corresponding HIP types diff --git a/projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_functions.cpp b/projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_functions.cpp new file mode 100644 index 0000000000..3bc7c4f0a0 --- /dev/null +++ b/projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_functions.cpp @@ -0,0 +1,28 @@ +#include "CUDA2HIP.h" + +// Maps the names of CUDA DRIVER API types to the corresponding HIP types +const std::map CUDA_COMPLEX_FUNCTION_MAP{ + {"cuCrealf", {"hipCrealf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCimagf", {"hipCimagf", CONV_COMPLEX, API_COMPLEX}}, + {"make_cuFloatComplex", {"make_hipFloatComplex", CONV_COMPLEX, API_COMPLEX}}, + {"cuConjf", {"hipConjf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCaddf", {"hipCaddf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCsubf", {"hipCsubf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCmulf", {"hipCmulf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCdivf", {"hipCdivf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCabsf", {"hipCabsf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCreal", {"hipCreal", CONV_COMPLEX, API_COMPLEX}}, + {"cuCimag", {"hipCimag", CONV_COMPLEX, API_COMPLEX}}, + {"make_cuDoubleComplex", {"make_hipDoubleComplex", CONV_COMPLEX, API_COMPLEX}}, + {"cuConj", {"hipConj", CONV_COMPLEX, API_COMPLEX}}, + {"cuCadd", {"hipCadd", CONV_COMPLEX, API_COMPLEX}}, + {"cuCsub", {"hipCsub", CONV_COMPLEX, API_COMPLEX}}, + {"cuCmul", {"hipCmul", CONV_COMPLEX, API_COMPLEX}}, + {"cuCdiv", {"hipCdiv", CONV_COMPLEX, API_COMPLEX}}, + {"cuCabs", {"hipCabs", CONV_COMPLEX, API_COMPLEX}}, + {"make_cuComplex", {"make_hipComplex", CONV_COMPLEX, API_COMPLEX}}, + {"cuComplexFloatToDouble", {"hipComplexFloatToDouble", CONV_COMPLEX, API_COMPLEX}}, + {"cuComplexDoubleToFloat", {"hipComplexDoubleToFloat", CONV_COMPLEX, API_COMPLEX}}, + {"cuCfmaf", {"hipCfmaf", CONV_COMPLEX, API_COMPLEX}}, + {"cuCfma", {"hipCfma", CONV_COMPLEX, API_COMPLEX}}, +}; diff --git a/projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_types.cpp b/projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_types.cpp new file mode 100644 index 0000000000..f371cf3b9a --- /dev/null +++ b/projects/hip/hipify-clang/src/CUDA2HIP_Complex_API_types.cpp @@ -0,0 +1,8 @@ +#include "CUDA2HIP.h" + +// Maps the names of CUDA DRIVER API types to the corresponding HIP types +const std::map CUDA_COMPLEX_TYPE_NAME_MAP{ + {"cuFloatComplex", {"hipFloatComplex", CONV_TYPE, API_COMPLEX}}, + {"cuDoubleComplex", {"hipDoubleComplex", CONV_TYPE, API_COMPLEX}}, + {"cuComplex", {"hipComplex", CONV_TYPE, API_COMPLEX}}, +}; diff --git a/projects/hip/hipify-clang/src/CUDA2HIP_Driver_API_functions.cpp b/projects/hip/hipify-clang/src/CUDA2HIP_Driver_API_functions.cpp index 77dd67fd03..6871be877b 100644 --- a/projects/hip/hipify-clang/src/CUDA2HIP_Driver_API_functions.cpp +++ b/projects/hip/hipify-clang/src/CUDA2HIP_Driver_API_functions.cpp @@ -748,33 +748,4 @@ const std::map CUDA_DRIVER_FUNCTION_MAP{ {"cuGraphicsResourceGetMappedEglFrame", {"hipGraphicsResourceGetMappedEglFrame", CONV_EGL, API_DRIVER, HIP_UNSUPPORTED}}, // cudaEventCreateFromEGLSync {"cuEventCreateFromEGLSync", {"hipEventCreateFromEGLSync", CONV_EGL, API_DRIVER, HIP_UNSUPPORTED}}, - -////////////////////////////// cuComplex API ////////////////////////////// - {"cuFloatComplex", {"hipFloatComplex", CONV_TYPE, API_COMPLEX}}, - {"cuDoubleComplex", {"hipDoubleComplex", CONV_TYPE, API_COMPLEX}}, - {"cuComplex", {"hipComplex", CONV_TYPE, API_COMPLEX}}, - - {"cuCrealf", {"hipCrealf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCimagf", {"hipCimagf", CONV_COMPLEX, API_COMPLEX}}, - {"make_cuFloatComplex", {"make_hipFloatComplex", CONV_COMPLEX, API_COMPLEX}}, - {"cuConjf", {"hipConjf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCaddf", {"hipCaddf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCsubf", {"hipCsubf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCmulf", {"hipCmulf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCdivf", {"hipCdivf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCabsf", {"hipCabsf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCreal", {"hipCreal", CONV_COMPLEX, API_COMPLEX}}, - {"cuCimag", {"hipCimag", CONV_COMPLEX, API_COMPLEX}}, - {"make_cuDoubleComplex", {"make_hipDoubleComplex", CONV_COMPLEX, API_COMPLEX}}, - {"cuConj", {"hipConj", CONV_COMPLEX, API_COMPLEX}}, - {"cuCadd", {"hipCadd", CONV_COMPLEX, API_COMPLEX}}, - {"cuCsub", {"hipCsub", CONV_COMPLEX, API_COMPLEX}}, - {"cuCmul", {"hipCmul", CONV_COMPLEX, API_COMPLEX}}, - {"cuCdiv", {"hipCdiv", CONV_COMPLEX, API_COMPLEX}}, - {"cuCabs", {"hipCabs", CONV_COMPLEX, API_COMPLEX}}, - {"make_cuComplex", {"make_hipComplex", CONV_COMPLEX, API_COMPLEX}}, - {"cuComplexFloatToDouble", {"hipComplexFloatToDouble", CONV_COMPLEX, API_COMPLEX}}, - {"cuComplexDoubleToFloat", {"hipComplexDoubleToFloat", CONV_COMPLEX, API_COMPLEX}}, - {"cuCfmaf", {"hipCfmaf", CONV_COMPLEX, API_COMPLEX}}, - {"cuCfma", {"hipCfma", CONV_COMPLEX, API_COMPLEX}}, };