| 2 Feb 2023 |
| realjhol joined the room. | 21:32:33 |
realjhol | hi - is it possible to install specific versions of tensorrt? I need to use v8.2.1.8, and I can't see any way to override the version in nixpkgs, or even use any version other than v8.4.0.6 | 21:34:45 |
tpw_rules | https://github.com/NixOS/nixpkgs/blob/6462686d521c54d1adf405b026e9ad0f5a8d5c99/pkgs/development/libraries/science/math/tensorrt/extension.nix this is where it is defined. you'll probably want to change the file | 21:36:54 |
realjhol | yes - I have that pulled up | 21:37:16 |
realjhol | and there is the tensorRTVersions table | 21:37:26 |
realjhol | -- which defines tensorrt versions and their compatibility with versions of cuda | 21:37:42 |
realjhol | currently only 8.4.0 is supported in the table | 21:37:55 |
realjhol | hypothetically if there was more than one supported version in the table, I can't see how to reference that derrivation | 21:38:25 |
realjhol | just trying to understand the code - it seems like it was designed to be nice and flexible, I just can't see how to access the flexibility that I need! | 21:39:45 |
realjhol | looking at tensorRTDefaultVersions, it looks like it's hard coded to 8.4.0 for all versions of cuda right now - the TensorRT version is defined by the CUDA version with no opportunity to set it to anything else | 21:42:25 |
SomeoneSerge (matrix works sometimes) | Hi! The attributes from the defaultBuild and allBuilds variables will end up in cudaPackages namespace (i.e. you can access it as (import <nixpkgs> { }).cudaPackages.tensorrt) For now you'd have to modify the table in your own fork of nixpkgs, but I don't see any reason we couldn't actually expose these tables so that they could be overridden by users Also this code maybe waits for somebody to simplify it:) | 21:49:23 |
realjhol | and how does one set the defaultBuild and allBuilds variables? | 21:51:16 |
realjhol | my for my needs I can do overrideAttrs on pkgs.cudaPackages.tensorrt derrivation, and just change the source and version | 21:51:37 |
SomeoneSerge (matrix works sometimes) | For context, the piece was introduced in: https://github.com/NixOS/nixpkgs/pull/178397/ It used as a reference some of the extension.nix files from https://github.com/NixOS/nixpkgs/pull/167016 | 21:51:42 |
SomeoneSerge (matrix works sometimes) | I think you'd have to just edit them in your own fork... :( | 21:53:14 |
realjhol | oh I see - ok | 21:53:27 |
realjhol | well it mat not be pretty, buth this deos give me what I need:
cudaPackages = pkgs.cudaPackages_11_4;
tensorrt = cudaPackages.tensorrt.overrideAttrs (old: let
fullVersion = "8.2.1.8";
fileVersionCuda = "11.4";
fileVersionCudnn = "8.2";
sha256 = "sha256-PpqcxK0OWuY3MX2STc3fZjgfTbBOJXHw8ubtWipR8kc=";
in rec {
pname = "cudatoolkit-${cudaPackages.cudatoolkit.majorVersion}-tensorrt";
version = fullVersion;
src = pkgs.requireFile rec {
name = "TensorRT-${fullVersion}.Linux.x86_64-gnu.cuda-${fileVersionCuda}.cudnn${fileVersionCudnn}.tar.gz";
inherit sha256;
message = ''
To use the TensorRT derivation, you must join the NVIDIA Developer Program and
download the ${version} Linux x86_64 TAR package for CUDA ${cudaPackages.cudaVersion} from
${old.meta.homepage}.
Once you have downloaded the file, add it to the store with the following
command, and try building this derivation again.
$ nix-store --add-fixed sha256 ${name}
'';
};
sourceRoot = "TensorRT-${version}";
# Tell autoPatchelf about runtime dependencies.
# (postFixup phase is run before autoPatchelfHook.)
postFixup =
let
mostOfVersion = builtins.concatStringsSep "."
(pkgs.lib.take 3 (pkgs.lib.versions.splitVersion version));
in
''
echo 'Patching RPATH of libnvinfer libs'
patchelf --debug --add-needed libnvinfer.so \
"$out/lib/libnvinfer.so.${mostOfVersion}" \
"$out/lib/libnvinfer_plugin.so.${mostOfVersion}" \
"$out/lib/libnvinfer_builder_resource.so.${mostOfVersion}"
'';
});
| 22:54:36 |
realjhol | it would be nice if cudaPackages.tensorrt had an override method so that I could override the version values without having to reimplement half of the derrivation | 22:55:27 |
SomeoneSerge (matrix works sometimes) | If you're going to use nixpkgs packages that rely on tensorrt, you might also want to re-evaluate cudaPackages in an overlay to make sure they all use your version of tensorrt | 22:57:14 |
realjhol | hmm -- ok that makes sense | 22:57:57 |
SomeoneSerge (matrix works sometimes) | There's an example in the manual, cf. the overrideScope' bit https://nixos.org/manual/nixpkgs/unstable/#cuda | 22:58:51 |
realjhol | thanks! - I'm out of time for today, but I'll take a look tomorrow | 22:59:28 |
SomeoneSerge (matrix works sometimes) | Cheers! | 22:59:43 |
| 6 Feb 2023 |
tpw_rules | ignore this, just trying to get an unread notification to go away... | 18:11:06 |
hexa | left the threads beta, because unread notifications were driving me nuts | 19:43:58 |
SomeoneSerge (matrix works sometimes) | does this message show up as a simple reply now? | 19:44:47 |
hexa | yes, it does | 19:44:54 |
tpw_rules | oh please tell me how to do that | 20:44:06 |
| 7 Feb 2023 |
hexa | https://github.com/NixOS/nixpkgs/pull/215091 | 17:32:46 |
| 8 Feb 2023 |
hexa | In reply to @tpw_rules:matrix.org oh please tell me how to do that in element labs settings there is a big leave button 😄 | 11:55:20 |