Designed for CUDAVersion 2.88 of the Triton Ocean SDK is available now, with lots of improvements. One big change is that we are now building Triton against NVidia’s CUDA Toolkit version 6.0 instead of version 4.2. This fixes a bug in 4.2 that was affecting our customers who were using more than one Triton::Ocean object at once.

CUDA is NVidia’s framework for general purpose GPU computing – it’s what lets us compute tens of thousands of waves at hundreds of frames per second on NVidia-based systems. (If you’re on an AMD, Intel, or other system – don’t worry; Triton has fallbacks on those platforms that don’t require CUDA.)

However, this change has a few implications for our customers:

  • CUDA acceleration requires a NVidia graphics driver that includes CUDA 6.0 support – that means at least driver version 331.62 needs to be installed on your system, and your end users’ systems, in order for CUDA to be used.
  • If you are debugging with Visual Studio and have it set up to break on exceptions, you’ll end up breaking in the debugger three times at startup. This is because NVidia’s CUFFT library throws a “first chance exception” in Visual Studio when it is initialized, and we set it up three times. First chance exceptions are special Microsoft-specific exceptions that cannot be caught, so all you can do is hit “continue” each time or disable breaking on exceptions in your Visual Studio settings. NVidia has said this exception is safe to ignore.
  • If you are building Triton from source code, you will need to un-install the CUDA 4.2 Toolkit and install the CUDA 6 Toolkit instead.
  • CUDA 6 no longer supports Visual Studio 2005. If you’re stuck on this version of Visual Studio, CUDA acceleration won’t be available.

We haven’t measured any performance impact – positive or negative – going from CUDA 4.2 to CUDA 6.0, but it’s something we had to do in order to make Triton as stable as it can be.

If you encounter problems, please let us know. We are keeping copies of the 2.87 Triton SDK’s built with CUDA 4.2, available on request, just in case people need them.