!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

288 Members
CUDA packages maintenance and support in nixpkgs | https://github.com/orgs/NixOS/projects/27/ | https://nixos.org/manual/nixpkgs/unstable/#cuda58 Servers

Load older messages


SenderMessageTime
8 Mar 2025
@hexa:lossy.networkhexa @connorbaker:matrix.org i dont suppose your talk was recorded? 12:23:13
@connorbaker:matrix.orgconnor (he/him)It probably was, just taking them a while to upload. If not, the slides are available here: https://github.com/ConnorBaker/2025-planet-nix19:57:32
@ruroruro:matrix.orgruroUnless I am misunderstanding something, looking at the Southern California Linux Expo youtube channel, it seems that the only nix related streams from the 6th and 7th of march are for Room 101. And the "Evaluating the Nix Evaluator" talk was scheduled for Room 2 (which I am assuming is actually Room 102)? I wonder...20:42:23
@justbrowsing:matrix.orgKevin Mittman (EOY sleep)
In reply to @ruroruro:matrix.org
Unless I am misunderstanding something, looking at the Southern California Linux Expo youtube channel, it seems that the only nix related streams from the 6th and 7th of march are for Room 101. And the "Evaluating the Nix Evaluator" talk was scheduled for Room 2 (which I am assuming is actually Room 102)? I wonder...
There were two room tracks for PlanetNix
23:57:15
@justbrowsing:matrix.orgKevin Mittman (EOY sleep)It usually takes a month or so for the complete set of talks to be cut, edited and uploaded23:58:46
9 Mar 2025
@justbrowsing:matrix.orgKevin Mittman (EOY sleep)oh TIL they have livestreams00:23:32
@connorbaker:matrix.orgconnor (he/him)Room 2 for Planet Nix was conference room 104, which I didn’t see on the livestreams when I checked this morning 🤷‍♂️02:25:53
@osmanfbayram:matrix.orgosbm changed their display name from osman bayram to osbm.13:30:40
@ruroruro:matrix.orgruro SomeoneSerge (UTC+U[-12,12]): sorry to bother you with this again, but could you please take a final look at https://github.com/NixOS/nixpkgs/pull/379768#discussion_r1977975372 and let me know if you prefer setting badPlatformsConditions/hydraPlatforms for broken packages or filtering them in release-cuda.nix? 17:25:00
@ruroruro:matrix.orgruroAlso, apparently the "Evaluation Errors" tab missing for individual evaluations isn't a nix-community specific problem. The same thing happens with the official Hydra instance, so I opened an issue upstream: https://github.com/NixOS/hydra/issues/1453.17:28:52
@ss:someonex.netSomeoneSerge (back on matrix)tomorrow 🙏23:37:06
11 Mar 2025
@ss:someonex.netSomeoneSerge (back on matrix)

RE: https://discourse.nixos.org/t/why-does-nixpkgs-config-exist/61456/6
RE: wrappers, stdenv, etc.
RE: "The easiest way to achieve consistency today is to just enable cudaSupport Nixpkgs-wide using config"

And yet again, I don't think it has to be this way. It's not inherent, it's just a trait of callPackage/makeScope and of overrides being local. To try and defend the notion of the hypothetical stdenv.cudaSupport, if all of a package's inputs consistently accepted stdenv as a parameter, and could be entirely configured just using stdenv, then all it'd take to achieve consistency is to apply .override { inherit stdenv; } to all *Inputs. And if we didn't limit ourselves to the idea of callPackage and that there's a global "container" from which we "fill in" our parameters, that could probably be automated (by doing dynamic scoping essentially)

