From 949e778f66e3f3ca9d5a140d325e4db26f2bda9f Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Thu, 10 Oct 2019 17:27:28 +0300 Subject: [PATCH] [HIP] Introduce library_types.h as a common header for libs (#1509) * [HIP] Introduce library_types.h as a common header for libs [Reason] Currently, hipFFT, hipBLAS and other HIP libs use their own data types, prefixed with HIPFFT or HIPBLAS, whereas in CUDA those types are common and declared in library_types.h [TODO] Switch hipFFT, hipBLAS and other HIP libs to use common library_types.h. * [HIP] Move include for library_types.h to hip_runtime.h [Reason] Repeat CUDA's behaviour, where library_types.h is included in cuda_runtime.h [ROCm/clr commit: d8d9f16f17b951af845a4eb845ddd503a0153e0e] --- .../include/hip/hcc_detail/library_types.h | 42 +++++++++++++++++++ projects/clr/hipamd/include/hip/hip_runtime.h | 3 +- .../clr/hipamd/include/hip/library_types.h | 36 ++++++++++++++++ .../include/hip/nvcc_detail/hip_runtime_api.h | 9 ++++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 projects/clr/hipamd/include/hip/hcc_detail/library_types.h create mode 100644 projects/clr/hipamd/include/hip/library_types.h diff --git a/projects/clr/hipamd/include/hip/hcc_detail/library_types.h b/projects/clr/hipamd/include/hip/hcc_detail/library_types.h new file mode 100644 index 0000000000..74bae81321 --- /dev/null +++ b/projects/clr/hipamd/include/hip/hcc_detail/library_types.h @@ -0,0 +1,42 @@ +/* +Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifndef HIP_INCLUDE_HIP_HCC_DETAIL_LIBRARY_TYPES_H +#define HIP_INCLUDE_HIP_HCC_DETAIL_LIBRARY_TYPES_H + +typedef enum hipDataType { + HIP_R_16F = 2, + HIP_R_32F = 0, + HIP_R_64F = 1, + HIP_C_16F = 6, + HIP_C_32F = 4, + HIP_C_64F = 5 +} hipDataType; + +typedef enum libraryPropertyType { + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; + +#endif + diff --git a/projects/clr/hipamd/include/hip/hip_runtime.h b/projects/clr/hipamd/include/hip/hip_runtime.h index 937ba61ecf..b02eb0eef7 100644 --- a/projects/clr/hipamd/include/hip/hip_runtime.h +++ b/projects/clr/hipamd/include/hip/hip_runtime.h @@ -63,5 +63,6 @@ THE SOFTWARE. #include #include +#include -#endif \ No newline at end of file +#endif diff --git a/projects/clr/hipamd/include/hip/library_types.h b/projects/clr/hipamd/include/hip/library_types.h new file mode 100644 index 0000000000..4a988df52b --- /dev/null +++ b/projects/clr/hipamd/include/hip/library_types.h @@ -0,0 +1,36 @@ +/* +Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifndef HIP_INCLUDE_HIP_LIBRARY_TYPES_H +#define HIP_INCLUDE_HIP_LIBRARY_TYPES_H + +#include + +#if defined(__HIP_PLATFORM_HCC__) && !defined(__HIP_PLATFORM_NVCC__) +#include +#elif defined(__HIP_PLATFORM_NVCC__) && !defined(__HIP_PLATFORM_HCC__) +#include "library_types.h" +#else +#error("Must define exactly one of __HIP_PLATFORM_HCC__ or __HIP_PLATFORM_NVCC__"); +#endif + +#endif diff --git a/projects/clr/hipamd/include/hip/nvcc_detail/hip_runtime_api.h b/projects/clr/hipamd/include/hip/nvcc_detail/hip_runtime_api.h index 97551d15d4..02f83b329e 100644 --- a/projects/clr/hipamd/include/hip/nvcc_detail/hip_runtime_api.h +++ b/projects/clr/hipamd/include/hip/nvcc_detail/hip_runtime_api.h @@ -50,6 +50,15 @@ typedef enum hipMemcpyKind { hipMemcpyDefault } hipMemcpyKind; +// hipDataType +#define hipDataType cudaDataType +#define HIP_R_16F CUDA_R_16F +#define HIP_R_32F CUDA_R_32F +#define HIP_R_64F CUDA_R_64F +#define HIP_C_16F CUDA_C_16F +#define HIP_C_32F CUDA_C_32F +#define HIP_C_64F CUDA_C_64F + // hipTextureAddressMode #define hipTextureAddressMode cudaTextureAddressMode #define hipAddressModeWrap cudaAddressModeWrap