8GB should probably be fine unless your application requires a lot of memory.
When you create a buffer using clCreateBuffer, memory is allocated in the FPGA and the host memory systems. This extra copy on the host is transparent to the user and is used any time the FPGA hardware gets swapped out because buffers in the FPGA have to be pulled up to the host then sent back down to the FPGA after the hardware has been replaced. So for example if I had 500MB worth of data to send down to the FPGA, my total system memory requirements would be 1.5GB: 500MB in the FPGA, 500MB mirrored on the host, 500MB user allocated memory containing the actual data.