I’m currently using a GTX2800-based card for my CUDA simulations and also to drive the display. However, when the computer runs my simulation, the display becomes fairly unresponsive: it often gets frozen for a sec or so, then wakes up for another sec, then gets frozen again, etc. I guess, when my kernel acquires control of the GPU, then XServer can’t really serve, which is expected. Besides this, when X server is running, my simulation sometimes fails to allocate RAM on the card, I guess, because X Server has grabbed too much of it.
I’m getting sick of these issues, and am going to upgrade my hardware, i.e. to have a cheaper card to just drive my X display. I would also like to have the ability to run my simulation on two cards, so I would prefer my new card to be CUDA-compatible. I can’t get a modern card, however, because a large card won’t fit into my box. It sounds, like a 9500GT-based card would be a reasonable compromise between my geometrical constraints and speed requirements:
I would like to run Ubuntu 8.04 on this box, for historical reasons. I don’t use Windows on it.
There is a descent power supply in this box, it will probably be sufficient for the two cards and all the other components.
Hence several questions:
Is there a better choice for the new video card, given my constraints?
Does standard CUDA setup support dual monitors on the 9500GT-based card in descent resolutions (say, 2x1920x1200) AND the ability to dedicate a GTX280-based card to CUDA simulations (no X server on that other card)?
Can CUDA code run on two “heterogeneous” cards of very different generations? I understand, that this second card won’t provide too much of a speedup, but at least I could debug multi-GPU issues.
I checked out the two cards you mentioned, and they unfortunately won’t fit into my case.
A have a follow-up question:
What version of Ubuntu are you successfully using with a 9500GT-based card? Or is it only the driver that takes full care of interfacing with the card, and hence the version of the OS doesn’t really matter that much?
I read negative reviews about driver compatibility with this chip, but they referenced older drivers.
Oh, sorry, I haven’t used the 9500 GT. We’ve used Ubuntu 7.10, 8.04 and 8.10 with an 8800 M GT in a Macbook Pro (this card is probably similar to a 9500GT, and and probably more of a gamble to get to run than a 9500 - it works perfectly though, and is surprisingly fast) … also an 8800 GT, 8800 GTS, and GTX 280, all from various vendors.
It’s mostly the driver that takes care of the card interface, and is the make-or-break factor. Other things in the OS affect CUDA also, so I’d start with the explicitly-supported-by-NVIDIA Ubuntu 8.04 (or 8.10 if that is being explicitly supported these days). Also, avoid the NVIDIA drivers from the Ubuntu repositories, they’ve worked perfectly sometimes, and been a real pain in the hiney other times. When there was trouble it was completely illogical and hard to fix, so I recommnend you go with the driver download.
2.2 supports 8.10 natively (but I am a bad person and have run 8.10 on my workstation with 2.0 and 2.1–I haven’t encountered any problems except for the need to replace gcc 4.3 with 4.2 and then the need to specify CC=/usr/bin/gcc-4.3 when you install a new driver package).
I went ahead with the configuration, as mentioned in the first message of this thread. This configuration so far has been working exactly as expected: my 9500GT-based card runs X server (in a relatively low resolution at the moment: I have a pretty bad screen attached to it), and my GTX280 card is dedicated to my CUDA simulations. I’ve checked a couple of CUDA SDK examples, they worked OK on both of my cards. The response time of the display got back from being almost unusable to instantaneous.
The card, that runs X server is apparently plugged into the second PCI slot, and the CUDA card is plugged into the first PCI slot. Such setup is dictated by geometric constraints of my box. In order to get X server to use the card in the second PCI slot, I had to add the following config:
to the “Device” section of xorg.conf. As far as I remember, this was the only manual change, that I needed.
The drawback of my setup is that the boot process still attempts to display through my CUDA card. Since this card is not connected to any screen, all the boot-time messages are not displayed anywhere.
Honestly, I was so far impressed how smoothly my upgrade went. Great work on the driver side!
I still wonder, if it is possible to detect which card has a monitor attached to it, and run X server on that card. It would be ideal, if BusID setting in xorg.conf (see above) can default to “autodetect” and this could cause such behavior of X server. Obviously, if the user chooses to assign a specific PCI slot to BusID (as I did in my setup), then the driver should go with this setting, as it does now.