Optimus, CUDA and linux on a notebook
  1 / 2    
I am thinking of buying a notebook computer (Lenovo Y570) with a GT 555m graphics card and optimus. I don't actually care that much to use optimus - it would be fine by me if the computer ran linux using the onboard Intel graphics and just used the GT 555m as a CUDA co-processor. Can anyone comment if this plan will work? If I was using Ubuntu, say, could I configure the X server to use the Intel graphics, and then use CUDA on the GT555M? Would the CUDA driver sort out this situation?

While I am here, I've puzzled over whether the GTX460M would be THAT much faster than the newer GT555M; a little less than a factor of 2, I suppose. Any comments on the relative merits of these two notebook GPU's? (Its the GTX vs. the GT that most worries me, I suppose.) It seems most of the notebooks using GTX460M's do not implement optimus, which could be a good thing at the moment, if one were using linux. (More speculatively...should I wait for the gtx560M which is just now appearing on the scene?)
I am thinking of buying a notebook computer (Lenovo Y570) with a GT 555m graphics card and optimus. I don't actually care that much to use optimus - it would be fine by me if the computer ran linux using the onboard Intel graphics and just used the GT 555m as a CUDA co-processor. Can anyone comment if this plan will work? If I was using Ubuntu, say, could I configure the X server to use the Intel graphics, and then use CUDA on the GT555M? Would the CUDA driver sort out this situation?



While I am here, I've puzzled over whether the GTX460M would be THAT much faster than the newer GT555M; a little less than a factor of 2, I suppose. Any comments on the relative merits of these two notebook GPU's? (Its the GTX vs. the GT that most worries me, I suppose.) It seems most of the notebooks using GTX460M's do not implement optimus, which could be a good thing at the moment, if one were using linux. (More speculatively...should I wait for the gtx560M which is just now appearing on the scene?)

#1
Posted 05/18/2011 04:55 AM   
I proceeded to get the Lenovo Y570 with its Sandybridge intel graphics + GT555M. My thinking was that it cost quite a bit less than those notebooks with the GTX460M and those notebooks do not generally have the optimus, that is the intel graphics and the nvidia graphics. In my experience, trying to use a display that is also used for cuda calculations severely crimps the GPU calculation speed, while making the desktop use uncomfortable. So having separate components seemed a good thing, even if the GT555M is not as speedy as the 460M.

However, for linux, the situation is just rather tortured at the moment, I've found. I do know my way around a linux machine fairly well, but I've not been able to get the nvidia 555M to do anything so far. I've been trying to use the bumblebee package that is fairly new. The Lenovo Y570 is not yet "supported" (speaking loosely) by bumblebee. I've thrashed around for a couple of days now, without success. I think I can turn the card on and off, however, maybe. Sometimes I can install the nvidia driver module, sometimes not...its a mystery... The Lenovo Y570 has no bios settings to affect graphics, alas.

I suspect that part of the problem is that the 555M is new enough to be marginally supported by nvidia for linux - setting aside the optimus issue. (And the Intel Sandybridge graphics, while working, is also marginally supported - direct rendering is kaput for me, but that's an issue separate from this forum).

I also suspect that I will be able get it working after a while - likely with some developments on the bumblebee side. With linux, patience is a virtue.
I proceeded to get the Lenovo Y570 with its Sandybridge intel graphics + GT555M. My thinking was that it cost quite a bit less than those notebooks with the GTX460M and those notebooks do not generally have the optimus, that is the intel graphics and the nvidia graphics. In my experience, trying to use a display that is also used for cuda calculations severely crimps the GPU calculation speed, while making the desktop use uncomfortable. So having separate components seemed a good thing, even if the GT555M is not as speedy as the 460M.



However, for linux, the situation is just rather tortured at the moment, I've found. I do know my way around a linux machine fairly well, but I've not been able to get the nvidia 555M to do anything so far. I've been trying to use the bumblebee package that is fairly new. The Lenovo Y570 is not yet "supported" (speaking loosely) by bumblebee. I've thrashed around for a couple of days now, without success. I think I can turn the card on and off, however, maybe. Sometimes I can install the nvidia driver module, sometimes not...its a mystery... The Lenovo Y570 has no bios settings to affect graphics, alas.



I suspect that part of the problem is that the 555M is new enough to be marginally supported by nvidia for linux - setting aside the optimus issue. (And the Intel Sandybridge graphics, while working, is also marginally supported - direct rendering is kaput for me, but that's an issue separate from this forum).



I also suspect that I will be able get it working after a while - likely with some developments on the bumblebee side. With linux, patience is a virtue.

#2
Posted 06/26/2011 08:19 PM   
After a bit more trial and error, at least one issue has become clear. The present versions of the Nvidia drivers do support the 555M, but this support seems to be for chipset PCI Id 10de:0dcd, whereas the Lenovo notebook I have has PCI Id 10de:0deb. In short, this 555M is not (yet?) supported by the linux driver. If I may be so bold, may I ask that this card be supported by the next release of the Nvidia graphics (or CUDA) driver? Thx...

c.f.,
http://us.download.nvidia.com/XFree86/Linux-x86_64/275.09.07/README/supportedchips.html
After a bit more trial and error, at least one issue has become clear. The present versions of the Nvidia drivers do support the 555M, but this support seems to be for chipset PCI Id 10de:0dcd, whereas the Lenovo notebook I have has PCI Id 10de:0deb. In short, this 555M is not (yet?) supported by the linux driver. If I may be so bold, may I ask that this card be supported by the next release of the Nvidia graphics (or CUDA) driver? Thx...



c.f.,

http://us.download.nvidia.com/XFree86/Linux-x86_64/275.09.07/README/supportedchips.html

#3
Posted 06/27/2011 08:16 PM   
Just to note a possible solution to the problem of the Y570's 555M graphics card having a different PCI ID,
hence not supported by standard nvidia drivers...

I found the following paragraph recently by google search:

[code]In Ubuntu, we have a file called "additional_card_ids", which we include with the debian
packaging scripts. You can see it if you download the scripts with "apt-get source
nvidia-graphics-drivers". This file contains ids that are not yet included in the Nvidia driver.
You can get your card's id (with lspci -vn |grep VGA) and put it in that file. Then, rebuild
nvidia-graphics-drivers (with dpkg-buildpackage -rfakeroot -b -tc) and install nvidia-current.[/code]

I followed these instructions, adding "0DEB" to the promising "additional_card_ids" and rebuilt the
driver. This rebuilt fine. Alas, my Ubuntu computer is not my Y570, but a netbook-like thing. Now
I need to see how to port this over to my Suse linux machine...with its different kernel versions and so on.
The rebuild also built a "dev" package - perhaps that one can be unpacked on my Suse machine and
compiled manually...

Anybody fluent at Ubuntu-Suse package conversions??? :)

Added later: The above seems to be used in conjunction with Ubuntu's "jockey" which is used to install proprietary drivers. I know nothing of jockey, but it seems to be Ubuntu specific....
Just to note a possible solution to the problem of the Y570's 555M graphics card having a different PCI ID,

hence not supported by standard nvidia drivers...



I found the following paragraph recently by google search:



In Ubuntu, we have a file called "additional_card_ids", which we include with the debian

packaging scripts. You can see it if you download the scripts with "apt-get source

nvidia-graphics-drivers". This file contains ids that are not yet included in the Nvidia driver.

You can get your card's id (with lspci -vn |grep VGA) and put it in that file. Then, rebuild

nvidia-graphics-drivers (with dpkg-buildpackage -rfakeroot -b -tc) and install nvidia-current.




I followed these instructions, adding "0DEB" to the promising "additional_card_ids" and rebuilt the

driver. This rebuilt fine. Alas, my Ubuntu computer is not my Y570, but a netbook-like thing. Now

I need to see how to port this over to my Suse linux machine...with its different kernel versions and so on.

The rebuild also built a "dev" package - perhaps that one can be unpacked on my Suse machine and

compiled manually...



Anybody fluent at Ubuntu-Suse package conversions??? :)



Added later: The above seems to be used in conjunction with Ubuntu's "jockey" which is used to install proprietary drivers. I know nothing of jockey, but it seems to be Ubuntu specific....

#4
Posted 11/12/2011 11:55 AM   
It looks like I have the same problem with my Asus n5sf (sandybridge + Optimus + gt555m) using Ubuntu (10.10).
I cannot disable Optimus through the BIOS and the nvidia linux drivers don't seem to work.
That is a shame as like you I wanted to used the GPU computing abilities of this chip. Maybe it is time to switch to OpenCL... (As I found very
straightforward to setup linux + GPU + OpenCL on an ATI equiped laptop)
I will try the solution you mentioned, although it looks complex.
It looks like I have the same problem with my Asus n5sf (sandybridge + Optimus + gt555m) using Ubuntu (10.10).

I cannot disable Optimus through the BIOS and the nvidia linux drivers don't seem to work.

That is a shame as like you I wanted to used the GPU computing abilities of this chip. Maybe it is time to switch to OpenCL... (As I found very

straightforward to setup linux + GPU + OpenCL on an ATI equiped laptop)

I will try the solution you mentioned, although it looks complex.

#5
Posted 11/22/2011 12:30 AM   
I hope you will update us on whether you are able to succeed with Linux + gt-555m. I just shipped a Lenovo y570 back because it had a hard drive failure which got me off the hook with respect to the GPU (gt-555m). I really liked the laptop, especially because it had an SSD plus HD, but when they gave me the choice of a replacement or refund, I took the refund simply because I couldn't get the gpu to be recognized by CUDA. If you get it working, you would be doing us all a favor to let us know how. Btw, I tried, under Windows, CUDA 3.2 with-out-of-the-box drivers and 4.0 with 285.x drivers I downloaded, no luck with either combo. I never got so far as trying the driver hack on Linux because it discovered my bad drive and wouldn't mount it (Windows didn't even notice). The whole thing became a lost cause at that point.
I hope you will update us on whether you are able to succeed with Linux + gt-555m. I just shipped a Lenovo y570 back because it had a hard drive failure which got me off the hook with respect to the GPU (gt-555m). I really liked the laptop, especially because it had an SSD plus HD, but when they gave me the choice of a replacement or refund, I took the refund simply because I couldn't get the gpu to be recognized by CUDA. If you get it working, you would be doing us all a favor to let us know how. Btw, I tried, under Windows, CUDA 3.2 with-out-of-the-box drivers and 4.0 with 285.x drivers I downloaded, no luck with either combo. I never got so far as trying the driver hack on Linux because it discovered my bad drive and wouldn't mount it (Windows didn't even notice). The whole thing became a lost cause at that point.

#6
Posted 11/22/2011 01:25 AM   
I just bough a Dell XPS15Z with GT525m + optimus as a portable cuda development laptop. I installed ubuntu 11.10 and successfully installed the last driver (from the 4.1 toolkit). Everything is working fine with optimus.
I don't know whats a "optimus compatible laptop" is ....
When you look at optirun, it does the following:
1. power on your card (if power managment is on)
2. load the nvidia driver
3. run a X server with your application
4. unload the driver
5. power off the card (if power managment is on)
If you don't need any graphics interop, loading the driver will be sufficient to run cuda apps.
You can manually do each step of optirun and see where is the problem.
If you succeed in compiling the nvidia kernel module it must load. The only problem i had at the first try, was that my gtx card was not powered and consequently the driver package did not detect any nvidia card and so refuse to do anything.
I just bough a Dell XPS15Z with GT525m + optimus as a portable cuda development laptop. I installed ubuntu 11.10 and successfully installed the last driver (from the 4.1 toolkit). Everything is working fine with optimus.

I don't know whats a "optimus compatible laptop" is ....

When you look at optirun, it does the following:

1. power on your card (if power managment is on)

2. load the nvidia driver

3. run a X server with your application

4. unload the driver

5. power off the card (if power managment is on)

If you don't need any graphics interop, loading the driver will be sufficient to run cuda apps.

You can manually do each step of optirun and see where is the problem.

If you succeed in compiling the nvidia kernel module it must load. The only problem i had at the first try, was that my gtx card was not powered and consequently the driver package did not detect any nvidia card and so refuse to do anything.

#7
Posted 11/22/2011 02:57 AM   
Perhaps the latest nvidia cuda drivers support the 555M of the Lenovo Y570. The issue is just that it has a different PCI ID ("DEB") than the standard 555M ("DCD"), so none of the standard nvidia drivers work on it (either Linux or Windows). I keep waiting and checking the various sites and (beta) drivers for success...

One of the Lenovo linux forums has a prescription for changing to a modded bios that allows one to disable the intel graphics at boot up. That may or may not help, since it seems to me the nvidia drivers would still not work. It might help with nouveau, however. I am reluctant to go that route since my laptop is presently "mission critical".

Luckily it is not THAT important to run cuda on this laptop right now. But its disappointing...and just a little bit strange; like regressing to such things as the infamous "winmodem" (showing my age there, I think...).

LATER: Just to note that the 4.1 kernel module seems to at least install. Now I am stymied by the lack of support in bumblebee for Suse. Otherwise, attempting to run cuda devicequery produces the bottom few lines of:

[code][ 68.252281] nvidia 0000:01:00.0: PCI INT A disabled
[ 71.841115] nvidia 0000:01:00.0: enabling device (0002 -> 0003)
[ 71.841122] nvidia 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 71.841130] nvidia 0000:01:00.0: setting latency timer to 64
[ 71.841134] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=none,decodes=none:owns=none
[ 71.841359] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 285.05.15 Mon Oct 17 18:19:24 PDT 2011
[ 81.633242] NVRM: failed to copy vbios to system memory.
[ 81.636459] NVRM: RmInitAdapter failed! (0x30:0xffffffff:864)
[ 81.636466] NVRM: rm_init_adapter(0) failed[/code]

I'll try bumblebee again when I have more time.

Even more later:

Apparently the card was just not turned on. I am back to:

[code][ 1504.250862] NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:0deb) installed
[ 1504.250862] NVRM: in this system is not supported by the 285.05.15 NVIDIA Linux
[ 1504.250863] NVRM: graphics driver release. Please see 'Appendix A -
[ 1504.250864] NVRM: Supported NVIDIA GPU Products' in this release's README,
[ 1504.250864] NVRM: available on the Linux graphics driver download page at
[ 1504.250865] NVRM: www.nvidia.com.
[ 1504.250873] nvidia 0000:01:00.0: PCI INT A disabled
[ 1504.250881] nvidia: probe of 0000:01:00.0 failed with error -1
[ 1504.250919] NVRM: The NVIDIA probe routine failed for 1 device(s).
[ 1504.250921] NVRM: None of the NVIDIA graphics adapters were initialized![/code]

Requesting support for PCI ID 10de:0deb from NVIDIA.... (Or at least some trick to work around this particular probe and get the driver installed...)
Perhaps the latest nvidia cuda drivers support the 555M of the Lenovo Y570. The issue is just that it has a different PCI ID ("DEB") than the standard 555M ("DCD"), so none of the standard nvidia drivers work on it (either Linux or Windows). I keep waiting and checking the various sites and (beta) drivers for success...



One of the Lenovo linux forums has a prescription for changing to a modded bios that allows one to disable the intel graphics at boot up. That may or may not help, since it seems to me the nvidia drivers would still not work. It might help with nouveau, however. I am reluctant to go that route since my laptop is presently "mission critical".



Luckily it is not THAT important to run cuda on this laptop right now. But its disappointing...and just a little bit strange; like regressing to such things as the infamous "winmodem" (showing my age there, I think...).



LATER: Just to note that the 4.1 kernel module seems to at least install. Now I am stymied by the lack of support in bumblebee for Suse. Otherwise, attempting to run cuda devicequery produces the bottom few lines of:



[   68.252281] nvidia 0000:01:00.0: PCI INT A disabled

[ 71.841115] nvidia 0000:01:00.0: enabling device (0002 -> 0003)

[ 71.841122] nvidia 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16

[ 71.841130] nvidia 0000:01:00.0: setting latency timer to 64

[ 71.841134] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=none,decodes=none:owns=none

[ 71.841359] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 285.05.15 Mon Oct 17 18:19:24 PDT 2011

[ 81.633242] NVRM: failed to copy vbios to system memory.

[ 81.636459] NVRM: RmInitAdapter failed! (0x30:0xffffffff:864)

[ 81.636466] NVRM: rm_init_adapter(0) failed




I'll try bumblebee again when I have more time.



Even more later:



Apparently the card was just not turned on. I am back to:



[ 1504.250862] NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:0deb) installed

[ 1504.250862] NVRM: in this system is not supported by the 285.05.15 NVIDIA Linux

[ 1504.250863] NVRM: graphics driver release. Please see 'Appendix A -

[ 1504.250864] NVRM: Supported NVIDIA GPU Products' in this release's README,

[ 1504.250864] NVRM: available on the Linux graphics driver download page at

[ 1504.250865] NVRM: www.nvidia.com.

[ 1504.250873] nvidia 0000:01:00.0: PCI INT A disabled

[ 1504.250881] nvidia: probe of 0000:01:00.0 failed with error -1

[ 1504.250919] NVRM: The NVIDIA probe routine failed for 1 device(s).

[ 1504.250921] NVRM: None of the NVIDIA graphics adapters were initialized!




Requesting support for PCI ID 10de:0deb from NVIDIA.... (Or at least some trick to work around this particular probe and get the driver installed...)

#8
Posted 11/22/2011 04:12 PM   
Some manufacturers change the PCI id of the video card to force you to use their supplied driver instead of the stock driver for whatever reasons. Under windows you can play with the ini file to get the driver to install. Under linux, you can probably download the bin file for the driver instead of the package and then it should have an option to unpack instead of install, from where you can try and change the files.

I have a thinkpad w520 with optimus (Quadro 2000m). In regular optimus mode it starts up with the intel chip for the graphics. Couldn't get it to run X via the nvidia, however, the NVIDIA will run CUDA (useful under windows, as this machine will run nsight, also means that I can use GDB under linux). To run X with the nvidia driver I need to change the option in the bios to disable optimus.

For me I have no issue with CUDA, but on a different machine that isn't connected to a display (it's actually a tesla S1070) the NVIDIA driver doesn't start up as X isn't started. What I need to do there is load the nvidia driver manually and run any CUDA app (even device query) as root once and it forces CUDA to start (the devices are created under /dev). After that any user can use CUDA, it may work for you.

If it does, there is a script for setting up tesla that you can run on startup that would do the setup for you (uses nvidia smi). I can send it to you if you can't find it.
Some manufacturers change the PCI id of the video card to force you to use their supplied driver instead of the stock driver for whatever reasons. Under windows you can play with the ini file to get the driver to install. Under linux, you can probably download the bin file for the driver instead of the package and then it should have an option to unpack instead of install, from where you can try and change the files.



I have a thinkpad w520 with optimus (Quadro 2000m). In regular optimus mode it starts up with the intel chip for the graphics. Couldn't get it to run X via the nvidia, however, the NVIDIA will run CUDA (useful under windows, as this machine will run nsight, also means that I can use GDB under linux). To run X with the nvidia driver I need to change the option in the bios to disable optimus.



For me I have no issue with CUDA, but on a different machine that isn't connected to a display (it's actually a tesla S1070) the NVIDIA driver doesn't start up as X isn't started. What I need to do there is load the nvidia driver manually and run any CUDA app (even device query) as root once and it forces CUDA to start (the devices are created under /dev). After that any user can use CUDA, it may work for you.



If it does, there is a script for setting up tesla that you can run on startup that would do the setup for you (uses nvidia smi). I can send it to you if you can't find it.

#9
Posted 11/23/2011 12:58 AM   
I've unpacked the nvidia device driver file, but cannot find the file one would have to modify to support a new PCI ID. The kernel module directory has:

[code]NVIDIA-Linux-x86_64-285.05.15/kernel$ ls
conftest.sh makefile nv.c nv_gvi.c nv-linux.h nv-p2p.c nvtypes.h os-agp.c os-registry.c rmil.h
cpuopsys.h Makefile.kbuild nv-chrdev.c nv.h nv-memdbg.h nv-p2p.h nv-usermap.c os-agp.h os-smp.c rmretval.h
gcc-version-check.c Makefile.nvidia nv-cray.c nv-i2c.c nv-misc.h nv-procfs.c nv-vm.c os-interface.c os-usermap.c xapi-sdk.h
g_nvreadme.h nvacpi.c nverror.h nv-kernel.o nv-mlock.c nv-reg.h nv-vm.h os-interface.h README.template
[/code]

Anyone have any hints as to what to tweek? The business end is clearly the pre-compiled nv-kernel.o object file.
I've unpacked the nvidia device driver file, but cannot find the file one would have to modify to support a new PCI ID. The kernel module directory has:



NVIDIA-Linux-x86_64-285.05.15/kernel$ ls

conftest.sh makefile nv.c nv_gvi.c nv-linux.h nv-p2p.c nvtypes.h os-agp.c os-registry.c rmil.h

cpuopsys.h Makefile.kbuild nv-chrdev.c nv.h nv-memdbg.h nv-p2p.h nv-usermap.c os-agp.h os-smp.c rmretval.h

gcc-version-check.c Makefile.nvidia nv-cray.c nv-i2c.c nv-misc.h nv-procfs.c nv-vm.c os-interface.c os-usermap.c xapi-sdk.h

g_nvreadme.h nvacpi.c nverror.h nv-kernel.o nv-mlock.c nv-reg.h nv-vm.h os-interface.h README.template




Anyone have any hints as to what to tweek? The business end is clearly the pre-compiled nv-kernel.o object file.

#10
Posted 11/23/2011 09:48 PM   
Wasting yet more time poking around with this ubuntu clue, I suspect it is a red herring... I have an ubuntu system (not with the 555m) and a suse system (with the 555m). I compiled the ubuntu package according to prescription, tweeking the "additional cards" file to add the DEB PCI ID. It compiled and installed o.k., but the /lib/modules/3.0.0-13-generic/modules.alias file is just:

[code]# modinfo nvidia_current
filename: /lib/modules/3.0.0-13-generic/updates/dkms/nvidia_current.ko
alias: char-major-195-*
supported: external
license: NVIDIA
alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias: pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends: [/code]

The aliases are identical to the aliases on my Suse machine with the lastest development cuda driver installed:

[code]# modinfo nvidia.ko
filename: nvidia.ko
alias: char-major-195-*
supported: external
license: NVIDIA
alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias: pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends:

[/code]

Hence I conclude that the Ubuntu system is not adding support in the nvidia.ko module for the PCI ID "DEB". The kernel error also shows that the nvidia driver is checking the hardware PCI ID's against some master list, etc. I don't think the Ubuntu system is modifying the essential binary object file provided by nvidia to add the DEB PCI ID to the various parts within the object file.
(And one would think the Ubuntu people would be reporting happy computing with their Lenovo 555m's by now!)

I recognize the the main issue here is likely that Lenovo/Nvidia do not want to be suggesting or providing support for Optimus on linux laptops for these cards, as might be implied if a driver for the DEB is provided. But could not a driver or procedure be provided somewhere that would allow us hackers to proceed and make use of our 555M's with e.g., bumblebee?

We need to calculate. I'm just saying.
Wasting yet more time poking around with this ubuntu clue, I suspect it is a red herring... I have an ubuntu system (not with the 555m) and a suse system (with the 555m). I compiled the ubuntu package according to prescription, tweeking the "additional cards" file to add the DEB PCI ID. It compiled and installed o.k., but the /lib/modules/3.0.0-13-generic/modules.alias file is just:



# modinfo nvidia_current

filename: /lib/modules/3.0.0-13-generic/updates/dkms/nvidia_current.ko

alias: char-major-195-*

supported: external

license: NVIDIA

alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*

alias: pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*

alias: pci:v000010DEd*sv*sd*bc03sc02i00*

alias: pci:v000010DEd*sv*sd*bc03sc00i00*

depends:




The aliases are identical to the aliases on my Suse machine with the lastest development cuda driver installed:



# modinfo nvidia.ko

filename: nvidia.ko

alias: char-major-195-*

supported: external

license: NVIDIA

alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*

alias: pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*

alias: pci:v000010DEd*sv*sd*bc03sc02i00*

alias: pci:v000010DEd*sv*sd*bc03sc00i00*

depends:






Hence I conclude that the Ubuntu system is not adding support in the nvidia.ko module for the PCI ID "DEB". The kernel error also shows that the nvidia driver is checking the hardware PCI ID's against some master list, etc. I don't think the Ubuntu system is modifying the essential binary object file provided by nvidia to add the DEB PCI ID to the various parts within the object file.

(And one would think the Ubuntu people would be reporting happy computing with their Lenovo 555m's by now!)



I recognize the the main issue here is likely that Lenovo/Nvidia do not want to be suggesting or providing support for Optimus on linux laptops for these cards, as might be implied if a driver for the DEB is provided. But could not a driver or procedure be provided somewhere that would allow us hackers to proceed and make use of our 555M's with e.g., bumblebee?



We need to calculate. I'm just saying.

#11
Posted 11/28/2011 12:01 AM   
Just to report victory at last with using my Y570 555m graphics card. See:
https://github.com/Bumblebee-Project/bbswitch/issues/2

Using the latest NVIDIA-Linux-x86_64-295.17.run driver and a special hack for acpi for the Y570. Apparently the Y570 has some BIOS issues (i.e. errors) and really requires a BIOS patch to properly fix the problem.


[code]optirun deviceQuery
[deviceQuery] starting...
deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Found 1 CUDA Capable device(s)

Device 0: "GeForce GT 555M"
CUDA Driver Version / Runtime Version 4.2 / 4.1
CUDA Capability Major/Minor version number: 2.1
Total amount of global memory: 1024 MBytes (1073414144 bytes)
( 2) Multiprocessors x (48) CUDA Cores/MP: 96 CUDA Cores
GPU Clock Speed: 1.50 GHz
Memory Clock rate: 1570.00 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 131072 bytes
Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048)
Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 32768
Warp size: 32
Maximum number of threads per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 65535
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Concurrent kernel execution: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support enabled: No
Device is using TCC driver mode: No
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 4.2, CUDA Runtime Version = 4.1, NumDevs = 1, Device = GeForce GT 555M
[deviceQuery] test results...
PASSED
> exiting in 3 seconds: 3...2...1...done![/code]


and even "optirum matlab" works as well - letting matlab use the 555M graphics card for the first time since I bought this (lovely, other than the nvidia card issue) 7 months ago.
Just to report victory at last with using my Y570 555m graphics card. See:

https://github.com/Bumblebee-Project/bbswitch/issues/2



Using the latest NVIDIA-Linux-x86_64-295.17.run driver and a special hack for acpi for the Y570. Apparently the Y570 has some BIOS issues (i.e. errors) and really requires a BIOS patch to properly fix the problem.





optirun deviceQuery

[deviceQuery] starting...

deviceQuery Starting...



CUDA Device Query (Runtime API) version (CUDART static linking)



Found 1 CUDA Capable device(s)



Device 0: "GeForce GT 555M"

CUDA Driver Version / Runtime Version 4.2 / 4.1

CUDA Capability Major/Minor version number: 2.1

Total amount of global memory: 1024 MBytes (1073414144 bytes)

( 2) Multiprocessors x (48) CUDA Cores/MP: 96 CUDA Cores

GPU Clock Speed: 1.50 GHz

Memory Clock rate: 1570.00 Mhz

Memory Bus Width: 128-bit

L2 Cache Size: 131072 bytes

Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048)

Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048

Total amount of constant memory: 65536 bytes

Total amount of shared memory per block: 49152 bytes

Total number of registers available per block: 32768

Warp size: 32

Maximum number of threads per block: 1024

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

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

Maximum memory pitch: 2147483647 bytes

Texture alignment: 512 bytes

Concurrent copy and execution: Yes with 1 copy engine(s)

Run time limit on kernels: Yes

Integrated GPU sharing Host Memory: No

Support host page-locked memory mapping: Yes

Concurrent kernel execution: Yes

Alignment requirement for Surfaces: Yes

Device has ECC support enabled: No

Device is using TCC driver mode: No

Device supports Unified Addressing (UVA): Yes

Device PCI Bus ID / PCI location ID: 1 / 0

Compute Mode:

< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >



deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 4.2, CUDA Runtime Version = 4.1, NumDevs = 1, Device = GeForce GT 555M

[deviceQuery] test results...

PASSED

> exiting in 3 seconds: 3...2...1...done!






and even "optirum matlab" works as well - letting matlab use the 555M graphics card for the first time since I bought this (lovely, other than the nvidia card issue) 7 months ago.

#12
Posted 02/03/2012 06:34 PM   
Just to note that using CUDA with the 555M on the Y570, gives one a 5X speed up on simple Sgemm calculations and 2048X2048 sized matrices. This compared to the single processor, the Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz. Using all 4 cores (or 8 with hyperthreading, makes no difference), the 555M still gives a factor of 2 speed up. Other routines are similar (Sgesv/CULA). Seems to me a rule of thumb is that the 555M gives a factor of 4-5 speedup compared to a single processor, and a factor of 2 compared to all four cores. Not bad for 96 CUDA cores@1.5 GHz...a nice coprocessor!
Just to note that using CUDA with the 555M on the Y570, gives one a 5X speed up on simple Sgemm calculations and 2048X2048 sized matrices. This compared to the single processor, the Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz. Using all 4 cores (or 8 with hyperthreading, makes no difference), the 555M still gives a factor of 2 speed up. Other routines are similar (Sgesv/CULA). Seems to me a rule of thumb is that the 555M gives a factor of 4-5 speedup compared to a single processor, and a factor of 2 compared to all four cores. Not bad for 96 CUDA cores@1.5 GHz...a nice coprocessor!

#13
Posted 02/04/2012 10:20 AM   
[quote name='Boxed Cylon' date='03 February 2012 - 06:34 PM' timestamp='1328294057' post='1364767']
Just to report victory at last with using my Y570 555m graphics card.
...
[/quote]
Hello,
I have recently bought Lenovo Ideapad Y570 with gt555m and I have problems installing bumblbee on linux (Debian Sid). Could you please give me more specific instructions how to install bumblebee with these (295.x) drivers?

What I have so far:

Installed acpi-handle-hack module:
[code]$ lsmod | grep hack
acpi_handle_hack 1284 0[/code]
Installed bbswitch module:
[code]$ lsmod | grep bb
bbswitch 5299 0[/code]
Installed Virtual GL.

I have downloaded Nvidia 295.x Linux driver. When I install them (going to tty1, shutting down gdm3, running installer). I loose 3D acceleration - as expected [url="https://wiki.debian.org/Bumblebee"]here[/url]:
[code]The following command is very important, if you skip it you will loose 3D acceleration. Restore Mesa as the default GL library since the primary display is running on the Intel graphics card:

sudo update-alternatives --set glx /usr/lib/mesa-diverted[/code]
To run command above successfuly I need to install package [i]glx-alternative-mesa[/i], but that package has nvidia-installer-cleanup as dependency, which conflicts with already installed nvidia-installer (from driver 295.x). So... what now?

