[ofiwg] ofi_hmem_ops question
Hefty, Sean
sean.hefty at intel.com
Thu Nov 3 11:09:00 PDT 2022
> dest/src/ptr can be host or device. Dest and src are used to indicate direction. Ptr is
> when there is no direction.
Is ptr a reference to a VA *within* an allocated region, or is there some other restriction?
> dev_buf is to indicate that the ptr must be a ptr to device memory (like when you get
> an IPC handle - it cannot be host memory). In some APIs (ZE, CUDA) this must be a base
> address. I am not sure if this is the same for all APIs which I believe is why the
> naming is more generic.
The user of these ops must obey the most restrictive use case. So, dev_buf must be the base address, and always references the entire allocation, correct? That is, even if a size parameter isn't defined, the entire region is assumed.
> ipc_ptr is the returned ptr (to device memory) that has been opened by a peer process
> for an IPC copy. It can be used like a regular ptr, but it is named ipc_ptr to show
> that the process using it did not allocate it/does not own it
Similar with dev_buf, I think this must always reference the entire allocation.
> Addr is pretty much the same as ptr so that can be renamed to align.
> We could align the usage of buf/ptr to match for ptr/addr/dev_buf
I'm not just concerned about the name, but the requirements placed on what's being referenced.
As a comparison, struct ipc_info is nicely self-documenting.
More information about the ofiwg
mailing list