From 98f9b7b9e5ea70652bf07036bf6c37092b37e909 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Tue, 4 Jul 2023 19:36:10 +0200 Subject: [PATCH] [HIPIFY] Sync with CUDA 12.2.0 - Part 1 - tests + Updated the changed Driver types and the corresponding synthetic tests + Updated the regenerated `hipify-perl` and docs accordingly --- bin/hipify-perl | 7 ++++++- .../CUDA_Driver_API_functions_supported_by_HIP.md | 6 +++++- src/CUDA2HIP_Driver_API_types.cpp | 12 ++++++++++-- src/Statistics.cpp | 1 + src/Statistics.h | 3 ++- tests/unit_tests/synthetic/driver_functions.cu | 9 ++++++--- tests/unit_tests/synthetic/driver_structs.cu | 14 ++++++++++++-- 7 files changed, 42 insertions(+), 10 deletions(-) diff --git a/bin/hipify-perl b/bin/hipify-perl index 64188c1d..a243d712 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -854,7 +854,8 @@ my %removed_funcs = ( "CUDNN_CONVOLUTION_BWD_FILTER_NO_WORKSPACE" => "8.0.1", "CUDNN_CONVOLUTION_BWD_DATA_SPECIFY_WORKSPACE_LIMIT" => "8.0.1", "CUDNN_CONVOLUTION_BWD_DATA_PREFER_FASTEST" => "8.0.1", - "CUDNN_CONVOLUTION_BWD_DATA_NO_WORKSPACE" => "8.0.1" + "CUDNN_CONVOLUTION_BWD_DATA_NO_WORKSPACE" => "8.0.1", + "CUDA_MEM_ALLOC_NODE_PARAMS_st" => "12.2" ); my %experimental_funcs = ( @@ -3637,6 +3638,8 @@ sub simpleSubstitutions { subst("CUDA_MEMSET_NODE_PARAMS_v1", "hipMemsetParams", "type"); subst("CUDA_MEM_ALLOC_NODE_PARAMS", "hipMemAllocNodeParams", "type"); subst("CUDA_MEM_ALLOC_NODE_PARAMS_st", "hipMemAllocNodeParams", "type"); + subst("CUDA_MEM_ALLOC_NODE_PARAMS_v1", "hipMemAllocNodeParams", "type"); + subst("CUDA_MEM_ALLOC_NODE_PARAMS_v1_st", "hipMemAllocNodeParams", "type"); subst("CUDA_RESOURCE_DESC", "HIP_RESOURCE_DESC", "type"); subst("CUDA_RESOURCE_DESC_st", "HIP_RESOURCE_DESC_st", "type"); subst("CUDA_RESOURCE_DESC_v1", "HIP_RESOURCE_DESC", "type"); @@ -8615,6 +8618,8 @@ sub warnUnsupportedFunctions { "CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS", "CUDA_NVSCISYNC_ATTR_WAIT", "CUDA_NVSCISYNC_ATTR_SIGNAL", + "CUDA_MEM_ALLOC_NODE_PARAMS_v2_st", + "CUDA_MEM_ALLOC_NODE_PARAMS_v2", "CUDA_MEMCPY3D_PEER_v1", "CUDA_MEMCPY3D_PEER_st", "CUDA_MEMCPY3D_PEER", diff --git a/docs/tables/CUDA_Driver_API_functions_supported_by_HIP.md b/docs/tables/CUDA_Driver_API_functions_supported_by_HIP.md index 521388e4..30642cce 100644 --- a/docs/tables/CUDA_Driver_API_functions_supported_by_HIP.md +++ b/docs/tables/CUDA_Driver_API_functions_supported_by_HIP.md @@ -190,7 +190,11 @@ |`CUDA_MEMSET_NODE_PARAMS_st`|10.0| | |`hipMemsetParams`|4.3.0| | | | |`CUDA_MEMSET_NODE_PARAMS_v1`|11.3| | |`hipMemsetParams`|4.3.0| | | | |`CUDA_MEM_ALLOC_NODE_PARAMS`|11.4| | |`hipMemAllocNodeParams`|5.5.0| | | | -|`CUDA_MEM_ALLOC_NODE_PARAMS_st`|11.4| | |`hipMemAllocNodeParams`|5.5.0| | | | +|`CUDA_MEM_ALLOC_NODE_PARAMS_st`|11.4| |12.2|`hipMemAllocNodeParams`|5.5.0| | | | +|`CUDA_MEM_ALLOC_NODE_PARAMS_v1`|12.2| | |`hipMemAllocNodeParams`|5.5.0| | | | +|`CUDA_MEM_ALLOC_NODE_PARAMS_v1_st`|12.2| | |`hipMemAllocNodeParams`|5.5.0| | | | +|`CUDA_MEM_ALLOC_NODE_PARAMS_v2`|12.2| | | | | | | | +|`CUDA_MEM_ALLOC_NODE_PARAMS_v2_st`|12.2| | | | | | | | |`CUDA_NVSCISYNC_ATTR_SIGNAL`|10.2| | | | | | | | |`CUDA_NVSCISYNC_ATTR_WAIT`|10.2| | | | | | | | |`CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS`|11.1| | | | | | | | diff --git a/src/CUDA2HIP_Driver_API_types.cpp b/src/CUDA2HIP_Driver_API_types.cpp index 480a6afd..648cc391 100644 --- a/src/CUDA2HIP_Driver_API_types.cpp +++ b/src/CUDA2HIP_Driver_API_types.cpp @@ -300,8 +300,12 @@ const std::map CUDA_DRIVER_TYPE_NAME_MAP { {"CUexecAffinityParam_v1", {"hipExecAffinityParam", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES, HIP_UNSUPPORTED}}, // cudaMemAllocNodeParams - {"CUDA_MEM_ALLOC_NODE_PARAMS_st", {"hipMemAllocNodeParams", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES}}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_st", {"hipMemAllocNodeParams", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES, CUDA_REMOVED}}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v1_st", {"hipMemAllocNodeParams", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES}}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v2_st", {"hipMemAllocNodeParams_v2", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES, HIP_UNSUPPORTED}}, {"CUDA_MEM_ALLOC_NODE_PARAMS", {"hipMemAllocNodeParams", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES}}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v1", {"hipMemAllocNodeParams", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES}}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v2", {"hipMemAllocNodeParams_v2", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES, HIP_UNSUPPORTED}}, // cudaArrayMemoryRequirements {"CUDA_ARRAY_MEMORY_REQUIREMENTS_st", {"hipArrayMemoryRequirements", "", CONV_TYPE, API_DRIVER, SEC::DATA_TYPES, HIP_UNSUPPORTED}}, @@ -3147,7 +3151,7 @@ const std::map CUDA_DRIVER_TYPE_NAME_VER_MAP { {"CUDA_ERROR_MPS_SERVER_NOT_READY", {CUDA_114, CUDA_0, CUDA_0 }}, {"CUDA_ERROR_MPS_MAX_CLIENTS_REACHED", {CUDA_114, CUDA_0, CUDA_0 }}, {"CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED", {CUDA_114, CUDA_0, CUDA_0 }}, - {"CUDA_MEM_ALLOC_NODE_PARAMS_st", {CUDA_114, CUDA_0, CUDA_0 }}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_st", {CUDA_114, CUDA_0, CUDA_122}}, {"CUDA_MEM_ALLOC_NODE_PARAMS", {CUDA_114, CUDA_0, CUDA_0 }}, {"CUgraphMem_attribute", {CUDA_114, CUDA_0, CUDA_0 }}, {"CUgraphMem_attribute_enum", {CUDA_114, CUDA_0, CUDA_0 }}, @@ -3405,6 +3409,10 @@ const std::map CUDA_DRIVER_TYPE_NAME_VER_MAP { {"CU_COREDUMP_FILE", {CUDA_121, CUDA_0, CUDA_0 }}, {"CU_COREDUMP_PIPE", {CUDA_121, CUDA_0, CUDA_0 }}, {"CU_COREDUMP_MAX", {CUDA_121, CUDA_0, CUDA_0 }}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v1_st", {CUDA_122, CUDA_0, CUDA_0 }}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v1", {CUDA_122, CUDA_0, CUDA_0 }}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v2_st", {CUDA_122, CUDA_0, CUDA_0 }}, + {"CUDA_MEM_ALLOC_NODE_PARAMS_v2", {CUDA_122, CUDA_0, CUDA_0 }}, }; const std::map HIP_DRIVER_TYPE_NAME_VER_MAP { diff --git a/src/Statistics.cpp b/src/Statistics.cpp index 73022855..2554d4e1 100644 --- a/src/Statistics.cpp +++ b/src/Statistics.cpp @@ -483,6 +483,7 @@ std::string Statistics::getCudaVersion(const cudaVersions& ver) { case CUDA_118: return "11.8"; case CUDA_120: return "12.0"; case CUDA_121: return "12.1"; + case CUDA_122: return "12.2"; case CUDNN_10: return "1.0.0"; case CUDNN_20: return "2.0.0"; case CUDNN_30: return "3.0.0"; diff --git a/src/Statistics.h b/src/Statistics.h index a3458638..148c62f6 100644 --- a/src/Statistics.h +++ b/src/Statistics.h @@ -237,7 +237,8 @@ enum cudaVersions { CUDA_118 = 11080, CUDA_120 = 12000, CUDA_121 = 12010, - CUDA_LATEST = CUDA_121, + CUDA_122 = 12020, + CUDA_LATEST = CUDA_122, CUDNN_10 = 100, CUDNN_20 = 200, CUDNN_30 = 300, diff --git a/tests/unit_tests/synthetic/driver_functions.cu b/tests/unit_tests/synthetic/driver_functions.cu index 76a25f7b..3242b153 100644 --- a/tests/unit_tests/synthetic/driver_functions.cu +++ b/tests/unit_tests/synthetic/driver_functions.cu @@ -786,6 +786,11 @@ int main() { result = cuGraphDebugDotPrint(graph, name.c_str(), flags); #endif +#if CUDA_VERSION >= 11040 && CUDA_VERSION < 12020 + // CHECK: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS_st; + CUDA_MEM_ALLOC_NODE_PARAMS_st MEM_ALLOC_NODE_PARAMS_st; +#endif + #if CUDA_VERSION >= 11040 // CUDA: CUresult CUDAAPI cuGraphInstantiateWithFlags(CUgraphExec *phGraphExec, CUgraph hGraph, unsigned long long flags); // HIP: hipError_t hipGraphInstantiateWithFlags(hipGraphExec_t* pGraphExec, hipGraph_t graph, unsigned long long flags); @@ -810,9 +815,7 @@ int main() { // CHECK: result = hipDeviceGraphMemTrim(device); result = cuDeviceGraphMemTrim(device); - // CHECK: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS_st; - // CHECK-NEXT: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS; - CUDA_MEM_ALLOC_NODE_PARAMS_st MEM_ALLOC_NODE_PARAMS_st; + // CHECK: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS; CUDA_MEM_ALLOC_NODE_PARAMS MEM_ALLOC_NODE_PARAMS; // CUDA: CUresult CUDAAPI cuGraphAddMemAllocNode(CUgraphNode *phGraphNode, CUgraph hGraph, const CUgraphNode *dependencies, size_t numDependencies, CUDA_MEM_ALLOC_NODE_PARAMS *nodeParams); diff --git a/tests/unit_tests/synthetic/driver_structs.cu b/tests/unit_tests/synthetic/driver_structs.cu index f06a5b25..16f7f1c6 100644 --- a/tests/unit_tests/synthetic/driver_structs.cu +++ b/tests/unit_tests/synthetic/driver_structs.cu @@ -283,10 +283,20 @@ int main() { #endif #if CUDA_VERSION >= 11040 + // CHECK: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS; + CUDA_MEM_ALLOC_NODE_PARAMS MEM_ALLOC_NODE_PARAMS; +#endif + +#if CUDA_VERSION >= 11040 && CUDA_VERSION < 12020 // CHECK: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS_st; - // CHECK-NEXT: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS; CUDA_MEM_ALLOC_NODE_PARAMS_st MEM_ALLOC_NODE_PARAMS_st; - CUDA_MEM_ALLOC_NODE_PARAMS MEM_ALLOC_NODE_PARAMS; +#endif + +#if CUDA_VERSION >= 12020 + // CHECK: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS_v1_st; + // CHECK-NEXT: hipMemAllocNodeParams MEM_ALLOC_NODE_PARAMS_v1; + CUDA_MEM_ALLOC_NODE_PARAMS_v1_st MEM_ALLOC_NODE_PARAMS_v1_st; + CUDA_MEM_ALLOC_NODE_PARAMS_v1 MEM_ALLOC_NODE_PARAMS_v1; #endif return 0;