Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tree-wide: cudaPackages attributes should not cause default eval to fail #274319

Merged

Conversation

ConnorBaker
Copy link
Contributor

@ConnorBaker ConnorBaker commented Dec 14, 2023

Description of changes

Closes #273794.

Most of the packages in cudaPackages are not source-available (examples include cuda_nvcc, cudnn, and libcutensor). However, some packages, like nccl and nccl-tests are source-available.

Because src is evaluated as part of OfBorg's eval check, we must make sure it is always able to evaluate. For packages which are not source-available, we set src = null when building for an unsupported platform or configuration (because NVIDIA does not provide such a package for download) and update meta.platforms and meta.broken appropriately. For packages which are source-available, we specify meta.badPlatforms and meta.broken.

Previously, source-available packages were excluded from the package set when using an unsupported platform or configuration; this lead to downstream users of such packages using existence in the package set as an indication of whether such a package would be functional.

With this change, downstream users should check the derivation's meta.unsupported attribute.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@ConnorBaker ConnorBaker added the 6.topic: cuda Parallel computing platform and API label Dec 14, 2023
@ConnorBaker ConnorBaker self-assigned this Dec 14, 2023
@ConnorBaker ConnorBaker force-pushed the feat/cudaPackages-all-packages-eval branch 2 times, most recently from d8b7e2f to e7cf70f Compare December 14, 2023 23:37
@ConnorBaker
Copy link
Contributor Author

ConnorBaker commented Dec 14, 2023

Note

Template nixpkgs-review command:

PR=274319; \
SYSTEM="aarch64-linux"; \
CUDA_SUPPORT="true"; \
CUDA_CAPABILITIES='[ "7.5" ]'; \
nixpkgs-review pr "$PR" \
  --system "$SYSTEM" \
  --no-shell \
  --checkout commit \
  --allow aliases \
  --build-args "--max-jobs 1" \
  --skip-package-regex 'python3(\d){1,2}Packages\.(pytorch-pfn-extras|ffcv)' \
  --skip-package-regex 'python3(\d){1,2}Packages\.(shap|mlflow|optuna)' \
  --extra-nixpkgs-config "{
    allowUnfree = true;
    allowBroken = false;
    cudaSupport = ${CUDA_SUPPORT:-false};
    cudaCapabilities = ${CUDA_CAPABILITIES:-[]};
  }"

The packages python3Packages.{pytorch-pfn-extras,shap} are excluded because their checkPhase runs for multiple hours -- other excluded packages are dependent on these, and nixpkgs-review does not handle transitive dependencies, so we must find them ourselves.

Template log archival command:

PR=274319; \
RUN_NUMBER=13; \
SYSTEM="aarch64-linux"; \
CUDA_CAPABILITIES="7_5"; \
tar -cvf "$SYSTEM-cap-$CUDA_CAPABILITIES-pr-$PR-$RUN_NUMBER.tar.zst" \
  -I "zstd -T0 --ultra -22" \
  -C "$HOME/.cache/nixpkgs-review/pr-$PR-$RUN_NUMBER" \
  .

Logs are made available at https://drive.google.com/drive/folders/1GgABhwa2ooKeZXMqf5He6PcyClNrE6cQ?usp=share_link

aarch64-darwin

Result of nixpkgs-review pr 274319 --extra-nixpkgs-config '{ allowUnfree = true; allowBroken = false; cudaSupport = false; cudaCapabilities = [ ]; }' run on aarch64-darwin 1

74 packages failed to build:
  • python310Packages.ax
  • python310Packages.ax.dist
  • python310Packages.botorch
  • python310Packages.botorch.dist
  • python310Packages.detectron2
  • python310Packages.detectron2.dist
  • python310Packages.fastai
  • python310Packages.fastai.dist
  • python310Packages.flyingsquid
  • python310Packages.flyingsquid.dist
  • python310Packages.funsor
  • python310Packages.funsor.dist
  • python310Packages.gpytorch
  • python310Packages.gpytorch.dist
  • python310Packages.gradio
  • python310Packages.gradio.dist
  • python310Packages.k-diffusion
  • python310Packages.k-diffusion.dist
  • python310Packages.layoutparser
  • python310Packages.layoutparser.dist
  • python310Packages.linear-operator (python310Packages.linear_operator)
  • python310Packages.linear-operator.dist (python310Packages.linear_operator.dist)
  • python310Packages.mmcv
  • python310Packages.mmcv.dist
  • python310Packages.mmengine
  • python310Packages.mmengine.dist
  • python310Packages.pandas-stubs
  • python310Packages.pandas-stubs.dist
  • python310Packages.pdfplumber
  • python310Packages.pdfplumber.dist
  • python310Packages.pgmpy
  • python310Packages.pgmpy.dist
  • python310Packages.spacy
  • python310Packages.spacy-loggers
  • python310Packages.spacy-loggers.dist
  • python310Packages.spacy-lookups-data
  • python310Packages.spacy-lookups-data.dist
  • python310Packages.spacy-transformers
  • python310Packages.spacy-transformers.dist
  • python310Packages.spacy.dist
  • python310Packages.textacy
  • python310Packages.textacy.dist
  • python310Packages.textnets
  • python310Packages.textnets.dist
  • python310Packages.wandb
  • python310Packages.wandb.dist
  • python311Packages.ax
  • python311Packages.ax.dist
  • python311Packages.botorch
  • python311Packages.botorch.dist
  • python311Packages.detectron2
  • python311Packages.detectron2.dist
  • python311Packages.flyingsquid
  • python311Packages.flyingsquid.dist
  • python311Packages.funsor
  • python311Packages.funsor.dist
  • python311Packages.gpytorch
  • python311Packages.gpytorch.dist
  • python311Packages.gradio
  • python311Packages.gradio.dist
  • python311Packages.layoutparser
  • python311Packages.layoutparser.dist
  • python311Packages.linear-operator (python311Packages.linear_operator)
  • python311Packages.linear-operator.dist (python311Packages.linear_operator.dist)
  • python311Packages.mmcv
  • python311Packages.mmcv.dist
  • python311Packages.mmengine
  • python311Packages.mmengine.dist
  • python311Packages.pandas-stubs
  • python311Packages.pandas-stubs.dist
  • python311Packages.pdfplumber
  • python311Packages.pdfplumber.dist
  • python311Packages.pgmpy
  • python311Packages.pgmpy.dist
