I have successfully connected two Xavier with a swap board, and test the command devmem 0x1f000… 32 0x….
I want to transfer a big picture(1GB), but I found the shared memory is only 64kb, I remember that the transmission speed of PCIEx8 should be up to 8GB / s,
How can I transfer a 1GB image in 1s by PCIe swap board and where I can get more help about Xavier PCIe transmission?
I dug into this a little bit for learning and I kind of need to know this specific item. More inline with file synchronization between my desktop and my yet to arrive Xavier AGX.
Sounds like you essentially need a Corpus Callosum, heh. Generally speaking, you need more than just transmission speed with PCI-E, it is specifically a downstream technology and the device you are communicating with has to implement the upstream. Something like a ribbon connector would never work by itself for communication. You would need a device that probably also has memory/buffer storage, sufficient that the transfer storage could be useful and not throttle the PCI-e bandwidth, that then upstreams to the next Xavier. I am absolutely new to the community, 12 hours in, but I am not familiar that this will work out of the box this way. If the Xavier Root/Endpoint setup allows for simple file transfer storage its not immediately apparent and probably needs a custom solution on your end.
That’s a lot of work that you may not have time/ability to perform yourself, so another suggestion would be to mount a shared volume over ethernet (I assume you are using ethernet or have a WIFI setup installed/configured). This then would allow both Xaviers to mount the volume. Obviously, this is a simplified use case. Both systems would have simultaneous access to the same file preventing the need for a file transfer… but obviously writing simultaneously would lead to said file’s corruption. Small readonly datasets, pre-trained models etc. would work fine. You could do such a thing with USB SSD device on a desktop or router. Obviously, if you need to reduce real time latency, then of course you are probably right to explore other options like this.
Edit 1: This maybe exactly what the EthernetIF is for, I will leave someone with more experience to confirm that.
Judging by these two documents, it seems a bit limited on the demonstrable.
Endpoint Guide
Endpoint Design & Considerations
I wonder if the EthernetIF / PCI-e would be the mechanism for data transfer, the DMA/Shared Memory looks very specific to synchronizing what I guess would be state data. I suppose you could have a shared chunk of memory that allow you keep things in sync.
Edit 2: Seems that DMA could be used for writing to and from each device.