Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
b7d04aa
Merge pull request #230 from PaddlePaddle/develop
HydrogenSulfate May 10, 2024
2fd9dc0
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate May 10, 2024
4c5afe2
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate May 15, 2024
056d19b
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate May 15, 2024
c022e44
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate May 31, 2024
d723c27
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jun 6, 2024
04664b8
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jun 6, 2024
2f2777c
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jun 19, 2024
36efc60
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 4, 2024
6d3d314
Merge pull request #268 from PaddlePaddle/develop
HydrogenSulfate Jul 4, 2024
8eed6d0
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 4, 2024
f6815d3
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 12, 2024
1b3a43b
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 16, 2024
9550534
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 22, 2024
0053ffb
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 24, 2024
928d668
Merge branch 'develop' of https://github.com/HydrogenSulfate/Paddle i…
HydrogenSulfate Jul 24, 2024
2cb8a3c
support shared memory via dlpack tensor format
HydrogenSulfate Sep 2, 2024
c0d6fd4
remove deleter
HydrogenSulfate Sep 2, 2024
e2b0d9c
update todlpack code
HydrogenSulfate Sep 9, 2024
1047fc9
Merge branch 'develop_new' into support_dlpack
HydrogenSulfate Sep 9, 2024
31f918c
fix for other dtype
HydrogenSulfate Sep 10, 2024
09336d4
add type check for dlpack
HydrogenSulfate Sep 10, 2024
10a34a0
add data_ptr consistency unitest
HydrogenSulfate Sep 10, 2024
a18afea
remove cuda_runtime.h and remove redundant annotation
HydrogenSulfate Sep 10, 2024
b65b74c
update ref doc
HydrogenSulfate Sep 10, 2024
d8cadb4
restore
HydrogenSulfate Sep 10, 2024
3db178a
use map and mutex instead of std::function
HydrogenSulfate Sep 11, 2024
79cf661
polish annotation
HydrogenSulfate Sep 11, 2024
342768b
fix for cpu tensor
HydrogenSulfate Sep 11, 2024
b5d777b
add data_ptr consistency unitest
HydrogenSulfate Sep 11, 2024
72e85f9
update thirdpary/dlpack to v0.8 to support Tensor of bool dtype
HydrogenSulfate Sep 12, 2024
f64e0ce
move std::is_same<T, bool> before std::is_unsigned<T>
HydrogenSulfate Sep 12, 2024
5f8c202
restore overloaded version of TensorFromDLPack
HydrogenSulfate Sep 12, 2024
3169050
restore overload version of GetDstPtrByDLDataType and update dlpack d…
HydrogenSulfate Sep 12, 2024
3783f74
fix unitest
HydrogenSulfate Sep 13, 2024
741f078
reduce matrix size and loop time in test_dlpack
HydrogenSulfate Sep 13, 2024
de95c8a
support directly converting from object that has '__dlpack__' attribute
HydrogenSulfate Sep 15, 2024
1eecb4e
Merge branch 'develop' into support_dlpack
HydrogenSulfate Sep 15, 2024
1163d33
support CUDAPinnedPlace, add unitest for place consistency check, rem…
HydrogenSulfate Sep 18, 2024
2dc07e1
Merge branch 'develop' into support_dlpack
HydrogenSulfate Sep 18, 2024
f37401a
fix strides computation
HydrogenSulfate Sep 19, 2024
761b35f
Merge branch 'develop' into support_dlpack_strides
HydrogenSulfate Sep 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 18 additions & 13 deletions paddle/fluid/framework/tensor_util.cc
Original file line number Diff line number Diff line change
Expand Up @@ -868,14 +868,14 @@ void DeleterBridge(phi::Allocation* alloc) {
phi::DenseTensor from_blob(void* data,
DLManagedTensor* src,
const phi::DDim& shape,
const phi::DDim& strides,
phi::DataType dtype,
phi::DataLayout layout,
const phi::Place& place,
const Deleter& deleter) {
PADDLE_ENFORCE_NOT_NULL(
data, phi::errors::InvalidArgument("data can not be nullptr."));

auto meta = phi::DenseTensorMeta(dtype, shape, layout);
auto meta = phi::DenseTensorMeta(dtype, shape, strides);
size_t size = SizeOf(dtype) * (meta.is_scalar ? 1 : product(meta.dims));
phi::Allocation::DeleterFnPtr f = nullptr;

Expand All @@ -899,10 +899,10 @@ phi::DenseTensor from_blob(void* data,
}

phi::DenseTensor TensorFromDLPack(DLManagedTensor* src, Deleter deleter) {
std::vector<int64_t> vec;
std::vector<int64_t> shape_vec;
std::copy(src->dl_tensor.shape,
src->dl_tensor.shape + src->dl_tensor.ndim,
std::back_inserter(vec));
std::back_inserter(shape_vec));

phi::Place place;
if (src->dl_tensor.device.device_type == kDLCPU) {
Expand All @@ -918,19 +918,24 @@ phi::DenseTensor TensorFromDLPack(DLManagedTensor* src, Deleter deleter) {
::DLDataType type = src->dl_tensor.dtype;
auto dtype = GetDstPtrByDLDataType(type);
if (!src->dl_tensor.strides) {
return from_blob(src->dl_tensor.data,
src,
common::make_ddim(vec),
dtype,
phi::DataLayout::NCHW,
place,
std::move(deleter));
return from_blob(
src->dl_tensor.data,
src,
common::make_ddim(shape_vec),
phi::DenseTensorMeta::calc_strides(common::make_ddim(shape_vec)),
dtype,
place,
std::move(deleter));
} else {
std::vector<int64_t> strides_vec;
std::copy(src->dl_tensor.strides,
src->dl_tensor.strides + src->dl_tensor.ndim,
std::back_inserter(strides_vec));
return from_blob(src->dl_tensor.data,
src,
common::make_ddim(vec),
common::make_ddim(shape_vec),
common::make_ddim(strides_vec),
dtype,
phi::DataLayout::NCHW,
place,
deleter);
}
Expand Down
14 changes: 14 additions & 0 deletions test/legacy_test/test_dlpack.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,20 @@ def test_to_dlpack_data_ptr_consistency(self):

self.assertEqual(x.data_ptr(), y.data_ptr())

def test_to_dlpack_strides_consistency(self):
with dygraph_guard():
places = [base.CPUPlace()]
if paddle.is_compiled_with_cuda():
places.append(base.CUDAPlace(0))
for place in places:
for _ in range(4):
x = paddle.rand([10, 10]).to(device=place)
x_strided = x[::2, ::2]
dlpack = paddle.utils.dlpack.to_dlpack(x_strided)
y = paddle.utils.dlpack.from_dlpack(dlpack)

self.assertEqual(x_strided.strides, y.strides)

def test_to_dlpack_from_ext_tensor(self):
with dygraph_guard():
for _ in range(4):
Expand Down