338 packages built:
  • easyocr (python311Packages.easyocr)
  • easyocr.dist (python311Packages.easyocr.dist)
  • pianotrans
  • pianotrans.dist
  • python310Packages.accelerate
  • python310Packages.accelerate.dist
  • python310Packages.apptools
  • python310Packages.apptools.dist
  • python310Packages.apricot-select
  • python310Packages.apricot-select.dist
  • python310Packages.atomman
  • python310Packages.atomman.dist
  • python310Packages.blosc2
  • python310Packages.blosc2.dist
  • python310Packages.clean-fid
  • python310Packages.clean-fid.dist
  • python310Packages.clip
  • python310Packages.clip-anytorch
  • python310Packages.clip-anytorch.dist
  • python310Packages.clip.dist
  • python310Packages.compressai
  • python310Packages.compressai.dist
  • python310Packages.dctorch
  • python310Packages.dctorch.dist
  • python310Packages.deepdish
  • python310Packages.deepdish.dist
  • python310Packages.diffusers
  • python310Packages.diffusers.dist
  • python310Packages.easyocr
  • python310Packages.easyocr.dist
  • python310Packages.effdet
  • python310Packages.effdet.dist
  • python310Packages.envisage
  • python310Packages.envisage.dist
  • python310Packages.experiment-utilities
  • python310Packages.experiment-utilities.dist
  • python310Packages.ezyrb
  • python310Packages.ezyrb.dist
  • python310Packages.facenet-pytorch
  • python310Packages.facenet-pytorch.dist
  • python310Packages.fairscale
  • python310Packages.fairscale.dist
  • python310Packages.farm-haystack
  • python310Packages.farm-haystack.dist
  • python310Packages.flammkuchen
  • python310Packages.flammkuchen.dist
  • python310Packages.fvcore
  • python310Packages.fvcore.dist
  • python310Packages.grad-cam
  • python310Packages.grad-cam.dist
  • python310Packages.guidance
  • python310Packages.guidance.dist
  • python310Packages.ignite
  • python310Packages.ignite.dist
  • python310Packages.imagededup
  • python310Packages.imagededup.dist
  • python310Packages.invisible-watermark
  • python310Packages.invisible-watermark.dist
  • python310Packages.iopath
  • python310Packages.iopath.dist
  • python310Packages.kornia
  • python310Packages.kornia.dist
  • python310Packages.lion-pytorch
  • python310Packages.lion-pytorch.dist
  • python310Packages.manifest-ml
  • python310Packages.manifest-ml.dist
  • python310Packages.mayavi
  • python310Packages.mayavi.dist
  • python310Packages.mdtraj
  • python310Packages.mdtraj.dist
  • python310Packages.minichain
  • python310Packages.minichain.dist
  • python310Packages.monai
  • python310Packages.monai.dist
  • python310Packages.monty
  • python310Packages.monty.dist
  • python310Packages.nianet
  • python310Packages.nianet.dist
  • python310Packages.open-clip-torch
  • python310Packages.open-clip-torch.dist
  • python310Packages.optimum
  • python310Packages.optimum.dist
  • python310Packages.peft
  • python310Packages.peft.dist
  • python310Packages.piano-transcription-inference
  • python310Packages.piano-transcription-inference.dist
  • python310Packages.pymatgen
  • python310Packages.pymatgen.dist
  • python310Packages.pyro-ppl
  • python310Packages.pyro-ppl.dist
  • python310Packages.torch (python310Packages.pytorch ,python310Packages.torchWithoutCuda ,python310Packages.torchWithoutRocm)
  • python310Packages.pytorch-lightning
  • python310Packages.pytorch-lightning.dist
  • python310Packages.pytorch-metric-learning
  • python310Packages.pytorch-metric-learning.dist
  • python310Packages.pytorch-msssim
  • python310Packages.pytorch-msssim.dist
  • python310Packages.torch.cxxdev (python310Packages.pytorch.cxxdev ,python310Packages.torchWithoutCuda.cxxdev ,python310Packages.torchWithoutRocm.cxxdev)
  • python310Packages.torch.dev (python310Packages.pytorch.dev ,python310Packages.torchWithoutCuda.dev ,python310Packages.torchWithoutRocm.dev)
  • python310Packages.torch.dist (python310Packages.pytorch.dist ,python310Packages.torchWithoutCuda.dist ,python310Packages.torchWithoutRocm.dist)
  • python310Packages.torch.lib (python310Packages.pytorch.lib ,python310Packages.torchWithoutCuda.lib ,python310Packages.torchWithoutRocm.lib)
  • python310Packages.qiskit-machine-learning
  • python310Packages.qiskit-machine-learning.dist
  • python310Packages.resize-right
  • python310Packages.resize-right.dist
  • python310Packages.rising
  • python310Packages.rising.dist
  • python310Packages.rotary-embedding-torch
  • python310Packages.rotary-embedding-torch.dist
  • python310Packages.safetensors
  • python310Packages.safetensors.dist
  • python310Packages.sentence-transformers
  • python310Packages.sentence-transformers.dist
  • python310Packages.sfepy
  • python310Packages.sfepy.dist
  • python310Packages.skorch
  • python310Packages.skorch.dist
  • python310Packages.slicer
  • python310Packages.slicer.dist
  • python310Packages.snorkel
  • python310Packages.snorkel.dist
  • python310Packages.speechbrain
  • python310Packages.speechbrain.dist
  • python310Packages.stanza
  • python310Packages.stanza.dist
  • python310Packages.sumo
  • python310Packages.sumo.dist
  • python310Packages.tables
  • python310Packages.tables.dist
  • python310Packages.tensorboardx
  • python310Packages.tensorboardx.dist
  • python310Packages.test-tube
  • python310Packages.test-tube.dist
  • python310Packages.timm
  • python310Packages.timm.dist
  • python310Packages.torch-tb-profiler
  • python310Packages.torch-tb-profiler.dist
  • python310Packages.torchaudio
  • python310Packages.torchaudio.dist
  • python310Packages.torchdiffeq
  • python310Packages.torchdiffeq.dist
  • python310Packages.torchgpipe
  • python310Packages.torchgpipe.dist
  • python310Packages.torchinfo
  • python310Packages.torchinfo.dist
  • python310Packages.torchlibrosa
  • python310Packages.torchlibrosa.dist
  • python310Packages.torchmetrics
  • python310Packages.torchmetrics.dist
  • python310Packages.torchsde
  • python310Packages.torchsde.dist
  • python310Packages.torchvision
  • python310Packages.torchvision.dist
  • python310Packages.trainer
  • python310Packages.trainer.dist
  • python310Packages.transformers
  • python310Packages.transformers.dist
  • python310Packages.ttach
  • python310Packages.ttach.dist
  • python310Packages.txtai
  • python310Packages.txtai.dist
  • python310Packages.webdataset
  • python310Packages.webdataset.dist
  • python310Packages.xformers
  • python310Packages.xformers.dist
  • python311Packages.accelerate
  • python311Packages.accelerate.dist
  • python311Packages.apptools
  • python311Packages.apptools.dist
  • python311Packages.apricot-select
  • python311Packages.apricot-select.dist
  • python311Packages.atomman
  • python311Packages.atomman.dist
  • python311Packages.blosc2
  • python311Packages.blosc2.dist
  • python311Packages.clean-fid
  • python311Packages.clean-fid.dist
  • python311Packages.clip
  • python311Packages.clip-anytorch
  • python311Packages.clip-anytorch.dist
  • python311Packages.clip.dist
  • python311Packages.compressai
  • python311Packages.compressai.dist
  • python311Packages.dctorch
  • python311Packages.dctorch.dist
  • python311Packages.deepdish
  • python311Packages.deepdish.dist
  • python311Packages.diffusers
  • python311Packages.diffusers.dist
  • python311Packages.effdet
  • python311Packages.effdet.dist
  • python311Packages.envisage
  • python311Packages.envisage.dist
  • python311Packages.experiment-utilities
  • python311Packages.experiment-utilities.dist
  • python311Packages.ezyrb
  • python311Packages.ezyrb.dist
  • python311Packages.facenet-pytorch
  • python311Packages.facenet-pytorch.dist
  • python311Packages.fairscale
  • python311Packages.fairscale.dist
  • python311Packages.farm-haystack
  • python311Packages.farm-haystack.dist
  • python311Packages.fastai
  • python311Packages.fastai.dist
  • python311Packages.flammkuchen
  • python311Packages.flammkuchen.dist
  • python311Packages.fvcore
  • python311Packages.fvcore.dist
  • python311Packages.grad-cam
  • python311Packages.grad-cam.dist
  • python311Packages.guidance
  • python311Packages.guidance.dist
  • python311Packages.ignite
  • python311Packages.ignite.dist
  • python311Packages.imagededup
  • python311Packages.imagededup.dist
  • python311Packages.invisible-watermark
  • python311Packages.invisible-watermark.dist
  • python311Packages.iopath
  • python311Packages.iopath.dist
  • python311Packages.k-diffusion
  • python311Packages.k-diffusion.dist
  • python311Packages.kornia
  • python311Packages.kornia.dist
  • python311Packages.lion-pytorch
  • python311Packages.lion-pytorch.dist
  • python311Packages.manifest-ml
  • python311Packages.manifest-ml.dist
  • python311Packages.mdtraj
  • python311Packages.mdtraj.dist
  • python311Packages.monai
  • python311Packages.monai.dist
  • python311Packages.monty
  • python311Packages.monty.dist
  • python311Packages.nianet
  • python311Packages.nianet.dist
  • python311Packages.open-clip-torch
  • python311Packages.open-clip-torch.dist
  • python311Packages.optimum
  • python311Packages.optimum.dist
  • python311Packages.peft
  • python311Packages.peft.dist
  • python311Packages.piano-transcription-inference
  • python311Packages.piano-transcription-inference.dist
  • python311Packages.pymatgen
  • python311Packages.pymatgen.dist
  • python311Packages.pyro-ppl
  • python311Packages.pyro-ppl.dist
  • python311Packages.torch (python311Packages.pytorch ,python311Packages.torchWithoutCuda ,python311Packages.torchWithoutRocm)
  • python311Packages.pytorch-lightning
  • python311Packages.pytorch-lightning.dist
  • python311Packages.pytorch-metric-learning
  • python311Packages.pytorch-metric-learning.dist
  • python311Packages.pytorch-msssim
  • python311Packages.pytorch-msssim.dist
  • python311Packages.torch.cxxdev (python311Packages.pytorch.cxxdev ,python311Packages.torchWithoutCuda.cxxdev ,python311Packages.torchWithoutRocm.cxxdev)
  • python311Packages.torch.dev (python311Packages.pytorch.dev ,python311Packages.torchWithoutCuda.dev ,python311Packages.torchWithoutRocm.dev)
  • python311Packages.torch.dist (python311Packages.pytorch.dist ,python311Packages.torchWithoutCuda.dist ,python311Packages.torchWithoutRocm.dist)
  • python311Packages.torch.lib (python311Packages.pytorch.lib ,python311Packages.torchWithoutCuda.lib ,python311Packages.torchWithoutRocm.lib)
  • python311Packages.resize-right
  • python311Packages.resize-right.dist
  • python311Packages.rising
  • python311Packages.rising.dist
  • python311Packages.rotary-embedding-torch
  • python311Packages.rotary-embedding-torch.dist
  • python311Packages.safetensors
  • python311Packages.safetensors.dist
  • python311Packages.sentence-transformers
  • python311Packages.sentence-transformers.dist
  • python311Packages.sfepy
  • python311Packages.sfepy.dist
  • python311Packages.skorch
  • python311Packages.skorch.dist
  • python311Packages.slicer
  • python311Packages.slicer.dist
  • python311Packages.snorkel
  • python311Packages.snorkel.dist
  • python311Packages.spacy
  • python311Packages.spacy-loggers
  • python311Packages.spacy-loggers.dist
  • python311Packages.spacy-lookups-data
  • python311Packages.spacy-lookups-data.dist
  • python311Packages.spacy-transformers
  • python311Packages.spacy-transformers.dist
  • python311Packages.spacy.dist
  • python311Packages.speechbrain
  • python311Packages.speechbrain.dist
  • python311Packages.stanza
  • python311Packages.stanza.dist
  • python311Packages.sumo
  • python311Packages.sumo.dist
  • python311Packages.tables
  • python311Packages.tables.dist
  • python311Packages.tensorboardx
  • python311Packages.tensorboardx.dist
  • python311Packages.test-tube
  • python311Packages.test-tube.dist
  • python311Packages.textacy
  • python311Packages.textacy.dist
  • python311Packages.textnets
  • python311Packages.textnets.dist
  • python311Packages.timm
  • python311Packages.timm.dist
  • python311Packages.torch-tb-profiler
  • python311Packages.torch-tb-profiler.dist
  • python311Packages.torchaudio
  • python311Packages.torchaudio.dist
  • python311Packages.torchdiffeq
  • python311Packages.torchdiffeq.dist
  • python311Packages.torchgpipe
  • python311Packages.torchgpipe.dist
  • python311Packages.torchinfo
  • python311Packages.torchinfo.dist
  • python311Packages.torchlibrosa
  • python311Packages.torchlibrosa.dist
  • python311Packages.torchmetrics
  • python311Packages.torchmetrics.dist
  • python311Packages.torchsde
  • python311Packages.torchsde.dist
  • python311Packages.torchvision
  • python311Packages.torchvision.dist
  • python311Packages.trainer
  • python311Packages.trainer.dist
  • python311Packages.transformers
  • python311Packages.transformers.dist
  • python311Packages.ttach
  • python311Packages.ttach.dist
  • python311Packages.txtai
  • python311Packages.txtai.dist
  • python311Packages.wandb
  • python311Packages.wandb.dist
  • python311Packages.webdataset
  • python311Packages.webdataset.dist
  • python311Packages.xformers
  • python311Packages.xformers.dist
  • rclip
  • rclip.dist

