update
This commit is contained in:
parent
69654beea9
commit
416f4f5bdd
18
Dockerfile
18
Dockerfile
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
|
|
||||||
# xxx move from cudagl to cuda, for runtime?
|
# xxx move from cudagl to cuda, for runtime?
|
||||||
ARG CUDA_DEVEL="11.0.3-devel-ubuntu20.04"
|
ARG CUDA_DEVEL="12.1.1-devel-ubuntu22.04"
|
||||||
ARG CUDA_RUNTIME="11.0.3-runtime-ubuntu20.04"
|
ARG CUDA_RUNTIME="12.1.1-runtime-ubuntu22.04"
|
||||||
|
|
||||||
# runtime starts as 2.3GB image
|
# runtime starts as 2.3GB image
|
||||||
# devel is runtime+ and is 4.2GB image
|
# devel is runtime+ and is 4.2GB image
|
||||||
@ -16,7 +16,7 @@ FROM nvidia/cuda:$CUDA_DEVEL AS builder
|
|||||||
ARG CUDA_ARCH_75=75
|
ARG CUDA_ARCH_75=75
|
||||||
ARG CUDA_ARCH_61=61
|
ARG CUDA_ARCH_61=61
|
||||||
|
|
||||||
ARG FFMPEG_TGZ=https://ffmpeg.org/releases/ffmpeg-5.0.tar.gz
|
ARG FFMPEG_TGZ=https://ffmpeg.org/releases/ffmpeg-5.1.3.tar.gz
|
||||||
|
|
||||||
|
|
||||||
# create an ffmpeg (w/ shared libs) that can utilize nvidia GPU
|
# create an ffmpeg (w/ shared libs) that can utilize nvidia GPU
|
||||||
@ -41,7 +41,7 @@ RUN apt-get -yqq update && apt-get -yqq install \
|
|||||||
|
|
||||||
# install nvidia headers (got moved out of ffmpeg)
|
# install nvidia headers (got moved out of ffmpeg)
|
||||||
RUN git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers && \
|
RUN git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers && \
|
||||||
cd nv-codec-headers && git checkout origin/sdk/11.0 && \
|
cd nv-codec-headers && git checkout n12.0.16.0 && \
|
||||||
sudo make install && \
|
sudo make install && \
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
@ -69,7 +69,8 @@ RUN sed -i -e "s/gencode arch=compute_..,code=sm_../gencode arch=compute_${CUDA_
|
|||||||
--enable-cuda --enable-cuda-sdk --enable-cuda-nvcc --enable-nvenc --enable-cuvid --enable-libnpp \
|
--enable-cuda --enable-cuda-sdk --enable-cuda-nvcc --enable-nvenc --enable-cuvid --enable-libnpp \
|
||||||
--extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 && \
|
--extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 && \
|
||||||
make -j4 && \
|
make -j4 && \
|
||||||
cp ffmpeg /tmp/ffmpeg-turing
|
cp ffmpeg /tmp/ffmpeg-turing && \
|
||||||
|
cp ffplay /tmp/ffplay-turing
|
||||||
|
|
||||||
RUN sed -i -e "s/gencode arch=compute_..,code=sm_../gencode arch=compute_${CUDA_ARCH_61},code=sm_${CUDA_ARCH_61}/" ./configure\
|
RUN sed -i -e "s/gencode arch=compute_..,code=sm_../gencode arch=compute_${CUDA_ARCH_61},code=sm_${CUDA_ARCH_61}/" ./configure\
|
||||||
&& make distclean || echo && \
|
&& make distclean || echo && \
|
||||||
@ -85,7 +86,8 @@ RUN sed -i -e "s/gencode arch=compute_..,code=sm_../gencode arch=compute_${CUDA_
|
|||||||
--enable-cuda --enable-cuda-sdk --enable-cuda-nvcc --enable-nvenc --enable-cuvid --enable-libnpp \
|
--enable-cuda --enable-cuda-sdk --enable-cuda-nvcc --enable-nvenc --enable-cuvid --enable-libnpp \
|
||||||
--extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 && \
|
--extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 && \
|
||||||
make -j4 && \
|
make -j4 && \
|
||||||
cp ffmpeg /tmp/ffmpeg-pascal
|
cp ffmpeg /tmp/ffmpeg-pascal && \
|
||||||
|
cp ffplay /tmp/ffplay-pascal
|
||||||
|
|
||||||
# now collect up all the .so files we'll need for the runtime, into new lib/ subdir
|
# now collect up all the .so files we'll need for the runtime, into new lib/ subdir
|
||||||
RUN BIN=ffmpeg && mkdir lib && ( \
|
RUN BIN=ffmpeg && mkdir lib && ( \
|
||||||
@ -96,9 +98,11 @@ RUN BIN=ffmpeg && mkdir lib && ( \
|
|||||||
|
|
||||||
# switch to the smaller "runtime" baseline.
|
# switch to the smaller "runtime" baseline.
|
||||||
# now we just keep the executable(s) and .so files they need and chuck everything else above.
|
# now we just keep the executable(s) and .so files they need and chuck everything else above.
|
||||||
FROM nvidia/cudagl:$CUDA_RUNTIME
|
FROM nvidia/cuda:$CUDA_RUNTIME
|
||||||
COPY --from=builder /tmp/ffmpeg-pascal /ffmpeg-pascal
|
COPY --from=builder /tmp/ffmpeg-pascal /ffmpeg-pascal
|
||||||
COPY --from=builder /tmp/ffmpeg-turing /ffmpeg
|
COPY --from=builder /tmp/ffmpeg-turing /ffmpeg
|
||||||
|
COPY --from=builder /tmp/ffplay-pascal /ffplay-pascal
|
||||||
|
COPY --from=builder /tmp/ffplay-turing /ffplay
|
||||||
COPY --from=builder /tmp/ffmpeg/lib/ /fflib
|
COPY --from=builder /tmp/ffmpeg/lib/ /fflib
|
||||||
|
|
||||||
# @see cuda-runtime.sh for where this small image of three cuda runtime .so files came from
|
# @see cuda-runtime.sh for where this small image of three cuda runtime .so files came from
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
version: '2'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
nvidia-ffmpeg:
|
nvidia-ffmpeg:
|
||||||
@ -6,19 +6,18 @@ services:
|
|||||||
image: nvidia-ffmpeg
|
image: nvidia-ffmpeg
|
||||||
container_name: nvidia-ffmpeg
|
container_name: nvidia-ffmpeg
|
||||||
restart: "no"
|
restart: "no"
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
reservations:
|
||||||
|
devices:
|
||||||
|
- driver: nvidia
|
||||||
|
capabilities: [gpu]
|
||||||
|
environment:
|
||||||
|
- NVIDIA_VISIBLE_DEVICES=all
|
||||||
entrypoint:
|
entrypoint:
|
||||||
- /bin/sleep
|
- /bin/sleep
|
||||||
- infinity
|
- infinity
|
||||||
volumes:
|
volumes:
|
||||||
- /usr/lib/x86_64-linux-gnu/nvidia/current:/cuda:ro
|
|
||||||
- ./folder:/folder
|
- ./folder:/folder
|
||||||
environment:
|
- /usr/lib/x86_64-linux-gnu/nvidia/current:/cuda:ro
|
||||||
- NVIDIA_VISIBLE_DEVICES=all
|
|
||||||
devices:
|
|
||||||
- /dev/nvidia0
|
|
||||||
- /dev/nvidiactl
|
|
||||||
- /dev/nvidia-uvm
|
|
||||||
- /dev/nvidia-uvm-tools
|
|
||||||
cap_add:
|
|
||||||
- IPC_LOCK
|
|
||||||
network_mode: host
|
network_mode: host
|
Loading…
Reference in New Issue
Block a user