View Single Post
Old 01-24-07, 10:52 AM   #4
Registered User
Join Date: Nov 2005
Posts: 14
Default Re: Poor bandwidth with 1.0-9746

I enclosed the problem a little bit more. If I transfer the whole chunk of data to the texture, bandwidth performance is good (indeed, it is sightly faster with 8776). But if I subdivide the transferences into blocks, the performance with 9xxx drops fast, and the performance with 8776 is just a bit lower.

I'm attaching a test code. It works as follows:
  1. It expects three parameters: width, height and tiling
  2. It allocates a (width x height) floating point RGBA texture
  3. It sequentially writes (tiles x tiles) blocks of data in the texture
  4. It reads the whole texture and checks that everything went well

So if you run the test this way:
./test 2000 2000 1
The program will write the whole texture in one transference.

If you run the test like this:
./test 2000 2000 2
The program will write (four) 1000x1000 blocks, performing four transferences to fill the texture.

I'm getting the following results:


./test 2000 2000 1
Writing time: 139347
Reading time: 102771
Residue: 0
./test 2000 2000 2
Writing time: 145235
Reading time: 103051
Residue: 0
./test 2000 2000 4
Writing time: 158381
Reading time: 102603
Residue: 0

./test 2000 2000 1
Writing time: 143069
Reading time: 103248
Residue: 0
./test 2000 2000 2
Writing time: 538755
Reading time: 102028
Residue: 0
./test 2000 2000 4
Writing time: 1.77387e+06
Reading time: 101770
Residue: 0

PD: I'm using GLEW for managing extensions, so you need it to compile the test.
Attached Files
File Type: gz GPUTransferTest.tar.gz (4.2 KB, 160 views)
javiersr is offline   Reply With Quote