x86_64-darwin

Result of nixpkgs-review pr 274319 --extra-nixpkgs-config '{ allowUnfree = true; allowBroken = false; cudaSupport = false; cudaCapabilities = [ ]; }' run on x86_64-darwin 1

132 packages failed to build:
  • python310Packages.apptools
  • python310Packages.apptools.dist
  • python310Packages.argos-translate-files
  • python310Packages.argos-translate-files.dist
  • python310Packages.argostranslate
  • python310Packages.argostranslate.dist
  • python310Packages.ax
  • python310Packages.ax.dist
  • python310Packages.blosc2
  • python310Packages.blosc2.dist
  • python310Packages.ctranslate2
  • python310Packages.ctranslate2.dist
  • python310Packages.deepdish
  • python310Packages.deepdish.dist
  • python310Packages.detectron2
  • python310Packages.detectron2.dist
  • python310Packages.envisage
  • python310Packages.envisage.dist
  • python310Packages.fastai
  • python310Packages.fastai.dist
  • python310Packages.faster-whisper
  • python310Packages.faster-whisper.dist
  • python310Packages.flammkuchen
  • python310Packages.flammkuchen.dist
  • python310Packages.funsor
  • python310Packages.funsor.dist
  • python310Packages.gradio
  • python310Packages.gradio.dist
  • python310Packages.k-diffusion
  • python310Packages.k-diffusion.dist
  • python310Packages.layoutparser
  • python310Packages.layoutparser.dist
  • python310Packages.mayavi
  • python310Packages.mayavi.dist
  • python310Packages.mdtraj
  • python310Packages.mdtraj.dist
  • python310Packages.mmcv
  • python310Packages.mmcv.dist
  • python310Packages.mmengine
  • python310Packages.mmengine.dist
  • python310Packages.pandas-stubs
  • python310Packages.pandas-stubs.dist
  • python310Packages.pdfplumber
  • python310Packages.pdfplumber.dist
  • python310Packages.qiskit-machine-learning
  • python310Packages.qiskit-machine-learning.dist
  • python310Packages.sfepy
  • python310Packages.sfepy.dist
  • python310Packages.spacy
  • python310Packages.spacy-loggers
  • python310Packages.spacy-loggers.dist
  • python310Packages.spacy-lookups-data
  • python310Packages.spacy-lookups-data.dist
  • python310Packages.spacy-transformers
  • python310Packages.spacy-transformers.dist
  • python310Packages.spacy.dist
  • python310Packages.tables
  • python310Packages.tables.dist
  • python310Packages.textacy
  • python310Packages.textacy.dist
  • python310Packages.textnets
  • python310Packages.textnets.dist
  • python310Packages.translatehtml
  • python310Packages.translatehtml.dist
  • python310Packages.wandb
  • python310Packages.wandb.dist
  • python311Packages.apptools
  • python311Packages.apptools.dist
  • python311Packages.argos-translate-files
  • python311Packages.argos-translate-files.dist
  • python311Packages.argostranslate
  • python311Packages.argostranslate.dist
  • python311Packages.ax
  • python311Packages.ax.dist
  • python311Packages.blosc2
  • python311Packages.blosc2.dist
  • python311Packages.ctranslate2
  • python311Packages.ctranslate2.dist
  • python311Packages.deepdish
  • python311Packages.deepdish.dist
  • python311Packages.detectron2
  • python311Packages.detectron2.dist
  • python311Packages.envisage
  • python311Packages.envisage.dist
  • python311Packages.fastai
  • python311Packages.fastai.dist
  • python311Packages.faster-whisper
  • python311Packages.faster-whisper.dist
  • python311Packages.flammkuchen
  • python311Packages.flammkuchen.dist
  • python311Packages.funsor
  • python311Packages.funsor.dist
  • python311Packages.gradio
  • python311Packages.gradio.dist
  • python311Packages.k-diffusion
  • python311Packages.k-diffusion.dist
  • python311Packages.layoutparser
  • python311Packages.layoutparser.dist
  • python311Packages.mdtraj
  • python311Packages.mdtraj.dist
  • python311Packages.mmcv
  • python311Packages.mmcv.dist
  • python311Packages.mmengine
  • python311Packages.mmengine.dist
  • python311Packages.pandas-stubs
  • python311Packages.pandas-stubs.dist
  • python311Packages.pdfplumber
  • python311Packages.pdfplumber.dist
  • python311Packages.sfepy
  • python311Packages.sfepy.dist
  • python311Packages.spacy
  • python311Packages.spacy-loggers
  • python311Packages.spacy-loggers.dist
  • python311Packages.spacy-lookups-data
  • python311Packages.spacy-lookups-data.dist
  • python311Packages.spacy-transformers
  • python311Packages.spacy-transformers.dist
  • python311Packages.spacy.dist
  • python311Packages.tables
  • python311Packages.tables.dist
  • python311Packages.textacy
  • python311Packages.textacy.dist
  • python311Packages.textnets
  • python311Packages.textnets.dist
  • python311Packages.translatehtml
  • python311Packages.translatehtml.dist
  • python311Packages.wandb
  • python311Packages.wandb.dist
  • whisper-ctranslate2
  • whisper-ctranslate2.dist
  • wyoming-faster-whisper
  • wyoming-faster-whisper.dist
