8800GTS + 9800GX2 = 3 * IDENTICAL GPUs?

I guess the title describes the question. Will CUDA recognize a 8800GTS (G92 version) and a 9800GX2 as three identical devices?

Thanks, Skippy

How identical do you need? The shader and memory clocks are slightly different between the 8800 GTS (G92) and the 9800 GX2.

By a strange coincidence, I happen to have a machine with a 9800 GX2 and a G92 8800 GTS…

64-bit linux CUDA 2.0 beta 174.55 drivers

./deviceQuery

There are 3 devices supporting CUDA

Device 0: "GeForce 9800 GX2"

  Major revision number:                         1

  Minor revision number:                         1

  Total amount of global memory:                 536150016 bytes

  Number of multiprocessors:                     16

  Number of cores:                               128

  Total amount of constant memory:               65536 bytes

  Total amount of shared memory per block:       16384 bytes

  Total number of registers available per block: 8192

  Warp size:                                     32

  Maximum number of threads per block:           512

  Maximum sizes of each dimension of a block:    512 x 512 x 64

  Maximum sizes of each dimension of a grid:     65535 x 65535 x 1

  Maximum memory pitch:                          262144 bytes

  Texture alignment:                             256 bytes

  Clock rate:                                    1.51 GHz

  Concurrent copy and execution:                 Yes

Device 1: "GeForce 9800 GX2"

  Major revision number:                         1

  Minor revision number:                         1

  Total amount of global memory:                 536608768 bytes

  Number of multiprocessors:                     16

  Number of cores:                               128

  Total amount of constant memory:               65536 bytes

  Total amount of shared memory per block:       16384 bytes

  Total number of registers available per block: 8192

  Warp size:                                     32

  Maximum number of threads per block:           512

  Maximum sizes of each dimension of a block:    512 x 512 x 64

  Maximum sizes of each dimension of a grid:     65535 x 65535 x 1

  Maximum memory pitch:                          262144 bytes

  Texture alignment:                             256 bytes

  Clock rate:                                    1.51 GHz

  Concurrent copy and execution:                 Yes

Device 2: "GeForce 8800 GTS 512"

  Major revision number:                         1

  Minor revision number:                         1

  Total amount of global memory:                 536608768 bytes

  Number of multiprocessors:                     16

  Number of cores:                               128

  Total amount of constant memory:               65536 bytes

  Total amount of shared memory per block:       16384 bytes

  Total number of registers available per block: 8192

  Warp size:                                     32

  Maximum number of threads per block:           512

  Maximum sizes of each dimension of a block:    512 x 512 x 64

  Maximum sizes of each dimension of a grid:     65535 x 65535 x 1

  Maximum memory pitch:                          262144 bytes

  Texture alignment:                             256 bytes

  Clock rate:                                    1.67 GHz

  Concurrent copy and execution:                 Yes

All 3 devices seem to work, though I have yet to to exhaustive testing.

I can’t tell you if this works under Vista64 since there you need one monitor per CUDA device and I don’t have 3 monitors to connect.

Note: I had trouble with this setup in 32-bit linux / CUDA 1.1 / latest 174.14.05 drivers. I’m not sure if the trouble was the fact that it was 32-bit linux not being able to address all those cards’ memory or something else. At some point, I’ll try CUDA 2.0 beta there and see if that works, but it’s not a high priority.

Edit: As seibert says, they do have different clock rates so the performance from one device to the next will vary slightly. Otherwise, they should be identical.

Bandwith to the cards is also different, the 9800GX2’s 2 GPU’s have to share the PCI-Express bus.