
 distributed.net client for nVidia CUDA-compatible GPUs
 document revision $Id: readme.cuda,v 1.15 2014/02/23 22:56:01 zebe Exp $

 Welcome to the distributed.net client.

 This document covers information specific to the client for the nVidia
 CUDA-capable video card GPU. Refer to other enclosed documentation or
 browse the online FAQ at <http://faq.distributed.net/> for
 non-platform-specific documentation.

    1.0  Getting started
    2.0  nVidia CUDA specific notes
    3.0  Troubleshooting and known issues

 1.0  Getting started ------------------------------------------------
 
    Just unpack/unzip/untar the client in a directory of your choice and 
    fire it up.

    If you have never run the client before, it will initiate the
    menu-driven configuration. Save and quit when done.

    Then, simply restart the client. From that point on it will use the 
    saved configuration.
    
    The configuration options are fairly self-explanatory and can be run
    at any time by starting the client with the '-config' option.
    A list of command line options is available by starting the client 
    with '-help' or '--help'.

    A complete step-by-step guide to running your first client is 
    available at <http://www.distributed.net/docs/tutor_clients.php>

 2.0  nVidia CUDA specific notes ------------------------------------

    This client requires nVidia CUDA-capable hardware and appropriate
    drivers to be installed.  For a list of GPU hardware that supports
    CUDA, see <http://en.wikipedia.org/wiki/CUDA#Supported_GPUs>

    When installing the CUDA drivers, be sure to download the version
    matching the client build, e.g. CUDA 5.5, 3.1, 3.0, etc.
    When there are separate CUDA builds available for your platform,
    please use the matching driver version!
    Visit <https://developer.nvidia.com/cuda-downloads>

    It is not neccessary to install the CUDA Toolkit as a copy of the
    CUDA runtime library from CUDA Toolkit is bundled with the client.
    You may have to adjust environment variables so that the library is
    found, see below.

    At the moment, our CUDA clients only provide support for RC5-72.
    Due to the nature of OGR, it is difficult to parallelize in a way
    that can make use of the CUDA architecture.

    Our CUDA clients also only execute crunchers on the GPU.  In order
    to utilize the CPUs on your computer, you will need to download
    and run another instance of the standard client from a separate
    subdirectory.


 3.0  Troubleshooting and known issues ------------------------------

    The required nVidia driver version is 256.xx for use with CUDA 3.1
    and 195.xx for CUDA 3.0. While newer drivers might work, older
    versions definitively won't work.


    On Windows Vista platforms, the CUDA client will not be able to
    access the GPU when run as a Service due to operating system
    limitations.  The current workaround is to run the client
    interactively as a logged-in user instead.


    On Linux platforms, you may see errors when running the CUDA
    client on a text-mode system without X11 (init level 3 not 5).
    This usually occurs because the nVidia module has not been
    loaded or the /dev/nvidiactl control file has not been
    initialized.  To make your RHEL/CentOS system automatically
    prepare these things without starting X11, see
    <http://forums.nvidia.com/lofiversion/index.php?t52629.html>
    Similar solutions will be necessary for other distributions.

    You may also encounter problems on Linux platforms if you try
    to run the CUDA client as a non-root user that does not have
    permission to access the /dev/nvidiactl control file.
    Typically membership to the "video" group is used to manage
    access, so you will need to ensure that your UNIX user is a
    member of it.  If uncertain, view the file permissions of
    the /dev/nvidiactl control file.


    For your convenience a copy of the required CUDA runtime
    library (Linux: libcudart.so.3; Mac OS X: libcudart.dylib;
    Windows: cudart.dll) is bundled with the client. For Linux and
    Mac OS X these libraries are located in the lib/ subdirectory.

    If you are unable to execute the dnetc binary because of a missing
    libcudart.so library, you have to set your LD_LIBRARY_PATH environment
    variable (on Linux) or DYLD_LIBRARY_PATH (on Mac OS X) to include
    the 'lib' subdirectory of the extracted client archive prior to
    running dnetc.


    In systems with dual nVidia cards, you must ensure that SLI is
    turned "off" in the driver panel.  On Vista (but not Windows XP),
    you must connect a second monitor (if you're using a flat panel
    and it has a second input, you can use that) to the second card
    and "Extend" your desktop onto that monitor.  You can then
    disconnect the monitor leaving your desktop "extended."  The
    client should then find all GPUs.

