cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

uwebaw
Journeyman III

Pinned memory

Does AMD's OpenCL implementation support pinned memory?

Hi,

I'm doing some PCIe memory bandwidth benchmarks with and without the use of pinned memory on the new Radeon HD 6950 and for comparison on ne NVIDIA GTX 280.

The GTX 280 has an bandwidth without pinned memory of about 2,7 GB/sec and with pinned memory about 5,4 GB/sec. So pinned memory really boost the transferrate.

But with the Radeon the transferrate is about 3,8 GB/sec which isn't bad at all, but I'm wondering if the AMD OpenCL implementation really support pinned memory. Or do I have to enable it?

0 Likes
15 Replies
nou
Exemplar

i just installed catalyst 11.1 and i got improvment in data transfers.

with 10.12 i got around 3-3.5GB/s now with 11.1

Host to device : 4.56834 GB/s
Device to host : 5.80778 GB/s

0 Likes
Tasp
Journeyman III

10.12 on Windows 64bit:

copy buffer to image:

13.38 GB/s

download buffer:

2.867 GB/s

download image:

0.604 GB/2

upload buffer:

1.548 GB/s

upload image:

0.566 GB/s

I do this operations each a 100 times with a single image of 3168 * 4752 * 4 (float). The above numbers are the average.

How do you measure the bandwidth? With the provided sample program? I get:

 

Host to device : 1.86789 GB/s

Device to host : 3.17355 GB/s

0 Likes

what GPU do you have. i have redeon 5850 on Linux. and 4xxx card do not have enabled DMA.

yes a measure it with sample program.

0 Likes
Tasp
Journeyman III

I have a 5850 too

 

*edit*

I will try it on linux too, is there anything special you have to do to enable it?

0 Likes

Originally posted by: nou what GPU do you have. i have redeon 5850 on Linux. and 4xxx card do not have enabled DMA.

 

yes a measure it with sample program.

 

Do you really mean Radeon HD 4xxx do not support DMA (and consequently, asynchronous transfers, PBOs and so on...)?

Just on Linux, or on Windows as well?

 

0 Likes

DRMDMA is enabled  for the ATI Radeon 5000 Series and AMD Radeon 6800 GPUs that are specified in the Supported Devices.

0 Likes

How can I check if DRMDMA is enabled and working correctly?

0 Likes

AFAIK, DRMDMA is enabled by default.

I think you can check performance by enqueueing a read\write operation with a kernel. If you do not call clFinish in between them and do not call a blocked read/write, I think DMA should work. Then try after inserting a CLFInish between the two commands. I hope you will get some performance degrade because DMA cannot be used concurrently with kernel execution.

0 Likes

I guess it's a driver problem on windows (not catalyst driver though). On Ubuntu 10.04 64 bit with 11.1 I get:

Platform Vendor : Advanced Micro Devices, Inc.
Device 0 : Cypress
Host to device : 4.2474 GB/s
Device to host : 4.67332 GB/s

0 Likes

Which program do you use for your benchmarks?

0 Likes

PCIeBandwidth from SDK samples.

0 Likes

Please correct me If i am wrong on this. But i think DMA will not improve your memory transfer rate. The data transfer still has to happen through the PCIe interface which still is bottleneck in data transfer.

What we get from DMA is the ability to do data transfer and compute concurrently. The DMA engine takes care of the data transmission while GPU can perform computations on previously fetched data.

0 Likes
Ignus
Journeyman III

Originally posted by: nou and 4xxx card do not have enabled DMA.

 

 

I'm also very curious about this. How do you know that? Why is it disabled in the HD 4xxx series? Where is it written, that it is disabled?

--

Greets,

I.

P.S.:

I ask, because I have extremely low transfer rates on a HD 4870 card (around 0.4 GB/sec), and I tried all possible kinds of transfer (writebuffer, mapbuffer, mem_alloc_host_ptr, etc.).

 

0 Likes

i say that DMA is not enabled beacause they write that DMA is enabled for 5xxx-6xxx cards. and that it is horribly slow. maybe it is not accurate or incorect but that is my impression. it is like you have PIO mode on HDD

0 Likes
Ignus
Journeyman III

So there is no chance of getting better transfer performance on HD 4xxx cards in OpenCL?

Because 0.4-0.6 GB/sec is just really slow. That makes the whole thing useless, as the transfer takes away all the time.

--

Greets,

I.

 

0 Likes