cancel
Showing results for 
Search instead for 
Did you mean: 

OpenCL

nmanjofo
Journeyman III

OpenCL - GPU to GPU transfer

Jump to solution

Hello,

I am working on a DirectX 11 (might possibly port to other APIs) application utilizing multiple GPU's for rendering and I need a mechanism to exchenge data between them. Because Mantle is still not out, I need to opt for some other API to handle the data transfers.

I've noticed that OpenCL allows hooking DX resources as OCL buffers, which is great. The questions are

1. Is it possible, using two 290X's (ideally any AMD or just any two cards) to copy a buffer from one device to another?

2. If yes and provided that they are both from AMD, do the data travel directly from GPU to GPU (like direct DMA), or the main memory is used?

I know that nV supports this only on Quadro/Tesla cards and only in CUDA, which is not something I'm looking for.

Thank You!

0 Kudos
Reply
1 Solution

Accepted Solutions
tzachi_cohen
Staff
Staff

Re: OpenCL - GPU to GPU transfer

Jump to solution

Peer-to-Peer communication is available for OCL using 'cl_amd_bus_addressable_memory' extension.

This extension is available on FirePro only products.

https://www.khronos.org/registry/cl/extensions/amd/cl_amd_bus_addressable_memory.txt

View solution in original post

0 Kudos
Reply
6 Replies
dipak
Staff
Staff

Re: OpenCL - GPU to GPU transfer

Jump to solution

Hi,

I guess, AMD's DirectGMA (for Direct Graphics Memory Access) technology enables device to device transfer over PCI-Express without interacting with the host's main memory. AFAIK, DirectGMA is available on some AMD FirePro cards. However, I'm not aware of the full list of supported devices. Other than those, at present, GPU-GPU transfer has to go through via host memory. You may check following link to know about DirectGMA.

http://www.amd.com/Documents/SDI-tech-brief.pdf

Regards,

0 Kudos
Reply
nmanjofo
Journeyman III

Re: OpenCL - GPU to GPU transfer

Jump to solution

Thanks for reply. So there is no way, even in OCL, to do direct GPU to GPU transfer using just Radeon cards?

0 Kudos
Reply
dipak
Staff
Staff

Re: OpenCL - GPU to GPU transfer

Jump to solution

At least, I'm not aware of any other technique to do direct GPU to GPU transfer.

Regards,

nmanjofo
Journeyman III

Re: OpenCL - GPU to GPU transfer

Jump to solution

And will Mantle have such feature?

0 Kudos
Reply
soconne
Staff
Staff

Re: OpenCL - GPU to GPU transfer

Jump to solution

Mantle does support GPU to GPU transfers.

0 Kudos
Reply
tzachi_cohen
Staff
Staff

Re: OpenCL - GPU to GPU transfer

Jump to solution

Peer-to-Peer communication is available for OCL using 'cl_amd_bus_addressable_memory' extension.

This extension is available on FirePro only products.

https://www.khronos.org/registry/cl/extensions/amd/cl_amd_bus_addressable_memory.txt

View solution in original post

0 Kudos
Reply