diff --git a/paddle/fluid/operators/dequantize_log_op.cc b/paddle/fluid/operators/dequantize_log_op.cc index af89340c59a4c54c4bf9a4922d29d88eb9707ae4..bfd26061e329f0bd6bf52d5fec818ec168eaf1df 100644 --- a/paddle/fluid/operators/dequantize_log_op.cc +++ b/paddle/fluid/operators/dequantize_log_op.cc @@ -31,9 +31,9 @@ struct DequantizeFunctor { int ind = in->numel(); for (size_t i = 0; i < (unsigned)ind; i++) { if (input_data[i] < 0) { - output_data[i] = -pow(2, dict_data[input_data[i] + 128]); + output_data[i] = -std::pow(2.0, dict_data[input_data[i] + 128]); } else { - output_data[i] = pow(2, dict_data[input_data[i]]); + output_data[i] = std::pow(2.0, dict_data[input_data[i]]); } } } diff --git a/paddle/fluid/operators/dequantize_log_op.cu b/paddle/fluid/operators/dequantize_log_op.cu index 0e146b690225b05f5887d0752130baba4cf1a885..57bad318ab6b649b9ad9dd1a316f75ff7e8d86a5 100644 --- a/paddle/fluid/operators/dequantize_log_op.cu +++ b/paddle/fluid/operators/dequantize_log_op.cu @@ -13,6 +13,9 @@ See the License for the specific language governing permissions and limitations under the License. */ #include "paddle/fluid/operators/dequantize_log_op.h" +#include "paddle/fluid/operators/math.h" +#include "paddle/fluid/platform/cuda_primitives.h" +#include "paddle/fluid/platform/hostdevice.h" namespace paddle { namespace operators { @@ -23,9 +26,9 @@ __global__ void KeDequantize(const T* in, const float* dict, int num, const int idx = threadIdx.x + blockIdx.x * blockDim.x; if (idx < num) { if (in[idx] < 0) { - out[idx] = -pow(2, dict[in[idx] + 128]); + out[idx] = -std::pow(static_cast(2.0), dict[in[idx] + 128]); } else { - out[idx] = pow(2, dict[in[idx]]); + out[idx] = std::pow(static_cast(2.0), dict[in[idx]]); } } }