-
Notifications
You must be signed in to change notification settings - Fork 1
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
Feature/nix support #131
Feature/nix support #131
Conversation
This is still waiting on two things:
Additionally, I am now leaning towards the idea of centralising our nix stuff into its own 'tketpkgs' repo. |
3bab802
to
2c349d1
Compare
This commit utilises some cuda and python packages from nixpkgs to fetch dependencies, and also provides missing dependencies and upgrades to several dependencies. It allows one to run `nix build .#pytket-cutensornet` (or `nix build` for short) to build the tket extension. Tests can't be run within the normal `nix flake check` context as the GPU drivers aren't available within the sandbox, so tests can be run with `nix run .#tests` instead. `nix develop` within the source root can be used to enter a shell with pytket's cutensornet backend available. If and when this commit is merged into main, users will be able to run: `nix develop github:cqcl/pytket-cutensornet` and have the environment fully loaded for their use. Cuda support is verified on nixos. Verification on non-nixos nix installations will be required for general use. Integration with Cachix will be extremely beneficial due to the size and duration of the builds.
a797607
to
8aac308
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Had a chat with Jake, makes sense!
Description
This is a WIP PR to add nix support to the repo. The aim is to combat the packaging requirements around cuda and tket.
It is not ready for merging yet. For effective use there are three things remaining:
When this is ready and merged, CI should build any changes and upload them to cachix. I will pre-populate cachix with the heavy dependencies to make this process quick and easy. When this is all in place, we can think about use the nix flake for testing in CI using a gpu-enabled machine without being concerned about the awkward dependency setup process.
Related issues
N/A
Checklist