- Modified the lazy_allocator so that it doesn't syncronize CUDA   streams before calling the user's callback.
- Modified the lazy_allocator so that it doesn't syncronize CUDA
  streams before calling the user's callback.

- Added a parameter that the user can check in the reset callback
  handler to see if the program is exiting, or if the device is being
  reset as a result of an explicit CUDA reset or "thread exit" call.
  Sorry, this requires changing all the instrumentation libraries.
  This is in response to issue #4.  The problem was that the reset
  handler was calling CUDA runtime calls while the driver was shutting
  down.  If the program is exiting, then there is no guarantee that
  the driver is still loaded and active, so a handler can now check
  this before issuing CUDA calls.

NVlabs/SASSI