There are similar but they are not always cudaMalloc-ed. Indeed, there is a custom allocator inside pytorch that handles the allocation of the data for Tensors.
I am not sure what you call a “cudaMalloc-ed array” but these datas contain flattened data where the storage_offset, size and stride properties tells you how to access them.
I’m afraid there is no documentation for this part of the code. It is quite old now and is getting replaced. You might want to use aten now where the whole interface is much simpler to use. And is a properly documented cpp interface