1{
2 lib,
3 python,
4 autoAddDriverRunpath,
5 buildPythonPackage,
6 autoPatchelfHook,
7 unzip,
8 cudaPackages,
9}:
10
11let
12 pyVersion = "${lib.versions.major python.version}${lib.versions.minor python.version}";
13in
14buildPythonPackage rec {
15 pname = "tensorrt";
16 version = lib.optionalString (cudaPackages ? tensorrt) cudaPackages.tensorrt.version;
17
18 src = cudaPackages.tensorrt.src;
19
20 format = "wheel";
21 # We unpack the wheel ourselves because of the odd packaging.
22 dontUseWheelUnpack = true;
23
24 nativeBuildInputs = [
25 unzip
26 autoPatchelfHook
27 autoAddDriverRunpath
28 ];
29
30 preUnpack = ''
31 mkdir -p dist
32 tar --strip-components=2 -xf "$src" --directory=dist \
33 "TensorRT-${version}/python/tensorrt-${version}-cp${pyVersion}-none-linux_x86_64.whl"
34 '';
35
36 sourceRoot = ".";
37
38 buildInputs = [
39 cudaPackages.cudnn
40 cudaPackages.tensorrt
41 ];
42
43 pythonImportsCheck = [ "tensorrt" ];
44
45 meta = with lib; {
46 description = "Python bindings for TensorRT, a high-performance deep learning interface";
47 homepage = "https://developer.nvidia.com/tensorrt";
48 license = licenses.unfree;
49 platforms = [ "x86_64-linux" ];
50 maintainers = with maintainers; [ aidalgol ];
51 broken = !(cudaPackages ? tensorrt) || !(cudaPackages ? cudnn);
52 };
53}