XGRIDSDocs
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel PortalCam Series

    • PortalCam P1

      • Product Overview
      • Basic Operation
      • Using the LCC Scan App
      • Maintenance and Care
      • FAQ
  • Lixel K Series

    • Lixel K1

      • Product Overview
      • Basic Operation
      • Device Activation and Connection
      • Scanning Workflow
      • Acquire Point Cloud Data with Absolute Coordinate
      • Map Fusion
      • Route Planning Suggestions for Typical Scenes
      • Precautions
      • FAQ
    • Lixel K2

      • Product Overview
      • Basic Operation
      • Device Activation and Connection
      • Scanning Workflow
      • Acquire Point Cloud Data with Absolute Coordinate
      • Map Fusion
      • Route Planning Suggestions for Typical Scenes
      • Precautions
      • FAQ
  • Lixel L Series

    • Lixel L2 Pro

      • Product Overview
      • Basic Operation
      • Device Activation and Connection
      • Scanning Workflow
      • Acquire Point Cloud Data with Absolute Coordinate
      • Measure Point
      • Appendix
      • FAQ
    • Lixel L3

      • Product Overview
      • Basic Device Functions
      • Device Activation and Connection
      • Data Capture
      • Capturing Absolute Coordinates
      • Appendix
  • Lixel Studio

    • Version and Copyright
    • Installation and Activation
    • Software Interface
    • File Operations
    • Project Processing
    • Tools
    • 2D Drawing
    • Applications
    • Settings
    • Device Connection
    • FAQ
    • Usage Tips

      • Data Flow Overview
      • Software Licensing Guide
      • Understanding Scanner Accuracy Specifications
  • Lixel CyberColor

    • LCC Studio

      • Getting Started
      • Version and Updates
      • Download and Installation
      • Interface Overview and Navigation
      • Before Reconstruction
      • Model Reconstruction
      • Single Model Reconstruction
      • Map Fusion
      • Aerial-Ground Fusion
      • Aerial Reconstruction
      • My Models
      • Other Features
      • Settings and Account
      • Converter
      • Video Reconstruction
      • FAQ
    • LCC Scene Editor

      • Version & Updates
      • Account & Login
      • Product Overview & Home
      • Editor Interface
      • Scene Navigation Modes
      • File
      • Settings
      • Edit Operations
      • Window
      • Global Toolbar
      • Assets & Properties
      • Left Toolbar
      • Viewpoints
      • Portal
      • Skybox
      • Annotations
      • Measurement
      • Flythrough
      • Scene Report
      • 3D Layout
      • Mini-Map
      • Preview Mode (Viewer)
      • Help
      • FAQ
      • Spawn Point
    • LCC Model Editor

      • Version and Updates
      • User Guide
      • Overview and Interface
      • File Operations
      • Selectors
      • Editing Models
      • Measurement
      • Color Grading
      • Asset Management
      • Settings and Help
      • FAQ
    • Capture Guide

      • Overview
      • Capture Devices Overview
      • General Capture Principles
      • Indoor Scene Capture
      • Outdoor Scene Capture
      • Large-Scale Capture (Map Fusion)
      • Aerial-Ground Map Fusion Capture
      • Object Capture
      • People Capture
      • Video Reconstruction Capture
      • HD Enhancement
      • Control Points (Lixel P1)
      • FAQ and Troubleshooting
    • LCC Studio Linux

      • Product Overview
      • Architecture Guide
      • Installation and Deployment Guide
      • Container Startup Parameters Guide
      • CodeMeter Offline Licensing Deployment Guide
      • API Reference
      • Appendix - Developer Data Guide
      • Appendix - Error Code List
      • Single-Machine Multi-GPU Cluster Deployment QuickStart
    • Best Practices

      • Merging Multiple Large 3DGS Models
      • Aerial-Ground Map Fusion Workflow
      • Data Flow Overview
      • Software Licensing Guide
    • Version History
  • Plugin & SDK

    • Unreal

      • Introduction
      • Quick Start - Windows
      • Quick Start - Linux
      • Quick Start - Quest3
      • Editions and Licensing
      • Rendering
      • Tiled Rasterization (Experimental)
      • Visual Settings
      • Normals and Lighting
      • Scene Editing
      • Performance Parameters
      • Performance Guide
      • Third-party and Engine Plugin Integration
      • Proxy Mesh
      • Loading Animation
      • Collision
      • Navigation System Support
      • Single Layer Water Support
      • Localization
      • FAQ
      • Troubleshooting
      • Logging and Diagnostics
      • Contact Us
      • Best Practices

        • Relighting 3DGS with a LixelStudio Mesh
        • Per-camera Independent Rendering
      • API Reference

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Changelog

        • v3.5.0
        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Unity SDK Introduction
      • Technical Features
      • Development Environment Requirements
      • PC Quick Start Guide
      • Project Settings Optimization Guide
      • Pico 4 Ultra Development Guide
      • Pico 4 Ultra PC Streaming Guide
      • Quest 3 Development Guide
      • Quest 3 PC Streaming Guide
      • OpenXR Development Guide
      • Pico 4 Ultra Business Streaming Guide
      • Glossary
      • FAQ
      • Contact Us
      • Feature Development Guide

        • Multi-Scene Mixed Rendering Development Guide
        • Shadow Receiving Development Guide
        • Real-Time Lighting Development Guide
        • Multi-Camera Rendering Development Guide
        • High-Resolution Image Rendering Development Guide
        • LCC and LCC2 Data Format Compatibility Development Guide
        • Loading Effect Development Guide
        • Mip Rendering Mode Switching Development Guide
        • Edge and Corner Snapping Development Guide
        • Projected Decal Development Guide
        • Video Projected Decal Development Guide
        • Highlight Development Guide
        • Real-Time Clipping Development Guide
        • Color Adjustment Development Guide
        • Getting Scene Mesh Data Development Guide
        • Editor Mode Development Guide
        • Render Performance Parameter Configuration Guide
        • Application and Data Co-packaging Development Guide
        • Collision System Development Guide
        • macOS Development Permission Issue Guide
        • iOS Device Compilation and Packaging Development Guide
      • API Reference

        • LCCManager
        • Renderer
        • Data Types
      • Changelog

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • Introduction
      • Rendering Performance Optimization Guide
      • Graphics Configuration
      • WebGPU Development Guide
      • FAQ
      • API Reference

        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setClipPrism
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setMipFilter
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
      • Changelog

        • v0.6.4
        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0
    • Lixel OpenAPI

      • Overview
      • Connection & Authentication
      • Message Model & Codec
      • Interface Catalog
      • Real-time Data
      • Project File Access
      • Error Codes
      • Python

        • Quick Start
        • Client Wrapper & Tools
        • FAQ
      • C++

        • Quick Start
        • Client & Examples
        • FAQ
  • API

    • Structured Spatial Modeling

      • Access Guide
      • Modeling Workflow
      • API Reference
      • Temporary Upload Credentials
      • Error Codes

Installation and Deployment Guide

2 Server Environment Configuration (Ubuntu 20.04 or above ~ 24.04)

1. NVIDIA Graphics Driver Installation

# Download the driver
wget https://download.nvidia.com/XFree86/Linux-x86_64/550.120/NVIDIA-Linux-x86_64-550.120.run

All versions :https://download.nvidia.com/XFree86/Linux-x86_64/

chmod +x NVIDIA-Linux-x86_64-550.120.run

# Installation requires a gcc build environment; install build-essential if it is missing
sudo apt-get install build-essential -y

# Run the installer
sudo ./NVIDIA-Linux-x86_64-550.120.run 

Note: Minimum Version Dependencies

DriverVersionSupported ArchitecturesOperating System
NVIDIA Linux Driver545.23.08x86_64, arm64-sbsa, POWERLinux
NVIDIA Windows Driver546.12x86_64 (Windows)Windows, WSL

2. Docker and NVIDIA Graphics Card Support Installation

# Install docker on the server
sudo apt update
sudo apt install docker.io


# Install NVIDIA container support

# Option 1
# Follow the latest official installation documentation:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

# Option 2
# In mainland China, online installation may fail because of network issues
# Download the .deb files for libnvidia-container1, libnvidia-container-tools, nvidia-container-runtime and nvidia-docker2 from the mirror https://mirror.cs.uchicago.edu/nvidia-docker/
# We also provide a temporary download address for the required deb packages: https://cdn-bukbb1.xgrids.cloud/static/nvidia/docker-nvidia-support-ubuntu.zip

# After obtaining all deb files, run the installation:
sudo dpkg -i ./*.deb  # Install all downloaded deb packages

# Restart docker
sudo systemctl restart docker

# Run a test container to check that the GPU works:
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base nvidia-smi

#docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).

"registry-mirrors": ["https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu"]

sudo systemctl daemon-reload
sudo systemctl restart docker


3. Special Configuration (Required!)

1) Change Docker's cgroupdriver to cgroupfs

There is a known issue when using NVIDIA graphics cards in containers: Containers losing access to GPUs with error: "Failed to initialize NVML: Unknown Error"

The official status of this issue is currently unresolved. References:

https://github.com/NVIDIA/nvidia-docker/issues/1730

https://github.com/NVIDIA/nvidia-container-toolkit/issues/48

To confirm whether the server is affected by this issue:

 $ docker info  
 ...  
 Cgroup Driver: systemd     # If you see Cgroup Driver = systemd, this problem may occur
 Cgroup Version: 1

The official solution provided by NVIDIA:

Manually edit /etc/docker/daemon.json to add the parameter "exec-opts": ["native.cgroupdriver=cgroupfs"], then restart Docker.

(Set the parameter "exec-opts": ["native.cgroupdriver=cgroupfs"] in the /etc/docker/daemon.json file and restart docker.)

The image shows the content of the Docker configuration file `/etc/docker/daemon.json`, in which the key part is the `exec-opts` field, whose value is `["native.cgroupdriver=cgroupfs"]`. This image relates to the special configuration section of the document, illustrating the official solution provided by NVIDIA, namely manually editing the `/etc/docker/daemon.json` file to add this parameter and then restarting Docker, in order to resolve the issue caused by the cgroupdriver problem.

2) Enable NVIDIA Graphics Driver Persistence Mode (Persistent Mode)

Enable persistence mode:
sudo nvidia-smi -pm 1   

Impact of not enabling persistence mode:

  1. The GPU is initialized each time it is accessed, increasing latency
  • Symptom: When running nvidia-smi, CUDA programs, or loading models, the GPU goes through a driver initialization. The nvidia-smi command runs slowly.
  • Impact: Longer startup times, slow command response, and even lag at the application layer.
  1. Frequent power control switching, unstable performance
  • When idle, the GPU automatically enters a low-power state (e.g., turning off VRAM, turning off the clock), and must "wake up" the GPU when reactivated.
  • This causes "performance jitter" during high-frequency use.
  1. Reduced multitasking response efficiency in servers or clusters
  • In scenarios with high-frequency GPU use such as deep learning training, inference, and graphics rendering, frequent initialization increases the system load, especially in multi-user/multi-process usage scenarios.
  1. Certain containers or daemon processes may repeatedly trigger GPU initialization
  • For example, when Docker is misconfigured, a container may trigger a GPU initialization each time it starts.

After enabling:

  • The GPU driver remains loaded at all times, with no need to reinitialize on each access.
  • Shorter startup times, e.g., faster loading of CUDA programs and deep learning frameworks.
  • More stable runtime performance, especially in clusters or automated tasks.

In heavy GPU usage scenarios such as servers, deep learning, and rendering: enabling is recommended.

Only in ordinary desktop use or power-sensitive environments (such as laptops) can it be turned off as appropriate to save power.

4. Other Known Issues

1) High-end graphics cards + multi-GPU servers: GPUs cannot be used properly inside containers

On servers with multiple high-end NVIDIA graphics cards (H100/V100/A100/A30, etc.), in addition to installing the corresponding driver, sometimes you also need to install the nvidia-fabricmanager service that exactly matches the driver version in order to perform reconstruction properly.

The failure symptom is that executing the nvidia-smi and nvcc commands inside the container both output normally; but the actual reconstruction fails; the reconstruction error is as follows, and multiple retries all fail:

  • Error code: 0x34040070
  • Error log: Unspecified GPU Error: Update GPU drivers to the latest stable version and restart the computer.

Check the server error log, and you may find an error indicating that the nvidia-fabricmanager version is inconsistent:

This image is a screenshot of the server error log for the issue of GPUs being unusable inside containers on a high-end multi-GPU server during LCC reconstruction software deployment. The core is the error content after executing the `journalctl -u nvidia-fabricmanager` command indicated by the arrow. The log repeatedly indicates that the NVIDIA GPU driver interface version of nvidia-fabricmanager does not match the current driver version (550.163.01), and also shows information related to the service startup failure. This log corresponds to the reconstruction error situation mentioned in the document, and is used to help illustrate the specific error manifestation of the inconsistent nvidia-fabricmanager version.
Solution

Follow NVIDIA's official documentation to install the nvidia-fabricmanager that exactly matches the current driver version, and disable its automatic update at the operating system level. It is recommended that this be handled by the server's technical operations personnel.