Skip to content

Commit

Permalink
Fix pow, use fillD instead of broadcast (#31433)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhiqiu authored Mar 4, 2021
1 parent ecc6e21 commit 5fe3d59
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions paddle/fluid/operators/activation_op_npu.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the Licnse. */

#ifdef PADDLE_WITH_ASCEND_CL
#include <memory>
#include <string>

Expand Down Expand Up @@ -90,8 +89,8 @@ class PowGradNPUKernel : public framework::OpKernel<T> {
// factor.
Tensor factor_bc_tensor(framework::proto::VarType::FP32);
factor_bc_tensor.mutable_data<float>(x_dims, place);
auto runner_bc = NpuOpRunner("BroadcastTo", {factor_tensor, x_shape},
{factor_bc_tensor}, {});
auto runner_bc = NpuOpRunner("FillD", {factor_tensor}, {factor_bc_tensor},
{{"dims", x_dims}});
runner_bc.Run(stream);

// Step 3: Compute x_power_mul_factor = factor * x.pow(factor-1)
Expand Down Expand Up @@ -123,5 +122,3 @@ REGISTER_OP_NPU_KERNEL(
pow_grad, ops::PowGradNPUKernel<paddle::platform::NPUDeviceContext, float>,
ops::PowGradNPUKernel<paddle::platform::NPUDeviceContext,
paddle::platform::float16>);

#endif

0 comments on commit 5fe3d59

Please sign in to comment.