But ok let's leave callPackage and scoping aside. This still made me think of how to layer nvcc-wrapper and the conditional stdenv functionality. I'm back to the notion that we actually can move cudaSupport to (the platform attrsets and) stdenv, replace optionals cudaSupport with optionals stdenv.cudaSupport, and implement cudaStdenv.mkDerivation in such a way that it would be able to downgrade the compiler if it detects that its argument is capable of using CUDA functionality. The detection could still be done in two ways: we could demand that derivations explicitly pass an argument such as, say, cudaCapable = true, or we could detect that nvcc is in its nativeBuildInputs. I'd vote for the former because llvm, nvc++, and it's more explicit too. The cudaStdenv constructor could be made configurable so that it's possible to disable the downgrading (e.g. when we don't care about consistency or the LTO and we just trust in the wrapper; or if llvm offers more relaxed constraints). And regardless of the stdenv layer, the lower-level nvcc wrapper can exist and be used independently.

CC connor (he/him) (UTC-8)

10:09:54
@connorbaker:matrix.orgconnor (he/him)I’ll have to get back to you on that after I get a chance to think about it14:26:20
@ruroruro:matrix.orgruro

I just wanted to make sure. You commented

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • adding tensorrt.hydraPlatforms = none
    ?
19:19:31
@ruroruro:matrix.orgruro *

I just wanted to make sure. You commented

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • adding tensorrt.hydraPlatforms = none

?

19:19:38
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • adding tensorrt.hydraPlatforms = none

?

19:20:16
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • adding tensorrt.hydraPlatforms = none

?

As I've mentioned, you can see the exact code I am talking about in this branch.

19:21:25
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • adding tensorrt.hydraPlatforms = none

?

As I've mentioned, you can see the exact code I am talking about in here.

19:22:37
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • adding tensorrt.hydraPlatforms = none

?

As I've mentioned, you can see the exact code I am talking about here.

19:22:44
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • setting tensorrt.hydraPlatforms = none (because it can't be built on Hydra)

?

As I've mentioned, you can see the exact code I am talking about here.

19:23:46
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • setting tensorrt.hydraPlatforms = none (because it can't be built on Hydra)

?

We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.

As I've mentioned, you can see the exact code I am talking about here.

19:25:41
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • setting tensorrt.hydraPlatforms = none (because it can't be built on Hydra)

?

We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.

As I've mentioned, you can see the exact changes I am talking about here.

19:25:54
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • setting tensorrt.hydraPlatforms = none (because it can't be built on Hydra)

?

We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.

You can see the exact changes I am talking about here.

19:26:07
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

change brokenConditions to badPlatformsConditions

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • setting tensorrt.hydraPlatforms = none (because it can't be built on Hydra)

?

We can keep the Qt 5 missing (<2022.4.2.1)/Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.

You can see the exact changes I am talking about here.

19:28:07
@ruroruro:matrix.orgruro *

I just wanted to make sure. You left this comment on the release-cuda issue:

change brokenConditions to badPlatformsConditions

H'm well it seems to make sense at least for

nix eval nixpkgs#cudaPackages.cudnn_8_0.brokenConditions
{ "CUDA version is too new" = true; ... }

Did I understand correctly, that you are okay with

  • moving cudnn.brokenConditions."CUDA version is too old/new" to badPlatformsConditions
  • moving nsight_systems.brokenConditions."CUDA too old (<11.8)" to badPlatformsConditions
  • moving nvidia_driver.brokenConditions."Package is not supported; use drivers from linuxPackages" to badPlatformsConditions
  • setting tensorrt.hydraPlatforms = none (because it can't be built on Hydra)

?

You can see the exact changes I am talking about here.

We can keep the Qt 5 missing (<2022.4.2.1) / Qt 6 missing (>=2022.4.2.1) as brokenConditions, because they aren't currently producing eval errors and it makes sense that we want to detect these conditions in CI.

19:28:36
@ss:someonex.netSomeoneSerge (back on matrix) ruro: this sounds great! 22:02:03
@adam_neverwas:matrix.orgAdam Neverwas removed their display name adam_neverwas.23:24:15
@gumby0811:matrix.orggumby0811 set a profile picture.23:38:53
12 Mar 2025
@ruroruro:matrix.orgruro Any preferences on the alternative name for evalPackageSetPlatforms? ))) 00:42:04
@ruroruro:matrix.orgruro I am leaning towards packageSetPlatforms... 00:42:18

Show newer messages


Back to Room ListRoom Version: 9