Re: Direct card to card transfer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 29, 2010 at 11:43:16AM -0500, Nikolaus Rath wrote:
> I would like to transfer data between a PXI card (a digitizer, to be
> precise) and a PCI express card (an Nvidia Tesla GPU) as fast as
> possible.
> 
> Is it possible to have two cards write into each others memory directly,
> without ever involving the host CPU? If I wanted to implement this,
> where would I have to start? Do I need to go to kernel space? Or are
> there API functions that I can use from userspace?

You'll have to go to kernel space, but yes, it's possible.  Not all
chipsets support this functionality (peer to peer transfers) efficiently,
and it may be more efficient for you to write to host memory and then
read from host memory.

> I already found out that I can connect the PXI bus to either the PCI or
> PCI Express bus of the host computer using a bus extender. Is there a
> difference between these two variants as far as communicating with other
> PCIe cards is concerned?

It depends very much on the chipset involved.  It probably doesn't
make a big difference since you'll be going through a PCI<->PCIe bridge
either way.

> Finally, can someone give me an order-of-magnitude estimate of how the
> latencies that will be involved in such a transfer? How long will it
> take to transfer 90 16bit samples from one card to the other?

The latency will all be in the setup.  You only want to transfer 180
bytes, and even the 33MHz, 32bit PCI bus can transfer that much data
in under two microseconds.

-- 
Matthew Wilcox				Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux