GPU

From Dynamo
Jump to navigation Jump to search

GPU stands for "Graphic Processing Unit"


Installation

A regular distribution of Dynamo will include GPU precompiled GPU executables. As they need to be linked to libraries that might not be present in your system, it is advised that you recompile them: After untarring the tar package in location DYNAMO_ROOT, go to cd DYNAMO_ROOT and make certain that you have CUDA active in your shell, for instance look for the NVIDIA nvcc compiler. which nvcc If this is succcessful run source config.sh This will automatically edit the makefile file in the folder, informing it on the location of CUDA in your system. Then you can just type make clean to delete the executables in the distribution, and then make all to recompile the executables in your system.

CUDA libraries

You need to have CUDA installed on your system. This might require coordinating with your system administrator.


Versions

Dynamo has been tested with most CUDA versions. CUDA 7.0 was found to show problems in the Fourier transform libraries: don't use it. We advice to use the highest available CUDA libraries, at least CUDA 7.5 per 18/04/2016.

Testing your system

In the Linux shell type: nvidia-smi to get a list of the GPU devices that your system is seeing, their status and the jobs currently running. This order also shows the device number assigned by the system to each device, which you need to enter in a Dynamo project through the parameter gpu_identifier_set

Speed up

This iis of course highly dependent on the system: which GPUs you are comparing against which CPU cores.

It also depends on the particle size and on the number of angles scanned per particle (higher number will yield higher speed up factors, i.e., the more intensive a computation, the more favorable for GPU)

Using the GPU in an alignment project

Your execution environment should include a LD_LIBRARY_PATH environment variable that includes the location of the CUDA libraries. You probably need to inform your UNIX shell with the command:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda75/lib

(replace with the location of the CUDA libraries in your system). Also if you are going to work under Matlab you should update your LD_LIBRARY_PATH variable in the Linux shell before starting Matlab.

With the dcp GUI

With the command line

There are two project parameters related the the GPU: the destination parameter and the gpu_identifier_set parameter.

The destination must be set to matlab_gpu (to run projects inside Matlab) or to system_gpu