[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