Skip to content

Performance-focused defaults #5

@SomeoneSerge

Description

@SomeoneSerge

Is your feature request related to a problem? Please describe.

I only use unfree when I build for sci-comp applications. This virtually always means that I also want:

cudaSupport = true

blas = prev.blas.override {
    blasProvider = final.mkl;
};

lapack = prev.lapack.override {
    lapackProvider = final.mkl;
};

There could be other options that people commonly use together with allowUnfree.
At least the ones listed cause a significant amount of rebuilds.

Describe the solution you'd like

Choose an acceptable set of "defaults", including the config and an overlay, that are common for sci-comp purposes.
Build and cache nixpkgs with these defaults.

Describe alternatives you've considered

There seem to be two purposes to this flake:

  • Being the single root instance for all nixpkgs that have unfree packages enabled
  • Providing the infrastructure for testing and caching the heavy unfree packages

Overriding globally the cudaSupport and blas might potentially be detrimental to the former. We might want to still expose the "simplest" nixpkgs by default (i.e. allowUnfree = true only), but I think it's important that a modest overlay like above does not result in too many cache-misses

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions