# GPU & acceleration

How Eugo moves heavy numeric work onto GPUs without code changes.

Source: https://university.eugo.io/topics/gpu-acceleration

---

## Courses

- [GPU acceleration on Eugo](https://university.eugo.io/courses/gpu-acceleration-on-eugo.md): How work reaches the GPU, which operations benefit, and how to confirm it actually happened.
- [How automatic optimizations work](https://university.eugo.io/courses/how-automatic-optimizations-work.md): Eugo rewrites and tunes your code as it runs. Here is what it does, and how to help it.

## Videos

- [Requesting GPUs per task](https://university.eugo.io/videos/requesting-gpus-per-task.md): Use .options() to ask for GPUs on the calls that need them, and only those.
- [Automatic GPU offloading](https://university.eugo.io/videos/automatic-gpu-offloading.md): Which array operations Eugo moves to the GPU on its own, and how to confirm it happened.

## Checklists and guides

- [Performance tuning checklist](https://university.eugo.io/resources/performance-tuning-checklist.md): Work through the usual causes when a distributed run is slower than expected.
- [Quick guide: ML engineer](https://university.eugo.io/resources/quick-guide-ml-engineer.md): GPUs, per-call resource requests, and which optimizations the runtime applies on your behalf, plus how to confirm work actually reached the GPU.

## Vocabulary

- **ARM Neoverse** — The ARM server processor architecture Eugo’s compute nodes are built on, chosen for performance per watt on numeric workloads.
- **GPU offloading** — Moving computationally intensive operations onto a GPU. Eugo applies this automatically when a GPU is available and the data transfer is worth its cost.
- **GPU** — A graphics processing unit. Hardware with many parallel cores, well suited to large array and matrix operations.
- **options()** — The method that sets per-call resource requirements on a distributed function, such as num_cpus or num_gpus.
- **Automatic optimization** — Transformations Eugo applies to your code as it runs: vectorization, GPU offloading, and low-level tuning, with no annotation from you.
- **Transfer cost** — The time spent moving data between machines, or between host and GPU memory. Often the reason an operation is not worth accelerating.

