Fix model int8 quant fail, test=develop (#22891)

As model fails when enable int8 quant, so disable allocate memory in cpu
for small variable.
revert-22710-feature/integrated_ps_api
zhaoyuchen2018 5 years ago committed by GitHub
parent dd67d44a50
commit a020a25797
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -187,21 +187,12 @@ void SetTensorFromPyArrayT(
} }
} else { } else {
#ifdef PADDLE_WITH_CUDA #ifdef PADDLE_WITH_CUDA
T *dst; auto dst = self->mutable_data<T>(place);
if (array.nbytes() <= 4 && !paddle::platform::is_cuda_pinned_place(place)) {
dst = self->mutable_data<T>(platform::CPUPlace());
} else {
dst = self->mutable_data<T>(place);
}
if (paddle::platform::is_cuda_pinned_place(place)) { if (paddle::platform::is_cuda_pinned_place(place)) {
std::memcpy(dst, array.data(), array.nbytes()); std::memcpy(dst, array.data(), array.nbytes());
} else if (paddle::platform::is_gpu_place(place)) { } else if (paddle::platform::is_gpu_place(place)) {
if (array.nbytes() <= 4) { paddle::platform::GpuMemcpySync(dst, array.data(), array.nbytes(),
std::memcpy(dst, array.data(), array.nbytes()); cudaMemcpyHostToDevice);
} else {
paddle::platform::GpuMemcpySync(dst, array.data(), array.nbytes(),
cudaMemcpyHostToDevice);
}
} else { } else {
PADDLE_THROW( PADDLE_THROW(
"Incompatible place type: Tensor.set() supports CPUPlace, CUDAPlace " "Incompatible place type: Tensor.set() supports CPUPlace, CUDAPlace "

Loading…
Cancel
Save