NVIDIA GPU3 Linux/Wine Headless Install Guide

Moderators: slegrand, Site Moderators, PandeGroup

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby shatteredsilicon » Wed Nov 12, 2008 9:22 pm

It sounds like the throttling in the client comes with a huge penalty. The later wrapper results in a penalty of under 3% compared to fully unrestricted operation and my clients hover at around 11-12% CPU each. So yes - the later wrapper makes quite a positive difference (and you can run the SMP client with all that spare CPU time). :)
Image
1x Q6600 @ 3.2GHz, 4GB DDR3-1333
1x Phenom X4 9950 @ 2.6GHz, 4GB DDR2-1066
3x GeForce 9800GX2
1x GeForce 8800GT
CentOS 5 x86-64, WINE 1.x with CUDA wrappers
shatteredsilicon
 
Posts: 627
Joined: Tue Jul 08, 2008 2:27 pm

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Thu Nov 13, 2008 4:12 am

rjwilmsi wrote:In response to questions asked about my post above:
My kernel version 2.6 .23 does not have this high resolution support. I'm not able to upgrade the kernel because my madwifi packages depend explicitly on a particular kernel version. I will be upgrading to opensuse 11.1 sometime in December when it becomes available. For the moment I'm happy with my results using the first-generation wrapper.
I have capped the CPU usage to 60% by setting this up in the advanced configuration options of the folding@home client. However, come to mention it I'm not sure whether this specifies the maximum CPU usage or in fact the maximum GPU usage for the GPU2 client? However, looking at the process monitor in KDE, it does seem that the folding@home executable is using about 60% of my CPU.

I will try increasing my cap from 60% to 80% to see what happens and report back the results tomorrow.

I've went to ndiswrapper for wifi ... works well. If you have the actual sys and inf files for your Wifi card, it's a two minutes setup for doing wifi with WEP.
Last edited by KE1HA on Fri Nov 14, 2008 8:06 pm, edited 1 time in total.
Image
2x - Q6600 1 with 2x 9800GT's / 1 with 2x 8800GTS G92 512's UB-8.04 CLI Only
2x - AMD 9850 1 with 3x 9800 GT's / 1 with 1x 9800 GT's UB-8.04 CLI Only
1x - QX9770 GTX-280 WinDoze Vista 64
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby Hyperlife » Thu Nov 13, 2008 4:50 am

KE1HA wrote:I wish I could get this GPU busines to work, it's really starting to get on my nerves now.. lol :biggrin:

Yeah, I've run out of ideas on what else could be wrong. Do you have another video card you can swap in?

I'm going to try to replicate the 200% problem this weekend by reinstalling a few times.
Image
User avatar
Hyperlife
 
Posts: 438
Joined: Sun Dec 02, 2007 7:38 am

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Thu Nov 13, 2008 6:51 am

Out of pure desperation, I've commited a criminal act. I changed two hardware components at the same time.

I had a GA-P35-DS3L doing nothing but collecting dust, and 650W ToughPower PSU that needed the spider web's cleaned out.

In the words of Tom Hanks ( - !!!! with a Ton of help from everyone, Thanks For all the Support !!!! - ):

and a GREAT How-Too from Hyperlife !!!

==> I Have Made Fire and Wilson Is Alive <==

Code: Select all
# Windows GPU Console Edition #################################################
###############################################################################

                       Folding@Home Client Version 6.20r1

                          http://folding.stanford.edu

###############################################################################
###############################################################################

Launch directory: Z:\home\ke1ha\fahgpu2
Executable: Folding@home-Win32-GPU.exe
Arguments: -verbosity 9 -forcegpu nvidia_g80

[06:26:04] - Ask before connecting: No
[06:26:04] - User name: KE1HA (Team 10)
[06:26:04] - User ID: 5D9AD253B92AA2
[06:26:04] - Machine ID: 1
[06:26:04]
[06:26:04] Loaded queue successfully.
[06:26:04]
[06:26:04] Trying to send all finished work units
[06:26:04] + No unsent completed units remaining.
[06:26:04] - Autosend completed
[06:26:04] + Processing work unit
[06:26:04] Core required: FahCore_11.exe
[06:26:04] Core found.
[06:26:04] Working on queue slot 01 [November 13 06:26:04 UTC]
[06:26:04] + Working ...
[06:26:04] - Calling '.\FahCore_11.exe -dir work/ -suffix 01 -checkpoint 15 -verbose -lifeline 8 -version 620'

