Skip to content

Commit 7bb79ee

Browse files
ezhulenevtensorflower-gardener
authored andcommitted
Ask NumPy for read only array when converting it to Tensor.
Fix for: tensorflow#17315 If numpy array is read-only, calling PyArray_FromAny with NPY_ARRAY_CARRAY flags introduce extra memory copy. Before: feed_cpu_variable_read_only: 5.6 GB/sec, min: 17.99, median: 19.54, mean: 19.76 After: feed_cpu_variable_read_only: 13.2 GB/sec, min: 7.60, median: 7.78, mean: 8.13 PiperOrigin-RevId: 199835695
1 parent 5b540fe commit 7bb79ee

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

tensorflow/python/lib/core/ndarray_tensor.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ Status PyArrayToTF_Tensor(PyObject* ndarray, Safe_TF_TensorPtr* out_tensor) {
411411

412412
// Make sure we dereference this array object in case of error, etc.
413413
Safe_PyObjectPtr array_safe(make_safe(
414-
PyArray_FromAny(ndarray, nullptr, 0, 0, NPY_ARRAY_CARRAY, nullptr)));
414+
PyArray_FromAny(ndarray, nullptr, 0, 0, NPY_ARRAY_CARRAY_RO, nullptr)));
415415
if (!array_safe) return errors::InvalidArgument("Not a ndarray.");
416416
PyArrayObject* array = reinterpret_cast<PyArrayObject*>(array_safe.get());
417417

0 commit comments

Comments
 (0)