My goal
Compile/build FFMPEG for Cuda on Ubuntu Server 22.04 for accelerated encoding/decoding using Tesla T4.
Issue
I am following the instructions Using FFmpeg with NVIDIA GPU Hardware Acceleration
At configure stage, I am getting following nvcc error.
sudo ./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/cuda-12.1/include --extra-ldflags=-L/usr/cuda-12.1/lib64 --disable-static --enable-shared
ERROR: failed checking for nvcc.
– I have checked and nvcc is installed correctly,
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0
– I have checked the config.log and it does not seems to be very helpful, it says
gcc -L/usr/cuda-12.1/lib64 -Wl,–as-needed -Wl,-z,noexecstack -o /tmp/ffconf.sxwnJpkq/test /tmp/ffconf.sxwnJpkq/test.o -lm
check_nvcc cuda_nvcc
test_nvcc
BEGIN /tmp/ffconf.sxwnJpkq/test.cu
1 extern “C” {
2 global void hello(unsigned char *data) {}
3 }
END /tmp/ffconf.sxwnJpkq/test.cu
nvcc -gencode arch=compute_30,code=sm_30 -O2 -std=c++11 -m64 -ptx -c -o /tmp/ffconf.sxwnJpkq/test.o /tmp/ffconf.sxwnJpkq/test.cu
./configure: 995: nvcc: not found
ERROR: failed checking for nvcc.
– My current gcc version is 11…1.0, also tried to compile with gcc (Ubuntu 7.5.0-6ubuntu2) 7.5.0
– I have checked my Cuda installation and I can build Cuda samples.
The output of deviceQuery sample is,
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: “Tesla T4”
CUDA Driver Version / Runtime Version 12.1 / 12.1
CUDA Capability Major/Minor version number: 7.5
Total amount of global memory: 14966 MBytes (15693381632 bytes)
(040) Multiprocessors, (064) CUDA Cores/MP: 2560 CUDA Cores
GPU Max Clock rate: 1590 MHz (1.59 GHz)
Memory Clock rate: 5001 Mhz
Memory Bus Width: 256-bit
L2 Cache Size: 4194304 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total shared memory per multiprocessor: 65536 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 1024
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 3 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device supports Managed Memory: Yes
Device supports Compute Preemption: Yes
Supports Cooperative Kernel Launch: Yes
Supports MultiDevice Co-op Kernel Launch: Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.1, CUDA Runtime Version = 12.1, NumDevs = 1
Result = PASS
– I have verified nvidia driver using
$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 530.30.02 Wed Feb 22 04:11:39 UTC 2023
GCC version: gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
Any thoughts would be appreciated. Thanks
Rehan