308 packages built:
  • easyocr (python311Packages.easyocr)
  • easyocr.dist (python311Packages.easyocr.dist)
  • pianotrans
  • pianotrans.dist
  • python310Packages.accelerate
  • python310Packages.accelerate.dist
  • python310Packages.apricot-select
  • python310Packages.apricot-select.dist
  • python310Packages.atomman
  • python310Packages.atomman.dist
  • python310Packages.botorch
  • python310Packages.botorch.dist
  • python310Packages.clean-fid
  • python310Packages.clean-fid.dist
  • python310Packages.clip
  • python310Packages.clip-anytorch
  • python310Packages.clip-anytorch.dist
  • python310Packages.clip.dist
  • python310Packages.compressai
  • python310Packages.compressai.dist
  • python310Packages.dctorch
  • python310Packages.dctorch.dist
  • python310Packages.diffusers
  • python310Packages.diffusers.dist
  • python310Packages.easyocr
  • python310Packages.easyocr.dist
  • python310Packages.effdet
  • python310Packages.effdet.dist
  • python310Packages.experiment-utilities
  • python310Packages.experiment-utilities.dist
  • python310Packages.ezyrb
  • python310Packages.ezyrb.dist
  • python310Packages.facenet-pytorch
  • python310Packages.facenet-pytorch.dist
  • python310Packages.fairscale
  • python310Packages.fairscale.dist
  • python310Packages.farm-haystack
  • python310Packages.farm-haystack.dist
  • python310Packages.flyingsquid
  • python310Packages.flyingsquid.dist
  • python310Packages.fvcore
  • python310Packages.fvcore.dist
  • python310Packages.gpytorch
  • python310Packages.gpytorch.dist
  • python310Packages.grad-cam
  • python310Packages.grad-cam.dist
  • python310Packages.guidance
  • python310Packages.guidance.dist
  • python310Packages.ignite
  • python310Packages.ignite.dist
  • python310Packages.imagededup
  • python310Packages.imagededup.dist
  • python310Packages.invisible-watermark
  • python310Packages.invisible-watermark.dist
  • python310Packages.iopath
  • python310Packages.iopath.dist
  • python310Packages.kornia
  • python310Packages.kornia.dist
  • python310Packages.linear-operator (python310Packages.linear_operator)
  • python310Packages.linear-operator.dist (python310Packages.linear_operator.dist)
  • python310Packages.lion-pytorch
  • python310Packages.lion-pytorch.dist
  • python310Packages.manifest-ml
  • python310Packages.manifest-ml.dist
  • python310Packages.minichain
  • python310Packages.minichain.dist
  • python310Packages.monai
  • python310Packages.monai.dist
  • python310Packages.monty
  • python310Packages.monty.dist
  • python310Packages.nianet
  • python310Packages.nianet.dist
  • python310Packages.open-clip-torch
  • python310Packages.open-clip-torch.dist
  • python310Packages.optimum
  • python310Packages.optimum.dist
  • python310Packages.peft
  • python310Packages.peft.dist
  • python310Packages.pgmpy
  • python310Packages.pgmpy.dist
  • python310Packages.piano-transcription-inference
  • python310Packages.piano-transcription-inference.dist
  • python310Packages.pydmd
  • python310Packages.pydmd.dist
  • python310Packages.pymatgen
  • python310Packages.pymatgen.dist
  • python310Packages.pyro-ppl
  • python310Packages.pyro-ppl.dist
  • python310Packages.torch (python310Packages.pytorch ,python310Packages.torchWithoutCuda ,python310Packages.torchWithoutRocm)
  • python310Packages.pytorch-lightning
  • python310Packages.pytorch-lightning.dist
  • python310Packages.pytorch-metric-learning
  • python310Packages.pytorch-metric-learning.dist
  • python310Packages.pytorch-msssim
  • python310Packages.pytorch-msssim.dist
  • python310Packages.torch.cxxdev (python310Packages.pytorch.cxxdev ,python310Packages.torchWithoutCuda.cxxdev ,python310Packages.torchWithoutRocm.cxxdev)
  • python310Packages.torch.dev (python310Packages.pytorch.dev ,python310Packages.torchWithoutCuda.dev ,python310Packages.torchWithoutRocm.dev)
  • python310Packages.torch.dist (python310Packages.pytorch.dist ,python310Packages.torchWithoutCuda.dist ,python310Packages.torchWithoutRocm.dist)
  • python310Packages.torch.lib (python310Packages.pytorch.lib ,python310Packages.torchWithoutCuda.lib ,python310Packages.torchWithoutRocm.lib)
  • python310Packages.resize-right
  • python310Packages.resize-right.dist
  • python310Packages.rising
  • python310Packages.rising.dist
  • python310Packages.rotary-embedding-torch
  • python310Packages.rotary-embedding-torch.dist
  • python310Packages.safetensors
  • python310Packages.safetensors.dist
  • python310Packages.sentence-transformers
  • python310Packages.sentence-transformers.dist
  • python310Packages.skorch
  • python310Packages.skorch.dist
  • python310Packages.slicer
  • python310Packages.slicer.dist
  • python310Packages.snorkel
  • python310Packages.snorkel.dist
  • python310Packages.speechbrain
  • python310Packages.speechbrain.dist
  • python310Packages.stanza
  • python310Packages.stanza.dist
  • python310Packages.sumo
  • python310Packages.sumo.dist
  • python310Packages.tensorboardx
  • python310Packages.tensorboardx.dist
  • python310Packages.test-tube
  • python310Packages.test-tube.dist
  • python310Packages.timm
  • python310Packages.timm.dist
  • python310Packages.torch-tb-profiler
  • python310Packages.torch-tb-profiler.dist
  • python310Packages.torchaudio
  • python310Packages.torchaudio.dist
  • python310Packages.torchdiffeq
  • python310Packages.torchdiffeq.dist
  • python310Packages.torchgpipe
  • python310Packages.torchgpipe.dist
  • python310Packages.torchinfo
  • python310Packages.torchinfo.dist
  • python310Packages.torchlibrosa
  • python310Packages.torchlibrosa.dist
  • python310Packages.torchmetrics
  • python310Packages.torchmetrics.dist
  • python310Packages.torchsde
  • python310Packages.torchsde.dist
  • python310Packages.torchvision
  • python310Packages.torchvision.dist
  • python310Packages.trainer
  • python310Packages.trainer.dist
  • python310Packages.transformers
  • python310Packages.transformers.dist
  • python310Packages.ttach
  • python310Packages.ttach.dist
  • python310Packages.txtai
  • python310Packages.txtai.dist
  • python310Packages.webdataset
  • python310Packages.webdataset.dist
  • python310Packages.xformers
  • python310Packages.xformers.dist
  • python311Packages.accelerate
  • python311Packages.accelerate.dist
  • python311Packages.apricot-select
  • python311Packages.apricot-select.dist
  • python311Packages.atomman
  • python311Packages.atomman.dist
  • python311Packages.botorch
  • python311Packages.botorch.dist
  • python311Packages.clean-fid
  • python311Packages.clean-fid.dist
  • python311Packages.clip
  • python311Packages.clip-anytorch
  • python311Packages.clip-anytorch.dist
  • python311Packages.clip.dist
  • python311Packages.compressai
  • python311Packages.compressai.dist
  • python311Packages.dctorch
  • python311Packages.dctorch.dist
  • python311Packages.diffusers
  • python311Packages.diffusers.dist
  • python311Packages.effdet
  • python311Packages.effdet.dist
  • python311Packages.experiment-utilities
  • python311Packages.experiment-utilities.dist
  • python311Packages.ezyrb
  • python311Packages.ezyrb.dist
  • python311Packages.facenet-pytorch
  • python311Packages.facenet-pytorch.dist
  • python311Packages.fairscale
  • python311Packages.fairscale.dist
  • python311Packages.farm-haystack
  • python311Packages.farm-haystack.dist
  • python311Packages.flyingsquid
  • python311Packages.flyingsquid.dist
  • python311Packages.fvcore
  • python311Packages.fvcore.dist
  • python311Packages.gpytorch
  • python311Packages.gpytorch.dist
  • python311Packages.grad-cam
  • python311Packages.grad-cam.dist
  • python311Packages.guidance
  • python311Packages.guidance.dist
  • python311Packages.ignite
  • python311Packages.ignite.dist
  • python311Packages.imagededup
  • python311Packages.imagededup.dist
  • python311Packages.invisible-watermark
  • python311Packages.invisible-watermark.dist
  • python311Packages.iopath
  • python311Packages.iopath.dist
  • python311Packages.kornia
  • python311Packages.kornia.dist
  • python311Packages.linear-operator (python311Packages.linear_operator)
  • python311Packages.linear-operator.dist (python311Packages.linear_operator.dist)
  • python311Packages.lion-pytorch
  • python311Packages.lion-pytorch.dist
  • python311Packages.manifest-ml
  • python311Packages.manifest-ml.dist
  • python311Packages.monai
  • python311Packages.monai.dist
  • python311Packages.monty
  • python311Packages.monty.dist
  • python311Packages.nianet
  • python311Packages.nianet.dist
  • python311Packages.open-clip-torch
  • python311Packages.open-clip-torch.dist
  • python311Packages.optimum
  • python311Packages.optimum.dist
  • python311Packages.peft
  • python311Packages.peft.dist
  • python311Packages.pgmpy
  • python311Packages.pgmpy.dist
  • python311Packages.piano-transcription-inference
  • python311Packages.piano-transcription-inference.dist
  • python311Packages.pydmd
  • python311Packages.pydmd.dist
  • python311Packages.pymatgen
  • python311Packages.pymatgen.dist
  • python311Packages.pyro-ppl
  • python311Packages.pyro-ppl.dist
  • python311Packages.torch (python311Packages.pytorch ,python311Packages.torchWithoutCuda ,python311Packages.torchWithoutRocm)
  • python311Packages.pytorch-lightning
  • python311Packages.pytorch-lightning.dist
  • python311Packages.pytorch-metric-learning
  • python311Packages.pytorch-metric-learning.dist
  • python311Packages.pytorch-msssim
  • python311Packages.pytorch-msssim.dist
  • python311Packages.torch.cxxdev (python311Packages.pytorch.cxxdev ,python311Packages.torchWithoutCuda.cxxdev ,python311Packages.torchWithoutRocm.cxxdev)
  • python311Packages.torch.dev (python311Packages.pytorch.dev ,python311Packages.torchWithoutCuda.dev ,python311Packages.torchWithoutRocm.dev)
  • python311Packages.torch.dist (python311Packages.pytorch.dist ,python311Packages.torchWithoutCuda.dist ,python311Packages.torchWithoutRocm.dist)
  • python311Packages.torch.lib (python311Packages.pytorch.lib ,python311Packages.torchWithoutCuda.lib ,python311Packages.torchWithoutRocm.lib)
  • python311Packages.resize-right
  • python311Packages.resize-right.dist
  • python311Packages.rising
  • python311Packages.rising.dist
  • python311Packages.rotary-embedding-torch
  • python311Packages.rotary-embedding-torch.dist
  • python311Packages.safetensors
  • python311Packages.safetensors.dist
  • python311Packages.sentence-transformers
  • python311Packages.sentence-transformers.dist
  • python311Packages.skorch
  • python311Packages.skorch.dist
  • python311Packages.slicer
  • python311Packages.slicer.dist
  • python311Packages.snorkel
  • python311Packages.snorkel.dist
  • python311Packages.speechbrain
  • python311Packages.speechbrain.dist
  • python311Packages.stanza
  • python311Packages.stanza.dist
  • python311Packages.sumo
  • python311Packages.sumo.dist
  • python311Packages.tensorboardx
  • python311Packages.tensorboardx.dist
  • python311Packages.test-tube
  • python311Packages.test-tube.dist
  • python311Packages.timm
  • python311Packages.timm.dist
  • python311Packages.torch-tb-profiler
  • python311Packages.torch-tb-profiler.dist
  • python311Packages.torchaudio
  • python311Packages.torchaudio.dist
  • python311Packages.torchdiffeq
  • python311Packages.torchdiffeq.dist
  • python311Packages.torchgpipe
  • python311Packages.torchgpipe.dist
  • python311Packages.torchinfo
  • python311Packages.torchinfo.dist
  • python311Packages.torchlibrosa
  • python311Packages.torchlibrosa.dist
  • python311Packages.torchmetrics
  • python311Packages.torchmetrics.dist
  • python311Packages.torchsde
  • python311Packages.torchsde.dist
  • python311Packages.torchvision
  • python311Packages.torchvision.dist
  • python311Packages.trainer
  • python311Packages.trainer.dist
  • python311Packages.transformers
  • python311Packages.transformers.dist
  • python311Packages.ttach
  • python311Packages.ttach.dist
  • python311Packages.txtai
  • python311Packages.txtai.dist
  • python311Packages.webdataset
  • python311Packages.webdataset.dist
  • python311Packages.xformers
  • python311Packages.xformers.dist
  • rclip
  • rclip.dist

