As our GPU-D code uses CUDA for GPU acceleration, it can only run on NVIDIA devices. Currently, we have tested the code with CUDA 4.0, 4.1, 4.2 and 5.0. Here is the command used to compile the code:
nvcc -D_DEBUG -lgomp -arch=compute_11 --compiler-options "-fno-strict-aliasing -Wall -fopenmp" -O3 -o lenser_gpu lensDriver.cpp lensFuncs.cpp help.cpp cudaLens.cu
And here is an example execution call:
./lenser_gpu -k 0.45 -g 0.2 -navg 100 -res 1024
The resulting output map (described below) is included in the download package for comparisons. Executing the code without any options will print a help text explaining each command line argument.
map.bin: the ray-counts per map pixel, represented by a 32-bit integer written in binary format. The size of the file (in Megabytes) can be easily calculated by applying the following formula: 4 x resolution2/10242. The output can be viewed by appropriate programs e.g. od -t d4 map.bin | head in Unix.
The order of the pixels...
mapmeta.dat: properties of the produced magnification map stored in text format for quick access. These are the average magnification, <μ>, the average number of rays per pixel, <N>, the resolution, the map width, and the κ,γ,s values used. One can convert the ray-counts to magnification using the following formula: μ = N <μ>/<N>.
lens_pos.dat: mass (in M⊙) and position coordinates of the microlenses on the lens plane, stored in text format.