| 236 | } |
| 237 | |
| 238 | void KernelFactory::AddToLowPrecisionKernelList( |
| 239 | const std::string& name, const phi::DataType& kernel_key_type) { |
| 240 | if (FLAGS_low_precision_op_list >= 1) { |
| 241 | auto op_name = phi::TransToFluidOpName(name); |
| 242 | if (op_name.find("_grad") != std::string::npos) { |
| 243 | return; // only record forward api |
| 244 | } |
| 245 | |
| 246 | if (low_precision_kernels_.find(op_name) == low_precision_kernels_.end()) { |
| 247 | auto count = OpCount(); |
| 248 | low_precision_kernels_[op_name] = count; |
| 249 | } |
| 250 | if (kernel_key_type == phi::DataType::FLOAT16) { |
| 251 | low_precision_kernels_[op_name].fp16_called_ += 1; |
| 252 | } else if (kernel_key_type == phi::DataType::BFLOAT16) { |
| 253 | low_precision_kernels_[op_name].bf16_called_ += 1; |
| 254 | } else if (kernel_key_type == phi::DataType::FLOAT32) { |
| 255 | low_precision_kernels_[op_name].fp32_called_ += 1; |
| 256 | } else { |
| 257 | low_precision_kernels_[op_name].other_called_ += 1; |
| 258 | } |
| 259 | } |
| 260 | } |
| 261 | |
| 262 | std::map<const std::string, OpCount> |
| 263 | KernelFactory::GetLowPrecisionKernelList() { |
no test coverage detected