I would be happy even if I could run my desktop only on gt555m and have integrated card disabled, but when I try that (installing nvidia drivers, running nvidi-xconfig to generate xorg.conf) X server starts multiple times (cca 150 times - some bug?) and I have to kill them and delete xorg.conf to even get back to desktop.

Any help would be appreciated.

EDIT:
Installatino from repository by [url="http://suwako.nomanga.net/"]this guide[/url] fails. Bumblebee deamon fails to start for no apparent reason (no err msg, nothing relevant in logs).
[quote name='Boxed Cylon' date='03 February 2012 - 06:34 PM' timestamp='1328294057' post='1364767']

Just to report victory at last with using my Y570 555m graphics card.

...



Hello,

I have recently bought Lenovo Ideapad Y570 with gt555m and I have problems installing bumblbee on linux (Debian Sid). Could you please give me more specific instructions how to install bumblebee with these (295.x) drivers?



What I have so far:



Installed acpi-handle-hack module:

$ lsmod | grep hack

acpi_handle_hack 1284 0


Installed bbswitch module:

$ lsmod | grep bb

bbswitch 5299 0


Installed Virtual GL.



I have downloaded Nvidia 295.x Linux driver. When I install them (going to tty1, shutting down gdm3, running installer). I loose 3D acceleration - as expected here:

The following command is very important, if you skip it you will loose 3D acceleration. Restore Mesa as the default GL library since the primary display is running on the Intel graphics card:



sudo update-alternatives --set glx /usr/lib/mesa-diverted


To run command above successfuly I need to install package glx-alternative-mesa, but that package has nvidia-installer-cleanup as dependency, which conflicts with already installed nvidia-installer (from driver 295.x). So... what now?



I would be happy even if I could run my desktop only on gt555m and have integrated card disabled, but when I try that (installing nvidia drivers, running nvidi-xconfig to generate xorg.conf) X server starts multiple times (cca 150 times - some bug?) and I have to kill them and delete xorg.conf to even get back to desktop.



Any help would be appreciated.



EDIT:

Installatino from repository by this guide fails. Bumblebee deamon fails to start for no apparent reason (no err msg, nothing relevant in logs).

#14
Posted 02/12/2012 01:01 PM   
I don't know that I can be that much help with bumblebee - I installed a version from last summer, last summer, by some thrashing around - since it is working for me now, I am loath to try to fix it... what I have appear to be just some simple wrappers around vglrun, etc.

I don't think it is possible to disable the on-board intel video card; we will need a bios setting for that, and such a setting does not exist. So using just the nvidia card is not an option at this point, as far as I know. I also have lost 3-D capabilities when I installed the nvidia driver. This has to do with the libGL libraries getting over written - one could swap out the intel and nvidia libGL libraries with a small script if needed, I suppose. I gather there are systems for allowing these libraries to co-exist. Personally, the lack of 3D is not so important to me with the intel card; most everything works fine without it, and the 3D things work as well, if perhaps a mite slower. (3D support is not required of the intel card, for 3D support to work o.k. with the nvidia card, it seems)

You do not need bumblebee to run CUDA compute-only calculations - just load the nvidia module (after acpi-handle-hack and bbswitch) and the compute-only CUDA applications should run fine. The big advance here was just being able to load the nvidia module without it being rejected!

For the record, my "bumblebee-enable" and "bumblebee-disable" scripts just load the nvidia module or unload it - that's all they do. I've given no thought to power management...

Also seems to be required is /etc/X11/xorg.conf.nvidia:[code]
cat /etc/X11/xorg.conf.nvidia

Section "DRI"
Mode 0666
EndSection

Section "ServerLayout"
Identifier "Layout0"
Screen "Screen1"
Option "AutoAddDevices" "false"
EndSection

Section "Module"
Load "dbe"
Load "extmod"
Load "glx"
Load "record"
Load "freetype"
Load "type1"
EndSection

Section "Files"
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:01:00:0"
Option "IgnoreEDID"
# Option "ConnectedMonitor" "CRT-0"
Option "ConnectedMonitor" "LVDS1"
EndSection

Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1366x768" "1360x768" "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 73.0
VertRefresh 43.0 - 72.0
Option "DPMS"
Modeline "1920x1200" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync
Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
Modeline "1600x1200" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync
Modeline "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Modeline "1366x768" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
Modeline "1280x800" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
Modeline "1280x1024" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
EndSection
[/code]



[quote name='freem4n' date='12 February 2012 - 05:01 AM' timestamp='1329051709' post='1368396']
Hello,
I have recently bought Lenovo Ideapad Y570 with gt555m and I have problems installing bumblbee on linux (Debian Sid). Could you please give me more specific instructions how to install bumblebee with these (295.x) drivers?

What I have so far:

Installed acpi-handle-hack module:
[code]$ lsmod | grep hack
acpi_handle_hack 1284 0[/code]
Installed bbswitch module:
[code]$ lsmod | grep bb
bbswitch 5299 0[/code]
Installed Virtual GL.

I have downloaded Nvidia 295.x Linux driver. When I install them (going to tty1, shutting down gdm3, running installer). I loose 3D acceleration - as expected [url="https://wiki.debian.org/Bumblebee"]here[/url]:
[code]The following command is very important, if you skip it you will loose 3D acceleration. Restore Mesa as the default GL library since the primary display is running on the Intel graphics card:

sudo update-alternatives --set glx /usr/lib/mesa-diverted[/code]
To run command above successfuly I need to install package [i]glx-alternative-mesa[/i], but that package has nvidia-installer-cleanup as dependency, which conflicts with already installed nvidia-installer (from driver 295.x). So... what now?

I would be happy even if I could run my desktop only on gt555m and have integrated card disabled, but when I try that (installing nvidia drivers, running nvidi-xconfig to generate xorg.conf) X server starts multiple times (cca 150 times - some bug?) and I have to kill them and delete xorg.conf to even get back to desktop.

Any help would be appreciated.

EDIT:
Installatino from repository by [url="http://suwako.nomanga.net/"]this guide[/url] fails. Bumblebee deamon fails to start for no apparent reason (no err msg, nothing relevant in logs).
[/quote]
I don't know that I can be that much help with bumblebee - I installed a version from last summer, last summer, by some thrashing around - since it is working for me now, I am loath to try to fix it... what I have appear to be just some simple wrappers around vglrun, etc.



I don't think it is possible to disable the on-board intel video card; we will need a bios setting for that, and such a setting does not exist. So using just the nvidia card is not an option at this point, as far as I know. I also have lost 3-D capabilities when I installed the nvidia driver. This has to do with the libGL libraries getting over written - one could swap out the intel and nvidia libGL libraries with a small script if needed, I suppose. I gather there are systems for allowing these libraries to co-exist. Personally, the lack of 3D is not so important to me with the intel card; most everything works fine without it, and the 3D things work as well, if perhaps a mite slower. (3D support is not required of the intel card, for 3D support to work o.k. with the nvidia card, it seems)



You do not need bumblebee to run CUDA compute-only calculations - just load the nvidia module (after acpi-handle-hack and bbswitch) and the compute-only CUDA applications should run fine. The big advance here was just being able to load the nvidia module without it being rejected!



For the record, my "bumblebee-enable" and "bumblebee-disable" scripts just load the nvidia module or unload it - that's all they do. I've given no thought to power management...



Also seems to be required is /etc/X11/xorg.conf.nvidia:


cat /etc/X11/xorg.conf.nvidia



Section "DRI"

Mode 0666

EndSection



Section "ServerLayout"

Identifier "Layout0"

Screen "Screen1"

Option "AutoAddDevices" "false"

EndSection



Section "Module"

Load "dbe"

Load "extmod"

Load "glx"

Load "record"

Load "freetype"

Load "type1"

EndSection



Section "Files"

EndSection



Section "Device"

Identifier "Device1"

Driver "nvidia"

VendorName "NVIDIA Corporation"

BusID "PCI:01:00:0"

Option "IgnoreEDID"

# Option "ConnectedMonitor" "CRT-0"

Option "ConnectedMonitor" "LVDS1"

EndSection



Section "Screen"

Identifier "Screen1"

Device "Device1"

Monitor "Monitor0"

DefaultDepth 24

SubSection "Display"

Depth 24

Modes "1366x768" "1360x768" "1280x800" "1024x768" "800x600" "640x480"

EndSubSection

EndSection



Section "Extensions"

Option "Composite" "Enable"

EndSection



Section "Monitor"

Identifier "Monitor0"

VendorName "Unknown"

ModelName "Unknown"

HorizSync 28.0 - 73.0

VertRefresh 43.0 - 72.0

Option "DPMS"

Modeline "1920x1200" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync

Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync

Modeline "1600x1200" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync

Modeline "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync

Modeline "1366x768" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

Modeline "1280x800" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync

Modeline "1280x1024" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync

EndSection








[quote name='freem4n' date='12 February 2012 - 05:01 AM' timestamp='1329051709' post='1368396']

Hello,

I have recently bought Lenovo Ideapad Y570 with gt555m and I have problems installing bumblbee on linux (Debian Sid). Could you please give me more specific instructions how to install bumblebee with these (295.x) drivers?



What I have so far:



Installed acpi-handle-hack module:

$ lsmod | grep hack

acpi_handle_hack 1284 0


Installed bbswitch module:

$ lsmod | grep bb

bbswitch 5299 0


Installed Virtual GL.



I have downloaded Nvidia 295.x Linux driver. When I install them (going to tty1, shutting down gdm3, running installer). I loose 3D acceleration - as expected here:

The following command is very important, if you skip it you will loose 3D acceleration. Restore Mesa as the default GL library since the primary display is running on the Intel graphics card:



sudo update-alternatives --set glx /usr/lib/mesa-diverted


To run command above successfuly I need to install package glx-alternative-mesa, but that package has nvidia-installer-cleanup as dependency, which conflicts with already installed nvidia-installer (from driver 295.x). So... what now?



I would be happy even if I could run my desktop only on gt555m and have integrated card disabled, but when I try that (installing nvidia drivers, running nvidi-xconfig to generate xorg.conf) X server starts multiple times (cca 150 times - some bug?) and I have to kill them and delete xorg.conf to even get back to desktop.



Any help would be appreciated.



EDIT:

Installatino from repository by this guide fails. Bumblebee deamon fails to start for no apparent reason (no err msg, nothing relevant in logs).

#15
Posted 02/13/2012 04:11 PM   
  1 / 2    
Scroll To Top