🕐 aarch64-linux

🕐 Jetson

🕐 Non-Jetson

🕐 Non-CUDA

🕐 x86_64-linux

🕐 Non-Jetson

🕐 Non-CUDA

Copy link
Contributor

@philiptaron philiptaron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I took a look. Really appreciate the aim of this issue. Will continue to look as it gets towards completion.

@ConnorBaker ConnorBaker force-pushed the feat/cudaPackages-all-packages-eval branch from 4f9e5d1 to 138ac2c Compare December 15, 2023 00:12
@SomeoneSerge
Copy link
Contributor

My understanding is that meta.platform should list all of the platforms the package potentially could support, and that we prefer it to be static. It is also sufficient to set badPlatforms to affect meta.unsupported:

nix-repl> (runCommand "" { meta.badPlatforms = [builtins.currentSystem]; } "").meta.unsupported
true

I don't think we need to specify badPlatforms for source-provisioned packages, given that their dependencies' outPaths do not throw (well, except for the broken/unsupported errors). I didn't validate this however

@ConnorBaker ConnorBaker force-pushed the feat/cudaPackages-all-packages-eval branch 5 times, most recently from d981cdb to 4c27877 Compare December 15, 2023 03:24
@ConnorBaker
Copy link
Contributor Author

My understanding is that meta.platform should list all of the platforms the package potentially could support, and that we prefer it to be static. It is also sufficient to set badPlatforms to affect meta.unsupported:

