diff --git a/hipamd/bin/hipify-perl b/hipamd/bin/hipify-perl index b75b68d3b4..650b13c429 100755 --- a/hipamd/bin/hipify-perl +++ b/hipamd/bin/hipify-perl @@ -1294,6 +1294,7 @@ while (@ARGV) { $ft{'numeric_literal'} += s/\bCU_CTX_SCHED_MASK\b/hipDeviceScheduleMask/g; $ft{'numeric_literal'} += s/\bCU_CTX_SCHED_SPIN\b/hipDeviceScheduleSpin/g; $ft{'numeric_literal'} += s/\bCU_CTX_SCHED_YIELD\b/hipDeviceScheduleYield/g; + $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY\b/hipDeviceAttributeCanMapHostMemory/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_CLOCK_RATE\b/hipDeviceAttributeClockRate/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR\b/hipDeviceAttributeComputeCapabilityMajor/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR\b/hipDeviceAttributeComputeCapabilityMinor/g; @@ -1301,8 +1302,10 @@ while (@ARGV) { $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS\b/hipDeviceAttributeConcurrentKernels/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH\b/hipDeviceAttributeCooperativeLaunch/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH\b/hipDeviceAttributeCooperativeMultiDeviceLaunch/g; + $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_ECC_ENABLED\b/hipDeviceAttributeEccEnabled/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH\b/hipDeviceAttributeMemoryBusWidth/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_INTEGRATED\b/hipDeviceAttributeIntegrated/g; + $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT\b/hipDeviceAttributeKernelExecTimeout/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE\b/hipDeviceAttributeL2CacheSize/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH\b/hipDeviceAttributeMaxTexture1DWidth/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT\b/hipDeviceAttributeMaxTexture2DHeight/g; @@ -1316,6 +1319,7 @@ while (@ARGV) { $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X\b/hipDeviceAttributeMaxGridDimX/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y\b/hipDeviceAttributeMaxGridDimY/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z\b/hipDeviceAttributeMaxGridDimZ/g; + $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_PITCH\b/hipDeviceAttributeMaxPitch/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK\b/hipDeviceAttributeMaxRegistersPerBlock/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK\b/hipDeviceAttributeMaxSharedMemoryPerBlock/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR\b/hipDeviceAttributeMaxSharedMemoryPerMultiprocessor/g; @@ -1328,6 +1332,7 @@ while (@ARGV) { $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID\b/hipDeviceAttributePciDeviceId/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK\b/hipDeviceAttributeMaxRegistersPerBlock/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK\b/hipDeviceAttributeMaxSharedMemoryPerBlock/g; + $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT\b/hipDeviceAttributeTextureAlignment/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY\b/hipDeviceAttributeTotalConstantMemory/g; $ft{'numeric_literal'} += s/\bCU_DEVICE_ATTRIBUTE_WARP_SIZE\b/hipDeviceAttributeWarpSize/g; $ft{'numeric_literal'} += s/\bCU_EVENT_BLOCKING_SYNC\b/hipEventBlockingSync/g; @@ -1813,6 +1818,111 @@ sub countSupportedDeviceFunctions { my $m = 0; foreach $func ( + "__brev", + "__brevll", + "__byte_perm", + "__clz", + "__clzll", + "__cosf", + "__double2int_rz", + "__double2ll_rz", + "__double2uint_rz", + "__double2ull_rz", + "__exp10f", + "__expf", + "__fadd_rd", + "__fadd_rn", + "__fadd_ru", + "__fadd_rz", + "__fdiv_rd", + "__fdiv_rn", + "__fdiv_ru", + "__fdiv_rz", + "__fdividef", + "__ffs", + "__ffsll", + "__float2int_rd", + "__float2int_rn", + "__float2int_ru", + "__float2int_rz", + "__float2ll_rd", + "__float2ll_rn", + "__float2ll_ru", + "__float2ll_rz", + "__float2uint_rd", + "__float2uint_rn", + "__float2uint_ru", + "__float2uint_rz", + "__float2ull_rd", + "__float2ull_rn", + "__float2ull_ru", + "__float2ull_rz", + "__float_as_int", + "__float_as_uint", + "__fmaf_rd", + "__fmaf_rn", + "__fmaf_ru", + "__fmaf_rz", + "__fmul_rd", + "__fmul_rn", + "__fmul_ru", + "__fmul_rz", + "__frcp_rd", + "__frcp_rn", + "__frcp_ru", + "__frcp_rz", + "__frsqrt_rn", + "__fsqrt_rd", + "__fsqrt_rn", + "__fsqrt_ru", + "__fsqrt_rz", + "__fsub_rd", + "__fsub_rn", + "__fsub_ru", + "__fsub_rz", + "__hadd", + "__int2float_rd", + "__int2float_rn", + "__int2float_ru", + "__int2float_rz", + "__int_as_float", + "__ll2float_rd", + "__ll2float_rn", + "__ll2float_ru", + "__ll2float_rz", + "__log10f", + "__log2f", + "__logf", + "__mul24", + "__mul64hi", + "__mulhi", + "__popc", + "__popcll", + "__powf", + "__rhadd", + "__sad", + "__saturatef", + "__sincosf", + "__sinf", + "__syncthreads", + "__tanf", + "__threadfence", + "__threadfence_block", + "__uhadd", + "__uint2float_rd", + "__uint2float_rn", + "__uint2float_ru", + "__uint2float_rz", + "__uint_as_float", + "__ull2float_rd", + "__ull2float_rn", + "__ull2float_ru", + "__ull2float_rz", + "__umul24", + "__umul64hi", + "__umulhi", + "__urhadd", + "__usad", "abs", "acos", "acosf", @@ -1866,6 +1976,8 @@ sub countSupportedDeviceFunctions "fabsf", "fdim", "fdimf", + "fdivide", + "fdividef", "floor", "floorf", "fma", diff --git a/hipamd/hipify-clang/src/CUDA2HIP_Device_functions.cpp b/hipamd/hipify-clang/src/CUDA2HIP_Device_functions.cpp index b2271366b1..791e477ecb 100644 --- a/hipamd/hipify-clang/src/CUDA2HIP_Device_functions.cpp +++ b/hipamd/hipify-clang/src/CUDA2HIP_Device_functions.cpp @@ -235,13 +235,120 @@ const std::map CUDA_DEVICE_FUNC_MAP{ {"int2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, {"uint2float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, // device functions - {"__prof_trigger", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, - {"__trap", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, - {"__brkpt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, - {"__pm0", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, - {"__pm1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, - {"__pm2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, - {"__pm3", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__mulhi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__umulhi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__mul64hi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__umul64hi", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__int_as_float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float_as_int", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__uint_as_float", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float_as_uint", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__syncthreads", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__threadfence", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__threadfence_block", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__saturatef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__sad", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__usad", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__mul24", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__umul24", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"fdividef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fdividef", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"fdivide", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__sinf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__cosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__tanf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__sincosf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__expf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__exp10f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__log2f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__log10f", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__logf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__powf", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2int_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2int_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2int_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2int_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2uint_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2uint_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2uint_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2uint_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__int2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__int2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__int2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__int2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__uint2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__uint2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__uint2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__uint2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ll_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ll_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ll_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ll_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ull_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ull_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ull_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__float2ull_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ll2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ll2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ll2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ll2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ull2float_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ull2float_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ull2float_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ull2float_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fadd_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fadd_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fadd_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fadd_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsub_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsub_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsub_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsub_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmul_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmul_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmul_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmul_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmaf_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmaf_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmaf_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fmaf_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__frcp_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__frcp_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__frcp_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__frcp_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsqrt_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsqrt_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsqrt_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fsqrt_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__frsqrt_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fdiv_rn", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fdiv_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fdiv_ru", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__fdiv_rd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__clz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ffs", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__popc", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__brev", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__clzll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__ffsll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__popcll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__brevll", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__byte_perm", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__hadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__rhadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__uhadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__urhadd", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__double2int_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__double2uint_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__double2ll_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__double2ull_rz", {"", "", CONV_DEVICE_FUNC, API_RUNTIME}}, + {"__prof_trigger", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__trap", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__brkpt", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__pm0", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__pm1", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__pm2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, + {"__pm3", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, // SIMD functions {"__vabs2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}}, {"__vabsss2", {"", "", CONV_DEVICE_FUNC, API_RUNTIME, UNSUPPORTED}},