--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
NVIDIA CUDA 
Release Notes
Version 0.8
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Display Driver Note
--------------------------------------------------------------------------------
This build (0.8) of CUDA has only been verified to work on 
Driver version 97.73 which is posted along with the CUDA 
package. You can use other driver versions at your own risk.

--------------------------------------------------------------------------------
Known Issues
--------------------------------------------------------------------------------

o Individual GPU program launches are limited to a run time 
  of less than 5 seconds on the device.  Exceeding this time 
  limit usually causes a launch failure reported through the
  CUDA driver or the CUDA runtime, but in some cases hangs 
  the entire machine, requiring a hard reset.  Microsoft Windows 
  has a "watchdog" timer that causes programs using the primary
  graphics adapter to time out if they run longer than the 
  maximum allowed time.  For this reason it is recommeded that
  CUDA is run on a G80 that is NOT attached to a display and 
  does not have the Windows desktop extended onto it.  In this
  case, the system must contain at least one NVIDIA GPU that
  serves as the primary graphics adapter.

o D3D interoperability is limited, in that only a single VBO 
  can be registered at any given time.

o Manual loading of CUDA DLLs or third party DLLs using the 
  CUDA runtime via the LoadLibrary function is not supported.
  Progam crashes result when manual loading is attempted.

o When two 8800GTX GPUs are run in SLI mode, cudaGetDeviceCount()
  correctly reports a single device, but cudaDeviceProperties() 
  only returns the amount of memory on the first card, instead
  of the total amount of memory installed on both cards used for
  SLI.

o CUDA will not work in full-screen DOS mode since the display 
  driver is unloaded.

o When CUDA applications are run on a GPU that does not have a
  display attached, and a GPU exception occurs, the exception
  is not reported unless the windows desktop has been expanded 
  onto that device.

o All code for an application, including any libraries used,
  must be built consistently either for device or for device
  emulation.  Linking code built for device with code built
  for device emulation causes the following CUDA runtime error
  to be returned upon initialization: cudaErrorMixedDeviceExecution

o The front end of the compiler processes CUDA source files 
  according to C++ syntax rules. However, only the C subset
  of C++ is supported. This means that C++ specific features 
  such as classes, inheritance, or declaration of variables 
  within basic blocks are not supported. As a consequence of
  the use of C++ syntax rules, void pointers (e.g. returned 
  by malloc()) cannot be assigned to non-void pointers without 
  a typecast.

o When building on Windows, the compiler silently ignores the
  MSVC-specific keywords __ptr64 and __ptr32.

o The compiler does not emit error messages in a format that 
  can be processed by the Microsoft Visual Studio environment.

o When using arrays, if the format is anything other than univariate
  float, you need to specify the format with a call to
  cuTexRefSetFormat. (The information specified in the texture
  declaration in the .cu file is not properly propagated into the
  final binary)

o There is an outstanding issue with the driver's texref
  handling that makes it only fix dirty texture state on
  cuParamSetTexRef, so if you change anything about the texture
  reference (e.g. address mode), you need to call cuParamSetTexRef
  again for the state change to stick. For now the safest thing to do
  is call it just before the launch
 


--------------------------------------------------------------------------------
Frequently Asked Questions
--------------------------------------------------------------------------------

 Q: Does CUDA support Double Precision Floating Point arithmetic?

 A: CUDA supports the C "double" data type.  However on G80
    (e.g. GeForce 8800) GPUs, these types will get demoted to 32-bit
    floats.  NVIDIA GPUs supporting double precision in hardware will
    become available in late 2007.


Q: I compile the CUDA examples using Visual C++ on Windows XP without
   a problem, but when I run the resulting executables, I get an error
   message: "The application failed to initialize properly
   (0xc0000022)."

A: This problem is associated with improper permissions on the DLLs
   (shared libraries) that are linked with your CUDA executables. All
   DLLs must be executable. The most likely problem is that you
   unzipped the CUDA distribution with cygwin's "unzip", which sets
   all permissions to non-executable.  Make sure all DLLs are set to
   executable, particularly those in the CUDA_BIN directory, by
   running the cygwin command "chmod +x *.dll" in the CUDA_BIN
   directory. Alternatively, right-click on each DLL in the CUDA_BIN
   directory, select Properties, then the Security tab, and make sure
   "read & execute" is set.  For more information:
   http://www.cygwin.com/ml/cygwin/2002-12/msg00686.html

--------------------------------------------------------------------------------
Open64 Sources
--------------------------------------------------------------------------------

The Open64 source files controlled under terms of the GPL license are
located via anonymous ftp at download.nvidia.com in file:
\CUDAOpen64\nvopencc-src-beta-0.8.tar.gz.

--------------------------------------------------------------------------------
More Information
--------------------------------------------------------------------------------

  For more information and help with CUDA, please visit
  http://forums.nvidia.com
