Remotion LabRemotion Lab
伺服器端渲染在雲端使用 GPU(Docker)

在雲端使用 GPU(Docker)

在 AWS EC2 Docker 容器中搭配 GPU 渲染 Remotion 影片的設定指南。

在雲端使用 GPU(Docker)

注意:本指南已過時,目前無法正常運作。現在請參閱最新的裸機 GPU 指南

請仔細按照以下步驟在 EC2 的 Docker 容器中渲染影片。這些步驟具有特定的設定方式,提供一個可運作的參考配置。

警告:偏離以下指示(例如選擇不同的 AMI、不同的 Docker 基礎映像、使用 EC2 以外的平台、使用不同的主機機器)可能導致 GPU 無法正常運作,且問題難以除錯。建議先按照這些指示執行,在確認可以正常運作後再進行修改。

設定 EC2 搭配 Docker 使用 GPU

步驟一:準備 EC2 執行個體

按照 GPU on EC2 指南的指示操作。可以跳過安裝 Chrome、Node.js 和複製示範專案來渲染影片的步驟。

步驟二:安裝 NVIDIA Container Toolkit

新增金鑰環
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
安裝工具組
sudo apt-get install -y nvidia-container-toolkit

步驟三:安裝 Docker

新增 Docker 官方 GPG 金鑰
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
新增金鑰環
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安裝 Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

步驟四:設定 Docker 使用 NVIDIA 執行時期

設定 NVIDIA Container Runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

步驟五:建立 Dockerfile 和 entrypoint.sh

使用 nano ./file-to-create 指令建立檔案,按 Ctrl+X 儲存並退出。

Dockerfile
FROM node:20-bookworm
RUN apt-get update
RUN apt-get install -y curl gnupg git
RUN rm -rf /var/lib/apt/lists/*
 
# 複製存放庫
RUN git clone https://github.com/remotion-dev/gpu-scene.git
WORKDIR /gpu-scene
RUN npm install
 
# 將 entrypoint 腳本複製至映像中
COPY entrypoint.sh .
 
CMD ["sh", "./entrypoint.sh"]
entrypoint.sh
#!/bin/bash
 
npx remotion render --gl=angle-egl Scene out/video.mp4

步驟六:建置容器並執行範例渲染

sudo docker build . -t remotion-docker-gpu
sudo docker run --gpus all --runtime=nvidia -e "NVIDIA_DRIVER_CAPABILITIES=all" remotion-docker-gpu

除錯

使用 npx remotion gpu 指令取得 chrome://gpu 的輸出內容,以驗證 GPU 是否正常運作。

相關資源