Quick Start#

This guide will help you get started with GeoMX in just a few minutes.

Note

  • Prerequisites: We provide a pre-built Docker image for a quick trial of GeoMX. For this, Docker needs to be installed following this guide.

Pull the Docker Image#

To run on CPUs, use:

sudo docker pull lizonghango00o1/geomx:cpu-only

To run on GPUs with CUDA 8.0, use:

sudo docker pull lizonghango00o1/geomx:cu80

To run on GPUs with CUDA 10.1, use:

sudo docker pull lizonghango00o1/geomx:cu101

Run the Docker Container#

If you’re using the image with tag cpu-only, use the following command to start the container:

sudo docker run -it --rm --name geomx lizonghango00o1/geomx:cpu-only bash

That’s similar for the GPU versions cu80 and cu101, but we need to add the --gpus all option:

sudo docker run -it --rm --name geomx --gpus all lizonghango00o1/geomx:cu101 bash

Run the Demo Scripts#

We provide some example scripts of how to train a deep learning model using GeoMX in the scripts and examples folders.

To quickly start with the vanilla version of GeoMX, run:

# If run on CPUs
cd GeoMX/scripts/cpu && bash run_vanilla_hips.sh

# If run on GPUs
cd GeoMX/scripts/gpu && bash run_vanilla_hips.sh

We also provide scripts for several other optimization techniques, they are:

  1. Bidirectional Gradient Sparsification (Bi-Sparse): bash run_bisparse_compression.sh.

  2. Low-Precision Quantization (FP16): bash run_fp16.sh.

  3. Mixed-Precision Quantization (MPQ): bash run_mixed_precision.sh.

  4. Differential Gradient Transmission (DGT): bash run_dgt.sh.

  5. TSEngine: bash run_tsengine.sh.

  6. Priority-based Parameter Propagation (P3): bash run_p3.sh.

  7. Multi-Server Load Balancing (MultiGPS): bash run_multi_gps.sh.

  8. Mixed-Synchronous Algorithm (MixedSync): bash run_mixed_sync.sh.

  9. Hierarchical Frequency Aggregation (HFA): bash run_hfa_sync.sh.

Warning

NOTE: If you are using the images with tags cu80 and cu101, the first-time initialization of GeoMX may take a few minutes. However, subsequent runs should proceed without delay. This issue is common and can occur with other frameworks like PyTorch and MXNET as well.