[06:26:04]
[06:26:04] *------------------------------*
[06:26:04] Folding@Home GPU Core - Beta
[06:26:04] Version 1.19 (Mon Nov 3 09:34:13 PST 2008)
[06:26:04]
[06:26:04] Compiler  : Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
[06:26:04] Build host: amoeba
[06:26:04] Board Type: Nvidia
[06:26:04] Core      :
[06:26:04] Preparing to commence simulation
[06:26:04] - Looking at optimizations...
[06:26:04] - Files status OK
[06:26:04] - Expanded 44151 -> 244433 (decompressed 553.6 percent)
[06:26:04] Called DecompressByteArray: compressed_data_size=44151 data_size=244433, decompressed_data_size=244433 diff=0
[06:26:04] - Digital signature verified
[06:26:04]
[06:26:04] Project: 5015 (Run 8, Clone 208, Gen 318)
[06:26:04]
[06:26:04] Assembly optimizations on if available.
[06:26:04] Entering M.D.
[06:26:10] Will resume from checkpoint file
[06:26:12] Working on 576 p5005_supervillin_e1
[06:26:12] Client config found, loading data.
[06:26:12] Resuming from checkpoint
[06:26:12] Verified work/wudata_01.log
[06:26:12] Verified work/wudata_01.edr
[06:26:12] Verified work/wudata_01.trr
[06:26:12] Verified work/wudata_01.xtc
[06:26:12] Starting GUI Server
[06:27:37] Completed 1%
[06:29:01] Completed 2%
[06:30:25] Completed 3%
[06:31:49] Completed 4%
[06:33:14] Completed 5%
[06:34:38] Completed 6%
[06:36:02] Completed 7%
[06:37:27] Completed 8%
[06:38:51] Completed 9%


EVGA 9800 GT - Stock, No OC.

-- Q6600-3-GP1 --
Min. Time / Frame : 1mn 24s - 4937.14 ppd
Avg. Time / Frame : 1mn 24s - 4937.14 ppd
Cur. Time / Frame : 1mn 24s - 4937.14 ppd
R3F. Time / Frame : 1mn 24s - 4937.14 ppd

TOP Data:
Load AVE: 0.11 / 0.08 / 0.02
PID Usage: 17% CPU / 2.5% MEM

Not sure I want to mess with things now that it's ticking over, but I've got the Quad clocked up to about 2.9 as well, soI wanted to fire up the SMP client and see how that does, not sure about that yet.

So Much for the Intel 975XBX MB, in the trash it goes, along with it's side kick 1000W Antec Buddy !!!

Thanks agaain for all the help !!!
.
Last edited by KE1HA on Thu Nov 13, 2008 7:35 am, edited 1 time in total.
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Thu Nov 13, 2008 7:26 am

Just so I dont ever forget to do this I had cudainit start at run time 2 3
Code: Select all
sudo cp ./cudainit /etc/init.d

then

Add the script to start at run time. You don't really need 4 and 5, unless your runiing a GUI. Dont forget the period " . " at the end.
Code: Select all
sudo update-rc.d -f cudainit start 99 2 3 4 5 .

Explination:
- start is the argument given to the script (start).
- 99 is the start order of the script (1 = first to start, 99= last to start)
- 2 3 4 5 are the runlevels to start

You could also use the skeleton in /etc/init.d to make the a uniform script for Ubuntu, im not that energetic.

Im going to have a crack at making a set of scripts similar to the finstall SMP scripts, in an attempt to start, stop & restart from the commandl ine. Will probably break things badly again :mrgreen:
.
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Fri Nov 14, 2008 6:51 am

Shadowtester wrote:May I suggest this command for running the gpu2 client with screen it will start a screen session in the background and name it GPU2 to make it easy to identify in case you have more than one screen session this is the command I use normally which works great. You could also add additional flags such as -forceasm and -advmethods if wanted I normally use both so they will work fine with the gpu2 client using wine and you could also create a simple file with the following setup and add run it in your startup script so that any time you reboot the gpu2 client would get started automatically. I named the following file gpu2 and made it executable so to start the gpu2 client I just have to run that file its easier than typing the entire command all the time and to check the status in screen all you need to do is.
Code: Select all
screen -r GPU2

Then when finished just use the following to detach the screen session and exit
"CTRL-A D"

