GPU version 1.2 of FREALIGN v8.06

Features:
1) GPU enabled. All the functions of FREALIGN can be carrided out on NVIDIA GPU(s).
2) Multithread embedded. The total number of available GPUs is detected automatically, 
   and then the corresponding CPU threads are created to use all the available GPUs.

System requirements:
1) At least two NVIDIA GPUs (required by the reconstruction). NVIDIA GeForce 
   GTX295 or better is recommended.
2) Linux operating system.  
3) CUDA driver v190.* or newer, CUDA toolkit v2.3 or newer. For CUDA installation
   package and documents, please visit NVIDIA CUDA website:
       http://www.nvidia.com/cuda

Compile:
1) Uncompress the GeFREALIGNv8.tar package.
2) Make sure that g77, CUDA toolkit and gcc have been installed.The CUDA 
   toolkits v2.3 ~ v3.1 don't support gcc 4.4 or newer version. If your gcc 
   version is higher than 4.3, you need to install a lower version (gcc 3.4 is
   recommended), and specify the gcc path by adding the nvcc compiling option
   into "Makefile" in both src_ref and src_rec folders: 
       "--compiler-bindir gccpath/bin " .
3) run "make" in both src_ref and src_rec folders, respectively. The binary executable
   files will be output to ../bin .

Important Notes:
1) It is strongly recommended that the graphic card used for GPU computing by FREALIGN
   does not connect to any monitor. CUDA has a 5 sec executing time limit and the GPU 
   connected to a monitor may be unstable.
2) The box size of particle images should be smaller than 500 pixels.
3) The original FREALIGN integrates both alignment and reconstruction into a single 
   executable file. In this GPU version these two functions are separated and compiled 
   into two executable files. The source codes are kept separately in src_ref and src_rec 
   folders. Otherwise, the usage of the GPU enhanced FREALIGN is exactly same as the 
   original FREALIGN.
4) Because the multithread processing has been embedded, a single FREALIGN process will 
   occupy all the available GPU resources in a computer. So each computer or cluster node 
   can run only one FREALIGN job.


The GPU enable version of FREALIGN was written by Xueming Li at Yifan Cheng Laboratory at UCSF.
It is based on the Fortran code of original FREALIGN, which was developed by Niko Grigorieff
Laboratory. For details of original FREALIGN, please read related documentation. Both original 
and GPU version of FREALIGN are licensed under the terms of the GNU
Public License version 3 (GPLv3).


Update log
#############################################################
2010-06-30:
	1) Replace the MRC library by a simple C++ class, which stablize the read for large image stack file.
	2) Move all the FFTs running on CPU to GPU for reconstruction, which stablizes and accelerates the reconstruction.
	3) Fix bugs to recognize the new generation of Fermi GPU.
	4) Fix bugs in global memory management, which causes crash when using CUDA 3. 
2010-11-09:
   1) Modify some functions to support CUDA v3.2
2011-02-08
	1) Fix bugs to sovle the conflict among multiple GPUs during initialition
