CQCL / pytket-cutensornet

cuTensorNet Python API extensions for pytket quantum SDK
Apache License 2.0
8 stars 1 forks source link

Feature/nix support #131

Open jake-arkinstall opened 1 week ago

jake-arkinstall commented 1 week ago

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

jake-arkinstall commented 20 hours ago

This is still waiting on two things:

  1. Cachix environment variable - when set, built binaries will be uploaded to the cache. However, we do not wish to do this until Cachix supports adding additional upstreams, otherwise we end up uploading bulky nvidia libraries to our own cache, and we have limited storage. If we could add cuda-maintainers.cachix.org to our upstreams, this would not happen. After reaching out to Domen, he mentioned that this functionality is on its way.

  2. A test runner. We need GPU capabilities on a github actions runner in order for this to work. I am happy to donate my dev machine for this but we could do with something in-office.

Additionally, I am now leaning towards the idea of centralising our nix stuff into its own 'tketpkgs' repo.