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

nix_example.md: refactor #1401

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 23 additions & 23 deletions examples/nix_example.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# Guide to Nix for KoboldCpp

- KoboldCpp is available on Nixpkgs and can be installed by adding just `koboldcpp` to your `environment.systemPackages` *(or it can also be placed in `home.packages`)*.
- KoboldCpp is available on Nixpkgs and can be installed by adding just
`koboldcpp` to your `environment.systemPackages` *(or it can also be placed
in `home.packages`)*.

## KoboldCpp Nix - CUDA Support

In order to enable NVIDIA CUDA support, you'll need to configure several settings:
In order to enable NVIDIA CUDA support, you'll need to configure several
settings:

- Enable required options:

Expand All @@ -13,20 +16,10 @@ nixpkgs.config.allowUnfree = true; # Allow proprietary software
nixpkgs.config.cudaSupport = true; # Enable CUDA functionality
```

- Enable graphics support based on your NixOS version:

```nix
# For NixOS 24.05:
hardware.opengl.enable = true;

# For NixOS 24.11 or unstable:
hardware.graphics.enable = true;
```

- Set your GPU architecture:

```nix
nixpkgs.config.cudaArches = [ "sm_75" ]; # Example for RTX 2080
nixpkgs.config.cudaCapabilities = [ "sm_75" ]; # Example for RTX 2080
```

To find your GPU's architecture code:
Expand All @@ -37,7 +30,7 @@ To find your GPU's architecture code:

## Hardware Support

- ✅ Vulkan: Enabled by default on Linux and macOS
- ✅ Vulkan: Enabled by default on Linux
- ✅ Metal: Enabled by default on macOS
- ❌ ROCm: Not currently available

Expand All @@ -47,24 +40,31 @@ To find your GPU's architecture code:
nixpkgs.config = {
allowUnfree = true;
cudaSupport = true;
cudaArches = [ "sm_75" ];
cudaCapabilities = [ "sm_75" ];
};
# NixOS 24.05
hardware.opengl.enable = true;
# NixOS 24.11 or unstable
# hardware.graphics.enable = true;
environment.systemPackages = [ pkgs.koboldcpp ];
# If you're using home-manager to install KoboldCpp
# home.packages = [ pkgs.koboldcpp ];

# You can also just override koboldcpp to add your CUDA architecture:
# environment.systemPackages = [ (koboldcpp.override { cudaArches = ["sm_75"]; }) ]
# or
# home.packages = [ (koboldcpp.override { cudaArches = ["sm_75"]; }) ];
```

## KoboldCpp - Home Manager

The setup for Home Manager is the same as regular Nix, with one exception regarding Home Manager's instance of nixpkgs. By default, Home Manager manages its own isolated instance of nixpkgs, which has two implications:
The setup for Home Manager is the same as regular Nix, with one exception
regarding Home Manager's instance of nixpkgs. By default, Home Manager manages
its own isolated instance of nixpkgs, which has two implications:

1. You can keep your private Home Manager nixpkgs instance and simply repeat your `nixpkgs.config` in home manager.
2. You can set `home-manager.useGlobalPkgs = true;` to copy your module system's nixpkgs instance. This way, you only need to define it in your `configuration.nix`, and Home Manager will "inherit" this configuration.
1. You can keep your private Home Manager nixpkgs instance and simply repeat
your `nixpkgs.config` in home manager.
2. You can set `home-manager.useGlobalPkgs = true;` to copy your module
system's nixpkgs instance. This way, you only need to define it in your
`configuration.nix`, and Home Manager will "inherit" this configuration.

## Getting Help for KoboldCpp Nix

- If you face any issues with running KoboldCpp on Nix, please open an issue [here](https://github.com/NixOS/nixpkgs/issues/new?assignees=&labels=0.kind%3A+bug&projects=&template=bug_report.md&title=)
- If you face any issues with running KoboldCpp on Nix, please open an issue
[here](https://github.com/NixOS/nixpkgs/issues/new?assignees=&labels=0.kind%3A+bug&projects=&template=bug_report.md&title=)