In local_gpu_careduce, remove dimensions that is now detected as rebroadcastable, but wasn't during graph build.
First step, having something that works.
Address comments.
Add a test for the op version (but not for grad yet).
Add tests for the grad of the op version (which is broken for now).
Fix shape errors in the gradient (but it's still not the right value).
Add tests for grad shape.
Some improvements to the gradient, but it's still transposed and partially wrong.
Fix the the gradient on W.  Finally.
Fix the crash on exit with pycuda.
Fix last bug.
Use the non-scan version by default, since it's faster.
Add inplace optimizations.
Don't try to use opt when cuda is not available.
Add test to check that the inplace opts are working.
And make the opt test work.
Fix crash when cxx="" and g++ is present.
fix import problem.
remove duplicate variable not used. They are already in self.
Add some code to help the development of the scan cython file.
pep8