This guide helps you build Meetily on Linux with automatic GPU acceleration. The build system detects your hardware and configures the best performance automatically.
If you're new to building on Linux, start here. These simple commands work for most users:
# Ubuntu/Debian
sudo apt update
sudo apt install build-essential cmake git
# Fedora/RHEL
sudo dnf install gcc-c++ cmake git
# Arch Linux
sudo pacman -S base-devel cmake git# Development mode (with hot reload)
./dev-gpu.sh
# Production build
./build-gpu.shThat's it! The scripts automatically detect your GPU and configure acceleration.
- ✅ NVIDIA GPU → CUDA acceleration (if toolkit installed)
- ✅ AMD GPU → ROCm acceleration (if ROCm installed)
- ✅ No GPU → Optimized CPU mode (still works great!)
💡 Tip: If you have an NVIDIA or AMD GPU but want better performance, jump to the GPU Setup section below.
The build scripts (dev-gpu.sh and build-gpu.sh) orchestrate the entire build process. They first call scripts/auto-detect-gpu.js to identify your hardware, then build the llama-helper sidecar with the appropriate features, and finally launch the Tauri application.
| Priority | Hardware | What It Checks | Result |
|---|---|---|---|
| 1️⃣ | NVIDIA CUDA | nvidia-smi exists + (CUDA_PATH or nvcc found) |
--features cuda |
| 2️⃣ | AMD ROCm | rocm-smi exists + (ROCM_PATH or hipcc found) |
--features hipblas |
| 3️⃣ | Vulkan | vulkaninfo exists + VULKAN_SDK + BLAS_INCLUDE_DIRS set |
--features vulkan |
| 4️⃣ | OpenBLAS | BLAS_INCLUDE_DIRS set |
--features openblas |
| 5️⃣ | CPU-only | None of the above | (no features, pure CPU) |
| Your System | Auto-Detection Result | Why |
|---|---|---|
| Clean Linux install | CPU-only | No GPU SDK detected |
| NVIDIA GPU + drivers only | CPU-only | CUDA toolkit not installed |
| NVIDIA GPU + CUDA toolkit | CUDA acceleration ✅ | Full detection successful |
| AMD GPU + ROCm | HIPBlas acceleration ✅ | Full detection successful |
| Vulkan drivers only | CPU-only | Vulkan SDK + env vars needed |
| Vulkan SDK configured | Vulkan acceleration ✅ | All requirements met |
💡 Key Insight: Having GPU drivers alone isn't enough. You need the development SDK (CUDA toolkit, ROCm, or Vulkan SDK) for acceleration.
Want better performance? Follow these guides to enable GPU acceleration.
Prerequisites: NVIDIA GPU with compute capability 5.0+ (check: nvidia-smi --query-gpu=compute_cap --format=csv)
# Ubuntu/Debian (CUDA 12.x)
sudo apt install nvidia-driver-550 nvidia-cuda-toolkit
# Verify installation
nvidia-smi # Shows GPU info
nvcc --version # Shows CUDA version# Set your GPU's compute capability
# Example: RTX 3080 = 8.6 → use "86"
# Example: GTX 1080 = 6.1 → use "61"
CMAKE_CUDA_ARCHITECTURES=75 \
CMAKE_CUDA_STANDARD=17 \
CMAKE_POSITION_INDEPENDENT_CODE=ON \
./build-gpu.sh💡 Finding Your Compute Capability:
nvidia-smi --query-gpu=compute_cap --format=csvConvert
7.5→75,8.6→86, etc.
Why these flags?
CMAKE_CUDA_ARCHITECTURES: Optimizes for your specific GPUCMAKE_CUDA_STANDARD=17: Ensures C++17 compatibilityCMAKE_POSITION_INDEPENDENT_CODE=ON: Fixes linking issues on modern systems
Vulkan works on NVIDIA, AMD, and Intel GPUs. Good choice if CUDA/ROCm don't work.
# Ubuntu/Debian
sudo apt install vulkan-sdk libopenblas-dev
# Fedora
sudo dnf install vulkan-devel openblas-devel
# Arch Linux
sudo pacman -S vulkan-devel openblas# Add to ~/.bashrc or ~/.zshrc
export VULKAN_SDK=/usr
export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
# Apply changes
source ~/.bashrc./build-gpu.shThe script will automatically detect Vulkan and build with --features vulkan.
Prerequisites: AMD GPU with ROCm support (RX 5000+, Radeon VII, etc.)
# Ubuntu/Debian
# Add ROCm repository (see https://rocm.docs.amd.com for latest)
sudo apt install rocm-smi hipcc
# Set environment
export ROCM_PATH=/opt/rocm
# Verify
rocm-smi # Shows GPU info
hipcc --version # Shows ROCm version
# Build
./build-gpu.shWant to force a specific acceleration method? Use the TAURI_GPU_FEATURE environment variable with the shell scripts:
# Force CUDA (ignore auto-detection)
TAURI_GPU_FEATURE=cuda ./dev-gpu.sh
TAURI_GPU_FEATURE=cuda ./build-gpu.sh
# Force Vulkan
TAURI_GPU_FEATURE=vulkan ./dev-gpu.sh
TAURI_GPU_FEATURE=vulkan ./build-gpu.sh
# Force ROCm (HIPBlas)
TAURI_GPU_FEATURE=hipblas ./dev-gpu.sh
TAURI_GPU_FEATURE=hipblas ./build-gpu.sh
# Force CPU-only (for testing)
TAURI_GPU_FEATURE="" ./dev-gpu.sh
TAURI_GPU_FEATURE="" ./build-gpu.sh
# Force OpenBLAS (CPU-optimized)
TAURI_GPU_FEATURE=openblas ./dev-gpu.sh
TAURI_GPU_FEATURE=openblas ./build-gpu.shAfter successful build:
src-tauri/target/release/bundle/appimage/Meetily_<version>_amd64.AppImage
- Fix: Install
nvidia-cuda-toolkitor setCUDA_PATHenvironment variable - Check:
nvcc --versionshould work
- Fix: Set both
VULKAN_SDKandBLAS_INCLUDE_DIRSenvironment variables - Example:
export VULKAN_SDK=/usr export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
- Fix: Already handled!
build-gpu.shsetsNO_STRIP=trueautomatically - Why: Prevents runtime errors from missing symbols
- Check detection: Look at the build output for GPU detection messages
- Verify:
nvidia-smi(NVIDIA) orrocm-smi(AMD) should work - Missing SDK: Install the development toolkit, not just drivers
| Mode | Feature Flag | Requirements | Acceleration | Speed Boost |
|---|---|---|---|---|
| CUDA | --features cuda |
nvidia-smi + (CUDA_PATH or nvcc) |
GPU | 5-10x |
| ROCm | --features hipblas |
rocm-smi + (ROCM_PATH or hipcc) |
GPU | 4-8x |
| Vulkan | --features vulkan |
vulkaninfo + VULKAN_SDK + BLAS_INCLUDE_DIRS |
GPU | 3-6x |
| OpenBLAS | --features openblas |
BLAS_INCLUDE_DIRS |
CPU-optimized | 1.5-2x |
| CPU | (none) | (none) | CPU-only | 1x (baseline) |
Both dev-gpu.sh and build-gpu.sh work the same way:
- Detect location: Find
package.json(works from project root orfrontend/) - Choose package manager: Prefer
pnpm, fallback tonpm - Call npm script: Run
tauri:devortauri:build - Auto-detect GPU: The npm script calls
scripts/tauri-auto.js - Feature selection:
scripts/auto-detect-gpu.jschecks hardware - Build with features: Tauri builds with detected
--featuresflag
| Variable | Purpose | Example |
|---|---|---|
CUDA_PATH |
CUDA installation directory | /usr/local/cuda |
ROCM_PATH |
ROCm installation directory | /opt/rocm |
VULKAN_SDK |
Vulkan SDK directory | /usr |
BLAS_INCLUDE_DIRS |
BLAS headers location | /usr/include/x86_64-linux-gnu |
CMAKE_CUDA_ARCHITECTURES |
GPU compute capability | 75 (for compute 7.5) |
CMAKE_CUDA_STANDARD |
C++ standard for CUDA | 17 |
CMAKE_POSITION_INDEPENDENT_CODE |
Enable PIC for linking | ON |
NO_STRIP |
Prevent symbol stripping (AppImage) | true |
# Install
sudo apt install nvidia-driver-550 nvidia-cuda-toolkit
# Verify
nvidia-smi --query-gpu=compute_cap --format=csv
# Build (adjust architecture for your GPU)
CMAKE_CUDA_ARCHITECTURES=86 \ # (86 may change in your case)
CMAKE_CUDA_STANDARD=17 \
CMAKE_POSITION_INDEPENDENT_CODE=ON \
./build-gpu.sh# Install ROCm (see AMD docs for your distro)
sudo apt install rocm-smi hipcc
export ROCM_PATH=/opt/rocm
# Build
./build-gpu.sh# Install
sudo apt install vulkan-sdk libopenblas-dev
# Configure
export VULKAN_SDK=/usr
export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
# Build
./build-gpu.sh# Just build - works out of the box
./build-gpu.shNeed help? Open an issue on GitHub with your GPU type, distro, and the output from ./build-gpu.sh.