fromDLPackImpl Class — pytorch Architecture
Architecture documentation for the fromDLPackImpl class in DLConvertor.cpp from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/DLConvertor.cpp lines 432–464
template <class T>
at::Tensor fromDLPackImpl(T* src, std::function<void(void*)> deleter) {
if (!deleter) {
deleter = [src](void* self [[maybe_unused]]) {
if (src->deleter) {
src->deleter(src);
}
};
}
DLTensor& dl_tensor = src->dl_tensor;
Device device = dlDeviceToTorchDevice(
dl_tensor.device.device_type, dl_tensor.device.device_id, dl_tensor.data);
ScalarType stype = toScalarType(dl_tensor.dtype);
if (!dl_tensor.strides) {
TORCH_CHECK_VALUE(dl_tensor.byte_offset == 0, "Expected zero byte_offset");
return at::from_blob(
dl_tensor.data,
IntArrayRef(dl_tensor.shape, dl_tensor.ndim),
std::move(deleter),
at::device(device).dtype(stype),
{device});
}
return at::from_blob(
dl_tensor.data,
IntArrayRef(dl_tensor.shape, dl_tensor.ndim),
IntArrayRef(dl_tensor.strides, dl_tensor.ndim),
toStorageOffset(dl_tensor.byte_offset, stype),
deleter,
at::device(device).dtype(stype),
{device});
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free