gpu2
Code: Select all
cd ~/fahgpu2
screen -A -m -d -S GPU2 nice -n10 wine Fah-GPU.exe -forcegpu nvidia_g80 -verbosity 9

Check out an application called "dtach". It's simple, leightweight and does not dosconnect the session if you loose your ssh connection. It also creates a persistent socket, so when you log back into ssh or whatever app your using, all you do is reattach and it's right where you left it.

Code: Select all
sudo apt-get dtach


Usage: You can read the Man-Pages for more options, but here's the basic's:

To attach to a BASH session:
Code: Select all
dtach -A /tmp/gpu1.dtach bash
Where -A creates the new session called (gpu1.dtach) and bash is the application I want to run as the session. Then run your command line arguments to start folding. You could, run the GPU command straight after namimg the session. To exit the session "Without Killing it", aka Detaching from it, hit (CTRL+\) that's control+backslash or hash to leave the session.

To reattach is just as simple. ( dtach -a /tmp/gpu1.dtach ) no need to run bash again. The lower case (-a) is the reattach flag where gpu1.dtach is the session. I would add that, you dont have to use the extention(.dtach) I do that just for identificaton.

So, I ran of these sessions like so:
Code: Select all
dtach -A /tmp/gpu1.dtach bash

then CTRL+\ to detach the first then

dtach -A /tmp/gpu2.dtach bash

then CTRL+\ to detach second

Both session are still active !

A quick ls /tmp whill show if the sockets are present:
Code: Select all
ls /tmp
gpu1.dtach gou2.dtach


There's allot you can do with this, but the main reason I chose this over screen was it's persistent and I find it very easy to use. You can also change the detach control as well, meaning if you dont like CTRL+\, you can, when initiating the session, set what you want it to be.

Example:
Code: Select all
dtach -A /tmp/gpu1.dtach bash  '^A'

The ^A is (CTRL+A)

Couple Ideas / Suggestions:
1 - Create your session on boot using your rc.local or create a basic init script, then just add in the following.
Code: Select all
dtach -n /tmp/gpu1.dtach bash
dtach -n /tmp/gpu2.dtach bash

Then run your dtach -A .. .. .. from above to atach to the session which is already set up for you.

Still testing this one:
2 - You could execute the GPU apps using the -n function in the rc.local file and not have to bother with it, then anytime you SSH in, just attach to th GPU session you wnat to check on things. Only initial tests done with that metod of firing up the GPU clients so I dont know it's full affects.

=================================================================================================

Here it is in Action. Does what it says on the Tin, It Works :-)

--> I set up 2 dtach sessions: ( dtash -n /tmp/gpu1 bash ) and ( dtach -n /tmp/gpu2 bash )
--> Logged into each session with dtach -a /tmp/gpu1 and gpu2 respectively
--> Started the GPU2 client per Step-21, filled in my client.cfg details, then detached with CTRL+\ and set up the second client.
--> Then fired up one SMP client.

TOP DATA
Code: Select all
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4922 ke1ha     39  19  173m  83m 2860 S   64  4.1   1:04.88 FahCore_a2.exe
 4924 ke1ha     39  19  181m  95m 2620 S   61  4.7   1:05.53 FahCore_a2.exe
 4923 ke1ha     39  19  171m  86m 2616 S   58  4.3   1:03.10 FahCore_a2.exe
 4925 ke1ha     39  19  166m  82m 2624 S   57  4.1   1:04.63 FahCore_a2.exe
 4813 ke1ha     20   0 3640m  50m  14m S   21  2.5   0:36.68 FahCore_11.exe
 4740 ke1ha     20   0 3641m  50m  14m S   19  2.5   1:58.19 FahCore_11.exe

The 2x GPU's are running at Nice (0) and the SMP threads are at (19). Waiting on the SMP to post a few segment compltions for data.

-- Q6600-1-1 -- Stock 2.4 Ghz. Need to Crank it up.
Project: 2674 (Run 2, Clone 18, Gen 23)

Min. Time / Frame : 10mn 22s - 2667.01 ppd
Avg. Time / Frame : 10mn 27s - 2645.74 ppd
Cur. Time / Frame : 10mn 22s - 2667.01 ppd
R3F. Time / Frame : 10mn 22s - 2667.01 ppd
Eff. Time / Frame : 1h 01mn 30s - 449.56 ppd

-- Q6600-1-GP1 -- EVGA 9800 GT Stock
Project: 5506 (Run 4, Clone 216, Gen 228)

