After upgrade nvidia-drivers on my dell laptop (GeForce 8400M GS card, 2.6.26-gentoo-r1, 64bit) device query (with cudaGetDeviceProperties function) shows that card have only 2 MP. With previous drivers (nvidia-driers-173.14.12) device query shows that card have 16 MP. Drivers installed from portage (on cuda download page for 64 bits Linux also proposed drivers from 177 series). Is it drivers bug?
(177 series of drivers important for me, because new 2.6.27 kernel in portage depends from this drivers).
well the 8400M certainly doesn’t have 16 MP in the first place, so I’m not sure what happened here.
Are you sure? Example from SDK (deviceQuery) with nvidia-driers-173.14.12 gives me this output:
There is 1 device supporting CUDA
Device 0: "GeForce 8400M GS"
Major revision number: 1
Minor revision number: 1
Total amount of global memory: 133890048 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: 0.80 GHz
Concurrent copy and execution: Yes
Test PASSED
Press ENTER to exit...
In case of 177 series of drivers number of MP shown by this query is only two.
I also see diff between total amount of global memory shown by this query (173 s. drivers) – 128MB, and nvidia-settings program, shown me that card hae 256MB, also as lspci -vv command:
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8400M GS (rev a1) (prog-if 00 [VGA controller])
Subsystem: Dell Device 0209
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fd000000 (32-bit, non-prefetchable)
Region 1: Memory at e0000000 (64-bit, prefetchable)
Region 3: Memory at fa000000 (64-bit, non-prefetchable)
Region 5: I/O ports at ef00 [disabled]
[virtual] Expansion ROM at fc000000 [disabled]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Count=1/1 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [78] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <4us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <512ns, L1 <4us
ClockPM- Suprise- LLActRep- BwNot-
LnkCtl: ASPM L0s L1 Enabled; RCB 128 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [100] Virtual Channel <?>
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information <?>
Kernel driver in use: nvidia
Kernel modules: nvidia
G80 has 16 MPs/SMs, GT200 has 30, and G86 has two.
So, but on this page i can see that my card 16 SM’s.
One SM (streaming multiprocessor) = eight SPs.
Ok, i accept my misunderstanding. But why device query show me only 128MB of global memory:
256 Mb is the maximum amount of memory according to the page you referenced
As you can see in my previous post, lspci -vv command output shows me that videocard have 256MB memory:
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8400M GS (rev a1) (prog-if 00 [VGA controller])
Subsystem: Dell Device 0209
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fd000000 (32-bit, non-prefetchable)
<b>Region 1: Memory at e0000000 (64-bit, prefetchable) </b>
Region 3: Memory at fa000000 (64-bit, non-prefetchable)
Region 5: I/O ports at ef00 [disabled]
[virtual] Expansion ROM at fc000000 [disabled]
Strange it does not get reported than in devicequery. There is also a way to find out the amount of free memory within CUDA, maybe check if that reports the right amount? Anyhow, looks like a bug somewhere to me, probably in the drivers, since they mattered for the amount of reported MPs.