Merge pull request #1436 from emankov/master

[HIPIFY] Add supported device functions (from device_functions.h)
Этот коммит содержится в:
Evgeny Mankov
2019-09-18 17:09:24 +03:00
коммит произвёл GitHub
родитель 513cbab184 fc493da5c7
Коммит 0f2a514629
2 изменённых файлов: 226 добавлений и 7 удалений
+112
Просмотреть файл
@@ -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",
+114 -7
Просмотреть файл
@@ -235,13 +235,120 @@ const std::map<llvm::StringRef, hipCounter> 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}},