Worker

System requirements

Check this before you install. A Pendra worker runs on macOS, Windows, and Linux, with or without a GPU.

At a glance

Requirement
Operating systemmacOS 12 (Monterey) or later, Windows 10 / Server 2016 or later, or Linux with glibc 2.38+ (Ubuntu 24.04+, Debian 13+)
Processor64-bit x86_64, or ARM64 on Apple Silicon and Linux. Intel Macs are not supported.
GPUOptional, but strongly recommended. NVIDIA, AMD, Intel, or Apple Silicon — see which build to use
GPU driverNVIDIA: driver R580 or newer, installed and loaded. On Linux, also the CUDA 13 runtime. AMD / Intel: your vendor's graphics driver, which provides Vulkan. Apple Silicon needs nothing.
MemoryEnough GPU memory for the model you install — 4 GB and up. Host RAM at least as large as your biggest GPU.
Disk4–80 GB per model, plus a few hundred MB for the worker
NetworkOutbound HTTPS on port 443. No inbound ports.

Before you install

Everything the worker needs to run models is bundled with it, with one exception: GPU drivers, which you install yourself. Do that first — the installer checks for the driver your chosen GPU build needs and stops if it isn't there, so a driverless host can't quietly end up running every request on the CPU.

macOSWindowsLinux
Minimum versionmacOS 12 (Monterey)Windows 10 / Server 2016glibc 2.38+ — Ubuntu 24.04+, Debian 13+
ArchitectureApple Silicon onlyx86_64x86_64 or ARM64
Install firstNothingNVIDIA: driver R580+, then reboot. AMD / Intel: your graphics driverNVIDIA: driver R580+ and the CUDA 13 runtime. AMD / Intel: a Vulkan driver
You download.dmgPendraSetup.exeapt / yum repo, .deb / .rpm, or Docker

The install guide has the exact commands. Every installer refuses to install a GPU build the machine can't run, so you can't end up with a GPU that never gets used: on Linux pendra-cuda requires the CUDA 13 runtime and pendra-vulkan requires a Vulkan driver, and on Windows the setup wizard won't accept a GPU option whose driver is missing or too old. The CUDA runtime itself is bundled on Windows, so there a driver is all you need.

Which GPU build to use

Your GPUBuildNotes
NVIDIA GTX 16-series, RTX 20/30/40/50-series, A / L / H data-centre cardsCUDAThe production recommendation. Confirm the driver with nvidia-smi — it should list your GPU and a CUDA version.
NVIDIA GTX 10-series and olderVulkanThe CUDA build has no kernels for these cards. If you force CUDA onto one, models install but every request fails.
AMD or IntelVulkan
Apple SiliconNothing to chooseMetal acceleration is built in.
No GPUCPUSupported, but slow. Fine for embeddings and small chat models; not for 70B-class.

Two gaps to know about if you need image generation: it isn't available on ARM64 Linux, and on Windows an NVIDIA host generates images on the CPU or through Vulkan rather than CUDA. Chat, embeddings, and transcription are unaffected.

How much memory do I need?

This is set by the model you install, not by Pendra. As a rough guide, at the default quantization:

GPU memoryLargest model that runs comfortably
8 GB8–9B — qwen3.5:9b is ~6.6 GB
12 GB12–14B — gemma4:12b is ~7.8 GB
16 GB20B — gpt-oss:20b is ~12 GB
24 GB27–35B — qwen3.6:27b is ~18 GB
48 GB70B — llama3.3:70b is ~43 GB
80 GB and up109–123B

Leave headroom above the model's size — the context window needs memory too. On Apple Silicon, where the GPU and CPU share one pool, budget around 70% of total memory. A few other rules:

  • Give the host at least as much system RAM as your largest GPU's VRAM. Models load through memory on their way to the GPU, and a host with less has to page them in from disk, which makes cold loads slow and unpredictable.
  • Vision and image models must fit on a single GPU. They can't be split across cards, so a box with 2×24 GB serves them as a 24 GB machine.
  • A chat model that's too big still runs — the worker keeps what fits on the GPU and runs the rest on the CPU, more slowly. See choosing a model size.

Disk

The worker itself is small; models are what take space. Expect 4–80 GB per model. Pendra checks free space before downloading and refuses an install that wouldn't fit. Models are stored in:

InstallModels directory
macOS, and Linux installed for one user~/.pendra/models
Linux .deb / .rpm package/var/lib/pendra/models
Windows%ProgramData%\Pendra\models

Point it somewhere with more room — a second drive, say — by setting models_dir in the worker's config file.

Network

The worker makes outbound HTTPS connections on port 443 to api.pendra.ai (the connection that carries inference requests) and get.pendra.ai (model downloads and updates). No inbound ports need to be open — the worker never listens on the network, so it's safe behind NAT or a restrictive firewall. Standard HTTPS_PROXY and NO_PROXY environment variables are honoured.

Check the machine

Run pendra doctor after installing. It reports a missing or unloaded GPU driver, a GPU too old for the CUDA build, an OS whose glibc is too old, and any model that won't fit — so you catch a host that's quietly running on the CPU before you send it traffic.

Related