OpenCL and multi GPU cards (GTX 295)

I currently have an OpenCL application running on a GTX 280, but is considering getting a GTX 295 instead and have some questions about it.

How are multi GPU cards, such as the 295, handled in OpenCL? Are the two GPUs hidden behind some form of abstraction, or is it more similar to having two separate cards?
My current card have 1GB of memory and the 295 has 1792MB, which is the main reason for the upgrade. Will I be able to allocate all that memory and use it between the GPUs, or will data have to be stored twice, once for each GPU?
Do I have to make any changes to my application to get any speed-up from the new card?

Just consider a GTX 295 as two separated cards, using a PCI-express bridge. In fact this is exactly what a GTX295 is.

So there’s 2 GPU, each one with IT’S 896MB physical memory, each GPU using only it’s memory the same way 2 separate graphic cards works. Any Data that must be used by both GPU will need to be stored on both video-ram, doubling used space.

Depends on your application and OpenCL platform, usually you don’t need to do anything at all, each GPU will be recognized separately and you will usually double the GPU performance-level if PCI-express bandwidth is not an issue.