# PCI Transfer directly to GPU anytime soon?

**URL:** <https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175>\
**Category:** CUDA Programming and Performance\
**Created:** [January 6, 2010, 10:43pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175 "2010-01-06T22:43:11Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Uncle\_Joe](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Uncle\_Joe](https://forums.developer.nvidia.com/u/Uncle_Joe)\
**Post date:** [January 6, 2010, 10:43pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/1 "2010-01-06T22:43:11Z")

</div>

I would like to transfer from a camera frame grabber directly to GPU. I know PCI X supports device to device transfers, even though it’s seldom used due to no standard protocol.

Assuming, I can make the frame grabber conform to any protocol (reconfigurable logic), are current NVIDIA GPUs capable of receiving the data? What would need to change to support it? Driver/API support, or does the hardware need to be updated?

---

<div class="post-metadata">

**Author:** ![tmurray](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@tmurray](https://forums.developer.nvidia.com/u/tmurray)\
**Post date:** [January 6, 2010, 10:43pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/2 "2010-01-06T22:43:53Z")

</div>

Not on the roadmap to be supported anytime soon.

---

<div class="post-metadata">

**Author:** ![Uncle\_Joe](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Uncle\_Joe](https://forums.developer.nvidia.com/u/Uncle_Joe)\
**Post date:** [January 6, 2010, 11:36pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/3 "2010-01-06T23:36:32Z")

</div>

> [@](#):
>
> Not on the roadmap to be supported anytime soon.

Wow, you answered \< 1 minute after I posted. Did you even read my message, specifically saying I can make the frame grabber conform to any protocol?

I also asked what needs to change?

---

<div class="post-metadata">

**Author:** ![tmurray](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@tmurray](https://forums.developer.nvidia.com/u/tmurray)\
**Post date:** [January 6, 2010, 11:44pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/4 "2010-01-06T23:44:17Z")

</div>

> [@](#):
>
> Wow, you answered \< 1 minute after I posted. Did you even read my message, specifically saying I can make the frame grabber conform to any protocol?
> 
> I also asked what needs to change?

I just happened to be reading the forums then (I check the forums when I have a long compile, which is often!). Basically, lots of things need to change before it’s safe. Now, sharing pinned memory between the two devices in the not too distant future is far more likely.

---

<div class="post-metadata">

**Author:** ![jma](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@jma](https://forums.developer.nvidia.com/u/jma)\
**Post date:** [January 7, 2010, 7:53pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/5 "2010-01-07T19:53:41Z")

</div>

> [@](#):
>
> Now, sharing pinned memory between the two devices in the not too distant future is far more likely.

Can’t the pinned memory allocated by Cuda be passed to a driver running in kernel space today? Or is that what you mean by the future?

---

<div class="post-metadata">

**Author:** ![Uncle\_Joe](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Uncle\_Joe](https://forums.developer.nvidia.com/u/Uncle_Joe)\
**Post date:** [February 24, 2010, 7:46pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/6 "2010-02-24T19:46:14Z")

</div>

I just found [this](http://www.nvidia.com/object/product_quadro_sdi_capture_us.html).

Apparently the Quadro cards support direct transfers, so I’d like to request this feature for Tesla  
as well, which I think is reasonable, especially since you pay ~$2000.

---

<div class="post-metadata">

**Author:** ![tthtlc](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/tthtlc/32/21948_2.png) [@tthtlc](https://forums.developer.nvidia.com/u/tthtlc)\
**Post date:** [February 27, 2010, 7:49am UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/7 "2010-02-27T07:49:28Z")

</div>

Pardon me if wrong…one way to answer your question is to lookup the drivers for the Quadro in Linux.

I just saw this:

during the initialization of the Nvidia driver:

/\* find nvidia devices and set initial state \*/  
int  
nv\_kern\_probe  
(  
struct pci\_dev \*dev,  
const struct pci\_device\_id \*id\_table  
)  
{

memory bus is enabled. ANd then subsequently, PCI will setup all the memory for DMA, marking them as nocache etc. Lots of mmap codes inside there, I may be wrong, but u can start from there to look for the code that setup the memory to be DMA-able by another device like frame-grabber?

---

<div class="post-metadata">

**Author:** ![Nikratio](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Nikratio](https://forums.developer.nvidia.com/u/Nikratio)\
**Post date:** [November 29, 2010, 7:16pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/8 "2010-11-29T19:16:01Z")

</div>

> [@](#):
>
> I just happened to be reading the forums then (I check the forums when I have a long compile, which is often!). Basically, lots of things need to change before it’s safe. Now, sharing pinned memory between the two devices in the not too distant future is far more likely.

Could you elaborate on “sharing pinned memory” a little bit more? Does “pinned memory” refer to memory on the host PC, or is there also pinned memory on the GPU? Or can the GPU use pinned memory on another PCI device?

---

<div class="post-metadata">

**Author:** ![jma](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@jma](https://forums.developer.nvidia.com/u/jma)\
**Post date:** [November 30, 2010, 4:27pm UTC](https://forums.developer.nvidia.com/t/pci-transfer-directly-to-gpu-anytime-soon/14175/9 "2010-11-30T16:27:09Z")

</div>

Pinned memory is on the host
