Print current device when initializing gpuarray.
Fixed issue with pow grad function trying to evalutate log at 0. Issue 1780
Added unit test.
Note: issue still occurs in debugmode.
Follow the rename of libgpuarray.
Merge pull request #1825 from abergeron/gpuarray_rename

Follow the rename of libgpuarray.
Fix tests crash for gpuarray back-end. Don't do constant folding with the new op.
Add GpuJoin and GpuSplit to gpuarray.
Try to prevent copy-and-paste of hackish code.
Calling a non-callable is indeed a TypeError, but probably not what we want to test here.
Add optimization to remove single-element joins.
Make c_code() defer to perform if broadcast is required.
Following a change in pygpu to raise a ValueError instead of a GpuArrayException on GA_VALUE_ERROR we can remove workaround code.
Precompile the kernels and embed the binary into the C file.
Fix test.
pep8
pep8
Fix a bad view map to real(float32).

A test is failing in debugmode:
THEANO_FLAGS=mode=DebugMode theano-nose -s --pdb --pdb-failure theano/tensor/tests/test_complex.py:TestRealImag.test_on_real_input
pep8
pep8
Rework the interface to GpuKernelBase to accept a list of kernel object.

Each item will be precompiled separetly and embedded into the c_code
of the Op. This allows ops that need multiple kernels or that will
choose between alternatives at runtime to use this interface.  It also
groups all kernel-related parameters under one object.

This change also save the source of the kernel code to re-attempt
source compilation in case the binary is rejected for some reason
(some implementations do not support reloading from pre-compiled
kernel).

There may still be more changes to how stuff works under the hood
(most notably a blacklist of bad runtime/drivers that crash when
attempting to create a kernel from a binary), but the visible
interface should not change anymore, so now is the time to start using
it more.
Copy a missing test from the cuda ones.