From b8d7cd9775cdf90a55f5fbf216f0f78628ac8e6d Mon Sep 17 00:00:00 2001 From: VectorSL Date: Wed, 22 Apr 2020 12:46:56 +0800 Subject: [PATCH] gpu change compute capacity strategy --- mindspore/ccsrc/device/gpu/cuda_common.h | 3 ++- mindspore/ccsrc/kernel/gpu/gpu_kernel_factory.cc | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mindspore/ccsrc/device/gpu/cuda_common.h b/mindspore/ccsrc/device/gpu/cuda_common.h index 5a5b6416ce..b79ba8bc28 100644 --- a/mindspore/ccsrc/device/gpu/cuda_common.h +++ b/mindspore/ccsrc/device/gpu/cuda_common.h @@ -56,7 +56,8 @@ class CudaCommon { #define GET_BLOCKS(total_threads) mindspore::device::gpu::CudaCommon::GetInstance().blocks_num(total_threads) #define GET_THREADS mindspore::device::gpu::CudaCommon::GetInstance().threads_num() #define GET_MAJOR_SM mindspore::device::gpu::CudaCommon::GetInstance().major_sm() -#define MINIUM_SM 7 +#define MINIUM_SM 6 +#define RECOMMEND_SM 7 } // namespace gpu } // namespace device } // namespace mindspore diff --git a/mindspore/ccsrc/kernel/gpu/gpu_kernel_factory.cc b/mindspore/ccsrc/kernel/gpu/gpu_kernel_factory.cc index fba2b24512..e38cc02e23 100644 --- a/mindspore/ccsrc/kernel/gpu/gpu_kernel_factory.cc +++ b/mindspore/ccsrc/kernel/gpu/gpu_kernel_factory.cc @@ -96,9 +96,13 @@ std::pair GpuKernelFactory::GpuKernelAttrCheck(const std::string & bool flag = true; // data type matching check of all input parameters of kernel for (size_t input_index = 0; input_index < kernel_info->GetInputNum(); input_index++) { - if (marjor_sm < MINIUM_SM && kernel_info->GetInputDeviceType(input_index) == kNumberTypeFloat16) { - MS_LOG(EXCEPTION) << "Half precision op can be used on Devices which compute capacity is above " << MINIUM_SM - << ", but your device's compute capacity is " << marjor_sm; + if (marjor_sm < RECOMMEND_SM && kernel_info->GetInputDeviceType(input_index) == kNumberTypeFloat16) { + if (marjor_sm < MINIUM_SM) { + MS_LOG(EXCEPTION) << "Half precision ops can be used on Devices which computing capacity is >= " << MINIUM_SM + << ", but the current device's computing capacity is " << marjor_sm; + } + MS_LOG(WARNING) << "It is recommended to use devices with a computing capacity >= " << RECOMMEND_SM + << ", but the current device's computing capacity is " << marjor_sm; } if (kernel_info->GetInputDeviceType(input_index) != (iter->second)[attr_index].first.GetInputAttr(input_index).first) {