Differences between revisions 3 and 4
Revision 3 as of 2011-07-11 12:35:13
Size: 2326
Editor: SteveLudtke
Comment:
Revision 4 as of 2017-06-02 12:01:32
Size: 845
Editor: SteveLudtke
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
--- Note : We now have rewritten CUDA support to work with current CUDA versions. However, for most tasks, the current speedup is not worth the effort of using it. However, if you are doing single particle tomography, the speedup can be quite substantial. We have implemented direct GPU support in EMAN2 twice, but sadly even this second implementation is now obsolete. While we may, indeed, make a third GPU implementation for specific tasks, for now the only GPU use in EMAN2 is via Python libraries which already support GPU. Specifically, the new neural networking code for particle picking, heterogeneity analysis and automatic tomogram segmentation all make use of Theano which is fully GPU enabled.
Line 5: Line 5:
--- Note : We do not distribute CUDA binaries due to many many problems with cross-platform compilation, versioning, etc. This may change in future, but for now to experiment with CUDA, you will need to compile from source. To make use of this, or any other GPU capabilities we manage to implement, you will need to have a current version of CUDA installed and working on your computer. More details are available on the
[[http://blake.bcm.edu/emanwiki/EMAN2/Programs/tomoseg|Tomogram Segmentation Tutorial]] page.
Line 7: Line 8:
This technique makes use of the GPU (graphics processing unit) common in most modern PC's, to dramatically
accelerate many image processing algorithms. At present (summer 2010) we have implemented GPGPU support for a significant number of algorithms in the
EMAN2 core (~20-30) using Nvidia's CUDA infrastructure. Implementing GPU support in a massive image processing library like EMAN2 is a major undertaking,
and optimizing the entire image processing pipeline requires further efforts. At the present time, only a handful of these algorithms have been fully optimized.
While you can build EMAN2 with CUDA support now, overall throughput on something like 3-D refinement is not significantly faster than just using multiple cores
on the CPU. That is, if you have a typical quad-core CPU machine and a typical Nvidia graphics card, at the moment, you might as well just use your 4 cores with
the --parallel option. We expect this situation to change over coming months...

If you wish to experiment with CUDA support in EMAN2, there are several steps:
 * you will need to be able to build EMAN2 from source on your local machine
 * run e2speedtest.py to establish a baseline for your CPU (1 core)
 * you will need to install and test the CUDA drivers and SDK from Nvidia
 * enable the CUDA flag using ccmake in EMAN2, and recompile
 * run e2speedtest.py again to compare general performance with the GPU (1 GPU processor)

Eventually we may migrate to the more cross-GPU compatible OpenCL, but at the moment, reports are that performance suffers considerably as compared to CUDA.

Also note that as of July 2010, using CUDA on the Mac is quite tricky, since Snow Leopard (10.6) is 64 bit, and EMAN2 and dependencies are normally compiled
as 64-bit, but CUDA at present only supports 32-bit.
We will update this page as we implement any new GPU capabilities.

GPGPU Computing

We have implemented direct GPU support in EMAN2 twice, but sadly even this second implementation is now obsolete. While we may, indeed, make a third GPU implementation for specific tasks, for now the only GPU use in EMAN2 is via Python libraries which already support GPU. Specifically, the new neural networking code for particle picking, heterogeneity analysis and automatic tomogram segmentation all make use of Theano which is fully GPU enabled.

To make use of this, or any other GPU capabilities we manage to implement, you will need to have a current version of CUDA installed and working on your computer. More details are available on the Tomogram Segmentation Tutorial page.

We will update this page as we implement any new GPU capabilities.

EMAN2/Gpu (last edited 2020-02-14 17:23:25 by SteveLudtke)