nix-repl> (runCommand "" { meta.badPlatforms = [builtins.currentSystem]; } "").meta.unsupported
true

I don't think we need to specify badPlatforms for source-provisioned packages, given that their dependencies' outPaths do not throw (well, except for the broken/unsupported errors). I didn't validate this however

Ah, yes I agree. I've switched to using brokenConditions for unrecognized or unsupported platforms (in the code this is the different between redistArch being null and src being set to null): https://github.com/NixOS/nixpkgs/blob/4c27877794122e7300f5cea588aa50c60c31b210/pkgs/development/cuda-modules/generic-builders/manifest.nix#L112-L117

getNixSystem has changed so it now returns aarch64-linux regardless of what we're targeting. Here's the old code:

# Maps NVIDIA redist arch to Nix system.
# It is imperative that we include the boolean condition based on jetsonTargets to ensure
# we don't advertise availability of packages only available on server-grade ARM
# as being available for the Jetson, since both `linux-sbsa` and `linux-aarch64` are
# mapped to the Nix system `aarch64-linux`.
getNixSystem =
redistArch:
if redistArch == "linux-sbsa" && jetsonTargets == [] then
"aarch64-linux"
else if redistArch == "linux-aarch64" && jetsonTargets != [] then
"aarch64-linux"
else if redistArch == "linux-x86_64" then
"x86_64-linux"
else if redistArch == "linux-ppc64le" then
"ppc64le-linux"
else if redistArch == "windows-x86_64" then
"x86_64-windows"
else
builtins.throw "Unsupported NVIDIA redist arch: ${redistArch}";

