How many global mem partitions on a GTX 260? I want to do some padding to avoid partition camping

Hi!

Does anyone know how many global memory partitions there are on a GTX 260? 8 ?

Anyways I’m gonna experiment a bit so maybe i will be able to figure out, but it would be nice with a second source.

Thanks
J

GTX 260 has 448-bit interface, 448 = 64 x 7, so it should has 7 partitions (channels)

,the same as GTX295

This is a Quadro FX 4800, with a 384 bits bus (?)… That would yield 384/64 = 6 partitions…

But i read

“Just as shared memory is divided into 16 banks of 32-bit width, global memory is
divided into either 6 partitions (on 8- and 9-series GPUs) or 8 partitions (on 200-
and 10-series GPUs) of 256-byte width.”

  • Optimizing Matrix Transpose in CUDA, whitepaper

So it’s 8 ? :) I’m a bit confused right now…

Divide the bus width by 64 to get the number of partitions.
512 -->8
448 -->7
384 -->6

Thanks!

I had to test a bit :)

6 it is. notice the dips in transfer at multiples of 6 ( 6, 12, 18, 24 etc).

Datasize: 8192 KB

Data transfer: 18.869

--------------------------------------------------------------

Partitions 2

Datasize: 8192 KB

Data transfer: 17.241

--------------------------------------------------------------

Partitions 3

Datasize: 8191 KB

Data transfer: 12.835

--------------------------------------------------------------

Partitions 4

Datasize: 8192 KB

Data transfer: 18.506

--------------------------------------------------------------

Partitions 5

Datasize: 8191 KB

Data transfer: 18.853

--------------------------------------------------------------

Partitions 6

Datasize: 8191 KB

Data transfer: 8.032

--------------------------------------------------------------

Partitions 7

Datasize: 8191 KB

Data transfer: 18.777

--------------------------------------------------------------

Partitions 8

Datasize: 8192 KB

Data transfer: 17.731

--------------------------------------------------------------

Partitions 9

Datasize: 8190 KB

Data transfer: 12.838

--------------------------------------------------------------

Partitions 10

Datasize: 8190 KB

Data transfer: 16.361

--------------------------------------------------------------

Partitions 11

Datasize: 8189 KB

Data transfer: 18.830

--------------------------------------------------------------

Partitions 12

Datasize: 8190 KB

Data transfer: 8.276

--------------------------------------------------------------

Partitions 13

Datasize: 8190 KB

Data transfer: 19.088

--------------------------------------------------------------

Partitions 14

Datasize: 8190 KB

Data transfer: 15.073

--------------------------------------------------------------

Partitions 15

Datasize: 8190 KB

Data transfer: 12.251

--------------------------------------------------------------

Partitions 16

Datasize: 8192 KB

Data transfer: 16.460

--------------------------------------------------------------

Partitions 17

Datasize: 8189 KB

Data transfer: 16.784

--------------------------------------------------------------

Partitions 18

Datasize: 8190 KB

Data transfer: 8.164

--------------------------------------------------------------

Partitions 19

Datasize: 8189 KB

Data transfer: 17.585

--------------------------------------------------------------

Partitions 20

Datasize: 8190 KB

Data transfer: 13.689

--------------------------------------------------------------

Partitions 21

Datasize: 8190 KB

Data transfer: 12.010

--------------------------------------------------------------

Partitions 22

Datasize: 8189 KB

Data transfer: 12.918

--------------------------------------------------------------

Partitions 23

Datasize: 8188 KB

Data transfer: 19.160

--------------------------------------------------------------

Partitions 24

Datasize: 8190 KB

Data transfer: 8.322

--------------------------------------------------------------

Can anybody think of a way to determine the number of partitions programmatically for an unknown card? I notice that the device properties structure does not contain the width of the memory bus although it does contain the total amount of memory.

You could of course write some code that tests for which number of partitions that the data transfer rate drops. But that’s a bit brute force and unsophisticated…

I guess this can help your code determine how to best avoid partition camping on different hardware.