Differences between revisions 10 and 13 (spanning 3 versions)
Revision 10 as of 2025-05-07 11:44:58
Size: 5052
Editor: SteveLudtke
Comment:
Revision 13 as of 2025-05-07 12:46:03
Size: 4809
Editor: SteveLudtke
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
While the binaries on this page are fine, if you install from source, then you can rapidly update when we make small patches to the code. Code is being developed continuously, and binaries are built only every few months. While the binaries on this page are fine, if you [[EMAN2/Install/SourceInstall|install from source]], then you can rapidly update when we make small patches to the code. Code is being developed continuously, and binaries are built only every few months.
Line 8: Line 8:
 * ''To use this approach, you must first have Anaconda or [[https://github.com/conda-forge/miniforge/releases|MiniForge]] (for your platform) installed.'' We suggest the open-source MiniForge to avoid licensing issues with Anaconda)
 * On M1/M2 Macs, make sure you have the ARM64 !MiniForge, not Intel.
 * On Windows 11 machines, the native Windows !MiniForge will not work, you must use the Linux !MiniForge within a [[https://learn.microsoft.com/en-us/windows/wsl/install|WSL2]] environment!
 1. '''Install Anaconda or [[https://github.com/conda-forge/miniforge/releases|MiniForge]]''' (for your platform)
  * On that page, scroll down to the Latest Release, then download the appropriate file, for example: Miniforge3-Linux-x86_64.sh
  * Run the installer, for example: bash Miniforge3-Linux-x86_64.sh
  * ''On
M1/M2 Macs:'' make sure you have the ARM64 !MiniForge, not Intel.
  * ''On Windows 11:'' the native Windows !MiniForge will not work, you must use the Linux !MiniForge within a [[https://learn.microsoft.com/en-us/windows/wsl/install|WSL2]] environment!
  * We suggest !MiniForge to avoid licensing issues with Anaconda, but if your institution subscribes to Anaconda, that's fine too. If you use Anaconda, you may need to install Mamba manually below.
Line 12: Line 15:
 1. '''Update (optional):''' You may wish to consider updating !MiniForge before installing:
 {{{
conda update --all
}}}
 but consider possible impact on other conda environments you may have configured if this is not a new !MiniForge install.
 1. '''Install mamba (optional):''' The default '''conda''' tool used to install packages in conda sometimes gets stuck trying to check dependencies. The alternative '''mamba''' installer does a much better job, but sometimes mamba itself can have installation issues, as it's a conda-forge package. If you have difficulties with the next step getting stuck, you may try replacing '''conda''' with '''mamba''' :
 1. '''Install mamba (only if necessary):'''
  * if you just installed MiniForge above, you will already have mamba. If you have your own Anaconda installation, you may need this step
Line 21: Line 20:
 1. '''Install:''' We strongly recommend installing EMAN2 within its own !MiniForge [[https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html|environment]] like this:
 1. '''Update (optional):''' consider updating Anaconda/!MiniForge before installing. It's a good idea to do this periodically:
 {{{
mamba update --all
}}}
 but if you have many other (non-EMAN) environments, you may consider if this will impact them.

 1. '''Install EMAN2:''' We strongly recommend installing EMAN2 within its own !MiniForge [[https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html|environment]] like this:
Line 33: Line 39:
 1. '''M1/M2 Macs (Optional):''' initial support for Tensorflow on the GPU is available via PyPi, but not conda.
 {{{
# with the eman2 environment activated
pip install tensorflow-metal
}}}
Line 39: Line 41:
Line 45: Line 48:
# Opens a browser window you can use to view any EMAN2 compatible file in various ways # Opens a browser window you can use to view any EMAN2 compatible file in various ways. Close the main window when done.
Line 54: Line 57:
=== Using NVidia GPUs ===
Currently, GPUs are only used for a few specific programs involving deep learning, such as tomogram annotation, particle picking and GMM variability analysis.
== GPU Aceleration & Deep Learning ==
Older EMAN2 programs make use of Tensorflow for Deep Learning/GPU support, but we have been gradually migrating to the new JAX library, so having both installed is strongly suggested.
Line 57: Line 60:
This support is limited to Linux, and (potentially with some extra effort) Win 11 with an LSW2 installation.  * Tensorflow
  * Should be installed automatically as part of the EMAN2 environment setup above
  * You can check to see what version of Tensorflow and whether it is GPU accelerated with: "conda list|grep tensorflow". On a machine with an NVIDIA GPU and properly configured drivers, you should see a tensorflow version like "2.17.0 cuda120py312h02ad488_203". This says that you are using the CUDA 12.0, Python 3.12 version of tensorflow 2.17.0. If you see "cpu" instead of "cuda" then you do not have GPU acceleration, and you will need to sort that out.
 
 * JAX
  * While it is possible to install JAX using conda/mamba, it can be difficult to find a version of GPU JAX and a version of GPU Tensorflow which will install properly together this way.
  * Instead, we strongly suggest just installing JAX using pip:
   * conda activate eman2
   * Linux (NVIDIA): pip install jax[cuda12]
   * Other (cpu): pip install jax
  * see [[https://pypi.org/project/jax/]] for up to date JAX instructions, this may change more frequently than this page is updated
Line 59: Line 72:
Many machines will have CUDA installed already, and if CUDA is an appropriate version, this should work fine with the !TensorFlow version shipped with EMAN2. However, if you are running newer versions of CUDA there may be problems. You can test compatibility quickly with:
{{{
# Make sure you have your environment set to run EMAN2 programs
e2version.py
# The above command should work and return your current version. If it does, then run:
python -c "import tensorflow"
}}}

If this command does not return an error, then you should be able to run deep learning software within EMAN2. If it does raise an error, then you will need to debug the problem:

 * If you do not have CUDA installed at all (and you are on a Linux machine with an NVidia GPU):
   * Installation depends on linux distribution, try your package manager for CUDA and/or CUDA-toolkit, for example, on Ubuntu:

   {{{
apt-get install nvidia-cuda-toolkit
}}}
 * If the version of CUDA you have installed is incompatible, then you will need to get a compatible tensorflow installed in your conda environment. Here is one possible suggestion:
 {{{
conda remove tensorflow-gpu tensorflow-gpu-base
pip install tensorflow
# read any messages carefully, if there are errors you may need other installations
}}}
If you need to test the basic tensorflow installation: ''$CONDA_PREFIX/examples/test_tensorflow_basic.py''

EMAN2 Installation

For up-to-date binary installations you must use the instructions on this page. The old binary installation images were retired in late 2023. They are still available for historical purposes, but are no longer updated.

While the binaries on this page are fine, if you install from source, then you can rapidly update when we make small patches to the code. Code is being developed continuously, and binaries are built only every few months.

Install binary into Anaconda/MiniForge environment (all platforms)

  1. Install Anaconda or MiniForge (for your platform)

    • On that page, scroll down to the Latest Release, then download the appropriate file, for example: Miniforge3-Linux-x86_64.sh
    • Run the installer, for example: bash Miniforge3-Linux-x86_64.sh
    • On M1/M2 Macs: make sure you have the ARM64 MiniForge, not Intel.

    • On Windows 11: the native Windows MiniForge will not work, you must use the Linux MiniForge within a WSL2 environment!

    • We suggest MiniForge to avoid licensing issues with Anaconda, but if your institution subscribes to Anaconda, that's fine too. If you use Anaconda, you may need to install Mamba manually below.

  2. Install mamba (only if necessary):

    • if you just installed MiniForge above, you will already have mamba. If you have your own Anaconda installation, you may need this step

    conda install mamba -c conda-forge
  3. Update (optional): consider updating Anaconda/!MiniForge before installing. It's a good idea to do this periodically:

    mamba update --all
    but if you have many other (non-EMAN) environments, you may consider if this will impact them.
  4. Install EMAN2: We strongly recommend installing EMAN2 within its own MiniForge environment like this:

    conda create -n eman2 eman-dev -c cryoem -c conda-forge

    Current version:

    https://anaconda.org/cryoem/eman-dev/badges/version.svg https://anaconda.org/cryoem/eman-dev/badges/latest_release_date.svg https://anaconda.org/cryoem/eman-dev/badges/downloads.svg

    https://anaconda.org/cryoem/eman-dev/badges/platforms.svg

  5. Activate to Use: Any time you want to use EMAN2 you will need to first activate the correct environment. You can deactivate when done.

    conda activate eman2
  6. Linux: see the GPU section below.

  7. Run these programs to see if the install worked:
       1 # This will display the exact version you have installed. If you ask for help, provide the full output of this command.
       2 e2version.py
       3 # Relative speed factor of a single core on your computer, 2-3 typ.
       4 e2speedtest.py
       5 # Opens a browser window you can use to view any EMAN2 compatible file in various ways. Close the main window when done.
       6 e2display.py
       7 # Creates a small image with a circle in the middle of it
       8 e2proc2d.py :64:64:1 test.hdf --process mask.sharp:outer_radius=24
       9 # Displays the file you just created
      10 e2display.py test.hdf
    

GPU Aceleration & Deep Learning

Older EMAN2 programs make use of Tensorflow for Deep Learning/GPU support, but we have been gradually migrating to the new JAX library, so having both installed is strongly suggested.

  • Tensorflow
    • Should be installed automatically as part of the EMAN2 environment setup above
    • You can check to see what version of Tensorflow and whether it is GPU accelerated with: "conda list|grep tensorflow". On a machine with an NVIDIA GPU and properly configured drivers, you should see a tensorflow version like "2.17.0 cuda120py312h02ad488_203". This says that you are using the CUDA 12.0, Python 3.12 version of tensorflow 2.17.0. If you see "cpu" instead of "cuda" then you do not have GPU acceleration, and you will need to sort that out.
  • JAX
    • While it is possible to install JAX using conda/mamba, it can be difficult to find a version of GPU JAX and a version of GPU Tensorflow which will install properly together this way.
    • Instead, we strongly suggest just installing JAX using pip:
      • conda activate eman2
      • Linux (NVIDIA): pip install jax[cuda12]
      • Other (cpu): pip install jax
    • see https://pypi.org/project/jax/ for up to date JAX instructions, this may change more frequently than this page is updated

If you need to test the basic tensorflow installation: $CONDA_PREFIX/examples/test_tensorflow_basic.py

If you have problems you cannot figure out, feel free to post questions to the EMAN2 Google Group.

EMAN2/Install/CondaInstall (last edited 2025-05-07 13:08:12 by SteveLudtke)