Min. Time / Frame : 1mn 23s - 4996.63 ppd
Avg. Time / Frame : 1mn 23s - 4996.63 ppd
Cur. Time / Frame : 1mn 23s - 4996.63 ppd
R3F. Time / Frame : 1mn 23s - 4996.63 ppd
Eff. Time / Frame : 1mn 27s - 4766.90 ppd

-- Q6600-1-GP2 -- EVGA 9800 GT Stock
Project: 5506 (Run 2, Clone 239, Gen 222)

Min. Time / Frame : 1mn 23s - 4996.63 ppd
Avg. Time / Frame : 1mn 23s - 4996.63 ppd
Cur. Time / Frame : 1mn 24s - 4937.14 ppd
R3F. Time / Frame : 1mn 24s - 4937.14 ppd
Eff. Time / Frame : 1mn 26s - 4822.33 ppd
.
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby Hyperlife » Fri Nov 14, 2008 5:22 pm

KE1HA wrote:-- Q6600-1-GP1 -- EVGA 9800 GT Stock
Project: 5506 (Run 4, Clone 216, Gen 228)

Min. Time / Frame : 1mn 23s - 4996.63 ppd
Avg. Time / Frame : 1mn 23s - 4996.63 ppd
Cur. Time / Frame : 1mn 23s - 4996.63 ppd
R3F. Time / Frame : 1mn 23s - 4996.63 ppd
Eff. Time / Frame : 1mn 27s - 4766.90 ppd

-- Q6600-1-GP2 -- EVGA 9800 GT Stock
Project: 5506 (Run 2, Clone 239, Gen 222)

Min. Time / Frame : 1mn 23s - 4996.63 ppd
Avg. Time / Frame : 1mn 23s - 4996.63 ppd
Cur. Time / Frame : 1mn 24s - 4937.14 ppd
R3F. Time / Frame : 1mn 24s - 4937.14 ppd
Eff. Time / Frame : 1mn 26s - 4822.33 ppd
.

I'll take this as confirmation that you can run two GPUs at once using the -gpu flag. I'll include this in my next guide revision in a few days.

Congrats on getting it working!
User avatar
Hyperlife
 
Posts: 438
Joined: Sun Dec 02, 2007 7:38 am

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Fri Nov 14, 2008 5:38 pm

Hyperlife wrote:
KE1HA wrote:-- Q6600-1-GP1 -- EVGA 9800 GT Stock
Project: 5506 (Run 4, Clone 216, Gen 228)

Min. Time / Frame : 1mn 23s - 4996.63 ppd
Avg. Time / Frame : 1mn 23s - 4996.63 ppd
Cur. Time / Frame : 1mn 23s - 4996.63 ppd
R3F. Time / Frame : 1mn 23s - 4996.63 ppd
Eff. Time / Frame : 1mn 27s - 4766.90 ppd

-- Q6600-1-GP2 -- EVGA 9800 GT Stock
Project: 5506 (Run 2, Clone 239, Gen 222)

Min. Time / Frame : 1mn 23s - 4996.63 ppd
Avg. Time / Frame : 1mn 23s - 4996.63 ppd
Cur. Time / Frame : 1mn 24s - 4937.14 ppd
R3F. Time / Frame : 1mn 24s - 4937.14 ppd
Eff. Time / Frame : 1mn 26s - 4822.33 ppd
.

I'll take this as confirmation that you can run two GPUs at once using the -gpu flag. I'll include this in my next guide revision in a few days.

Congrats on getting it working!

Yes, I should have clarified that a bit more.

From Step-21, I added the -gpu 0 / 1
Code: Select all
wine Folding@home-Win32-GPU.exe -gpu 0 -verbosity 9 -forcegpu nvidia_g80

then

wine Folding@home-Win32-GPU.exe -gpu 1 -verbosity 9 -forcegpu nvidia_g80

The second system (the dual GPU rig) went without any issues whats so ever and an using dtach made things really smooth.
.
Well done on the guide Hyperlife !!!!
.
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby tmoble » Sat Nov 15, 2008 2:07 am

KE1HA, looks like you've got it cooking along pretty good. Congratulations.