And here's the new code:

https://github.com/NixOS/nixpkgs/blob/4c27877794122e7300f5cea588aa50c60c31b210/pkgs/development/cuda-modules/flags.nix#L145-L156

As a result, we can now see platforms for packages which aren't available on the current host (previously this would return the empty list when evaluated on x86_64-linux:

$ nix eval --impure .#cudaPackages.cuda_compat.meta.platforms
[ "aarch64-linux" ]

@ConnorBaker ConnorBaker marked this pull request as ready for review December 15, 2023 03:29
@delroth delroth added the 12.approvals: 1 This PR was reviewed and approved by one reputable person label Dec 15, 2023
@ConnorBaker
Copy link
Contributor Author

ConnorBaker commented Dec 15, 2023

OfBorg, you're killing me. I'm running Nixpkgs-review on four different platforms with a total of seven different configurations and I'm not running into the eval error you are with Magma.

I suspect it's something to do with magma-cuda or magma-cuda-static, as those have cudaSupport forcibly set and that's the only reason OfBorg should be evaluating the build inputs gated by cudaSupport on unsupported platforms (like Darwin).

EDIT: Oh, right, OfBorg ignores meta.broken, so I need to set Darwin as a bad platform at the top level for the CUDA stuff.

EDIT2: Now it's failing while evaluating CUDA overrides: https://gist.github.com/GrahamcOfBorg/27410dc21a9025acf2a21363e2df48d2

