!46554 补充bool和uint64类型

Merge pull request !46554 from GP/isfinite_patch
This commit is contained in:
i-robot 2022-12-08 03:09:32 +00:00 committed by Gitee
commit 1fb1aed4a8
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 60 additions and 14 deletions

View File

@ -141,63 +141,85 @@ template CUDA_LIB_EXPORT void CalFloatStatus<int16_t>(const size_t size, const i
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalFloatStatus<int32_t>(const size_t size, const int32_t *input, float *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalFloatStatus<int64_t>(const size_t size, const int64_t *input, float *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalFloatStatus<uint8_t>(const size_t size, const uint8_t *input, float *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalFloatStatus<uint16_t>(const size_t size, const uint16_t *input, float *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalFloatStatus<uint32_t>(const size_t size, const uint32_t *input, float *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalFloatStatus<uint64_t>(const size_t size, const uint64_t *input, float *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<float>(const size_t size, const float *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<half>(const size_t size, const half *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<double>(const size_t size, const double *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<bool>(const size_t size, const bool *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<int8_t>(const size_t size, const int8_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<int16_t>(const size_t size, const int16_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<int32_t>(const size_t size, const int32_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<int64_t>(const size_t size, const int64_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<uint8_t>(const size_t size, const uint8_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<uint16_t>(const size_t size, const uint16_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<uint32_t>(const size_t size, const uint32_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsInf<uint64_t>(const size_t size, const uint64_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<float>(const size_t size, const float *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<half>(const size_t size, const half *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<double>(const size_t size, const double *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<bool>(const size_t size, const bool *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<int8_t>(const size_t size, const int8_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<int16_t>(const size_t size, const int16_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<int32_t>(const size_t size, const int32_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<int64_t>(const size_t size, const int64_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<uint8_t>(const size_t size, const uint8_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<uint16_t>(const size_t size, const uint16_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<uint32_t>(const size_t size, const uint32_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsNan<uint64_t>(const size_t size, const uint64_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<float>(const size_t size, const float *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<half>(const size_t size, const half *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<double>(const size_t size, const double *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<bool>(const size_t size, const bool *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<int8_t>(const size_t size, const int8_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<int16_t>(const size_t size, const int16_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<int32_t>(const size_t size, const int32_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<int64_t>(const size_t size, const int64_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<uint8_t>(const size_t size, const uint8_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<uint16_t>(const size_t size, const uint16_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<uint32_t>(const size_t size, const uint32_t *input, bool *output,
cudaStream_t cuda_stream);
template CUDA_LIB_EXPORT void CalIsFinite<uint64_t>(const size_t size, const uint64_t *input, bool *output,
cudaStream_t cuda_stream);

View File

@ -142,79 +142,103 @@ std::vector<KernelAttr> FloatStatusGpuKernelMod::GetOpSupport() {
std::map<std::string, std::vector<std::pair<KernelAttr, FloatStatusGpuKernelMod::FloatStatusOpFunc>>>
FloatStatusGpuKernelMod::kernel_attr_map_ = {
{kFloatStatus,
{{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
{{KernelAttr().AddInputAttr(kNumberTypeBool).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<bool>},
{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<int8_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt16).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeInt16).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<int16_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt32).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeInt32).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<int32_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt8).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeInt64).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<int64_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt8).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<uint8_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt16).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeUInt16).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<uint16_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt32).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeUInt32).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<uint32_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeUInt64).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<uint64_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat32).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<float>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<half>},
{KernelAttr().AddInputAttr(kNumberTypeFloat64).AddOutputAttr(kNumberTypeFloat32),
&FloatStatusGpuKernelMod::LaunchKernel<double>}}},
{kIsInf,
{{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
{{KernelAttr().AddInputAttr(kNumberTypeBool).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<bool>},
{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int8_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int16_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int32_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int64_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt8).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint8_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint16_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint32_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeUInt64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint64_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<float>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<half>},
{KernelAttr().AddInputAttr(kNumberTypeFloat64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<double>}}},
{kIsNan,
{{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
{{KernelAttr().AddInputAttr(kNumberTypeBool).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<bool>},
{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int8_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int16_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int32_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int64_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt8).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint8_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint16_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint32_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
{KernelAttr().AddInputAttr(kNumberTypeUInt64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint64_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<float>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<half>},
{KernelAttr().AddInputAttr(kNumberTypeFloat64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<double>}}},
{kIsFinite,
{{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
{{KernelAttr().AddInputAttr(kNumberTypeBool).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<bool>},
{KernelAttr().AddInputAttr(kNumberTypeInt8).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int8_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int16_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int32_t>},
{KernelAttr().AddInputAttr(kNumberTypeInt64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<int64_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt8).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint8_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint16_t>},
{KernelAttr().AddInputAttr(kNumberTypeUInt32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint32_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<half>},
{KernelAttr().AddInputAttr(kNumberTypeUInt64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<uint64_t>},
{KernelAttr().AddInputAttr(kNumberTypeFloat32).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<float>},
{KernelAttr().AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<half>},
{KernelAttr().AddInputAttr(kNumberTypeFloat64).AddOutputAttr(kNumberTypeBool),
&FloatStatusGpuKernelMod::LaunchKernel<double>}}}};