Theano/Theano — pull request #922 by mrocklin (2012-09-13 12:11:51+00:00)
Title: WIP - Asynchronous GPU

This pull request introduces safe asynchronous GPU computation and communication. It uses [cudaEvents](http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDART__EVENT.html) for synchronization.

TODO

1. Test current implementation
2. ~~Create a local optimization to perform the split~~
3. ~~Create a PyObject to wrap `cudaEvent_t`~~
4. Add more inputs/outputs to Waits/Sends to handle garbage collection
5. Register the optimization correctly
6. Add destructor and reference counting to cudaEvent PyObj
7. Remove old sync calls
8. Replace sync communication kernel calls with async ones