Now, I need a little help if anybody has a minute. My GPU2 glient is down almost 2000PPD from what it was with the old setup with the early wrapper. So, I copied the early wrapper down to my home dir from the wiki, went to install it ran into some unexpected (to me anyway) stuff. I have the GPU2 client running in an SSH window using putty. I can't seem to send stop it from that window. C-A-D is trapped by the Win box, I tried sending it various SIGTERM and SIGHUPs, no good. Opened another window, did a sudo kill -9 2048 (the current pid.) It died, I got ready to copy over the old wrapper but before I could the the GPU client appeared restart itself. There's script stuff in the cudainit I don't completely understand, is that what is re-spawning the client? How do I kill it really?

Along that line, when I rename the current nvcuda.dll.so in /usr/lib/cuda and copy in the older version do I need to re-do the ldd.conf part? Does it like cache code or just remember the filename? Amazing to see how shallow my linux knowledge really is.....
tmoble
 
Posts: 118
Joined: Mon Dec 03, 2007 7:19 am
Location: Glendale, Az

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby tmoble » Sat Nov 15, 2008 9:49 pm

anybody home?
tmoble
 
Posts: 118
Joined: Mon Dec 03, 2007 7:19 am
Location: Glendale, Az

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby shatteredsilicon » Sun Nov 16, 2008 12:15 am

Are you sure you didn't just get one of the dreaded 5748 WUs?
shatteredsilicon
 
Posts: 627
Joined: Tue Jul 08, 2008 2:27 pm

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby Hyperlife » Sun Nov 16, 2008 1:32 am

tmoble wrote:I can't seem to send stop it from that window. C-A-D is trapped by the Win box, I tried sending it various SIGTERM and SIGHUPs, no good. Opened another window, did a sudo kill -9 2048 (the current pid.) It died, I got ready to copy over the old wrapper but before I could the the GPU client appeared restart itself. There's script stuff in the cudainit I don't completely understand, is that what is re-spawning the client? How do I kill it really?

I've never had to kill the client this way... a CTRL-C after reattaching screen always does the trick. Did you just kill the core PID? There is another process that runs the client, and I think it keeps running even if the core is killed. You might have to kill that one too.

tmoble wrote:Along that line, when I rename the current nvcuda.dll.so in /usr/lib/cuda and copy in the older version do I need to re-do the ldd.conf part? Does it like cache code or just remember the filename? Amazing to see how shallow my linux knowledge really is.....

The ldconfig command needs to find the libraries in /usr/local/cuda/lib in order for the wrapper to work. Swapping out the wrapper for another version should not require rerunning ldconfig, since nothing has changed in /usr/local/cuda/lib.
User avatar
Hyperlife
 
Posts: 438
Joined: Sun Dec 02, 2007 7:38 am

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Thu Nov 20, 2008 12:13 am

Hyperlife wrote:15. Create the following script to initialize CUDA without running X:
Code: Select all
nano -w cudainit
Paste the following into the file:
Code: Select all
#!/bin/bash

PATH=$PATH:/usr/local/cuda/bin

modprobe nvidia

if [ "$?" -eq 0 ]; then

# Count the number of NVIDIA controllers found.
N3D=`/usr/bin/lspci | grep -i NVIDIA | grep "3D controller" | wc -l`
NVGA=`/usr/bin/lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i;
done

mknod -m 666 /dev/nvidiactl c 195 255

else
exit 1
fi
To exit nano and save the file, hit CTRL-X.

Question: Will the cudainit script count the number of cores or just physical PCI cards installed on a system, looks like just the PCI cards? I dont have a 9800 GX2 to test with.
.
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby shatteredsilicon » Thu Nov 20, 2008 1:25 am

This is actually a waste of time. Loading the nvidia kernel module will create the device nodes anyway.
shatteredsilicon
 
Posts: 627
Joined: Tue Jul 08, 2008 2:27 pm

Re: NVIDIA GPU2 Linux/WINE Headless Install Guide

Postby KE1HA » Thu Nov 20, 2008 1:30 am

shatteredsilicon wrote:This is actually a waste of time. Loading the nvidia kernel module will create the device nodes anyway.

So once you modprobe nvidia, which could be done anytime during the init.d sequence, it creates the nodes in /dev ?

EDIT: Additionally, how can I count the number of GPU cores, that is what I was after initially.
.
User avatar
KE1HA
 
Posts: 73
Joined: Fri Dec 21, 2007 12:03 am
Location: San Jose, CA

PreviousNext

Return to unOfficial Linux GPU (WINE wrapper) (3rd party support)

Who is online

Users browsing this forum: No registered users and 1 guest

cron