I noticed in the release notes and documentation that there is a limitation on the device count in calResAllocRemote* to a single device.
Is this just stale documentation or is this limit real?
I would like the ability to share a PCIe memory resource across multiple devices. Any ideas if this works or when we'll have a fix?
Sure, I found it in a couple places originally but can only find it in one at the moment:
The entry I'm interested in is calResAllocRemote1D. You will see the comment about the limitation of the device list to a size of 1.
Given this was generated from doxygen, you should find this comment in the header file as well.
Can you let me know if this really is a hard limitation or just stale documentation? Ideally, I should be able to allocate a region of remote memory and share it with any CAL device on the PCIe bus.
It is very easy for you to check actually. Just take a sample from the SDK, find a call to calResAllocRemote*(), change the deviceCount to 2 and see what happens. 🙂
Answer: calResAllocRemote*() returns CAL_RESULT_INVALID_PARAMETER with any value greater than 1, so it is the limit for now.
I tried to share one remote texture on two devices. It doesn't seem to work. Everything works fine until calCtxSetMem fails on the second device with the error message 'Resource device and context device are mismatched for "cb0"'. I cannot find a reference to a limitation of the device count in the current documentation. Is deviceCount>1 still unsupported?