@ConnorBaker ConnorBaker force-pushed the feat/cudaPackages-all-packages-eval branch from 4c27877 to d83fc41 Compare December 15, 2023 04:44
@ConnorBaker ConnorBaker force-pushed the feat/cudaPackages-all-packages-eval branch 3 times, most recently from 3d1531b to 90d6577 Compare January 3, 2024 18:04
@delroth delroth removed the 12.approvals: 1 This PR was reviewed and approved by one reputable person label Jan 3, 2024
@ConnorBaker ConnorBaker force-pushed the feat/cudaPackages-all-packages-eval branch from 9a89180 to b2f97e1 Compare January 10, 2024 01:15
let
isBadPlatform = lists.any trivial.id (attrsets.attrValues finalAttrs.badPlatformsConditions);
in
lists.optionals isBadPlatform finalAttrs.meta.platforms;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"huh! Why are platforms and badPlatforms the same?"

Is this less or more confusing than adding just the current platform?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine, personally.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup probably a good thing we get the same meta regardless of where we evaluate

Copy link
Contributor

@philiptaron philiptaron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see ofborg is happy. The code changes look reasonable to me.

# `all-packages.nix`, which is evaluated on all systems. As such, we need to handle unsupported
# systems gracefully.
# getNixSystem :: String -> String
getNixSystem = redistArch: attrsets.attrByPath [ redistArch ] "unsupported-${redistArch}" {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be clear, I introduced the stringly string because I was in a rush. We should probably return some sort of Result/{ value, error } (e.g. in the format of tryEval)

I'll add a ticket to the project board for that

@SomeoneSerge
Copy link
Contributor

I wonder if x.meta.unsupported (as well as badPlatforms = platforms) is wrong wrt splicing but I guess we can figure that out later?

@SomeoneSerge
Copy link
Contributor

❯ nix repl
Welcome to Nix 2.19.2. Type :? for help.
nix-repl> :l <nixpkgs>                                                         
Added 20031 variables.
nix-repl> pkgs = import <nixpkgs> { system = "x86_64-linux"; crossSystem = "aarch64-linux"; config.cudaCapabilities = [ "7.2" ]; }
nix-repl> lib.meta.availableOn pkgs.hostPlatform pkgs.cudaPackages.cuda_compat
true
nix-repl> lib.meta.availableOn pkgs.buildPlatform pkgs.cudaPackages.cuda_compat
false

How about that

Copy link
Contributor

@SomeoneSerge SomeoneSerge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ConnorBaker let's merge today

RE: meta.availableOn

There's a separate PR for cross

@SomeoneSerge SomeoneSerge merged commit e529aea into NixOS:master Jan 11, 2024
22 checks passed
@ConnorBaker ConnorBaker deleted the feat/cudaPackages-all-packages-eval branch January 11, 2024 20:52
@SomeoneSerge

This comment was marked as duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

cudaPackages: all outPaths should be evaluate-able
4 participants