You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -97,60 +95,75 @@ After adding the repository, synchronize the package manager again:
97
95
sudo dnf distro-sync
98
96
```
99
97
100
-
## Installing `nvidia-driver-libs` and `nvidia-driver-cuda-libs`
98
+
## Installing Nvidia Driver Libraries
101
99
102
-
We need to detect if the host is supplying the [NVIDIA driver libraries into the toolbox](https://github.com/containers/toolbox/blob/main/src/pkg/nvidia/nvidia.go).
100
+
First, we need to detect if the host is supplying the [NVIDIA driver libraries into the toolbox](https://github.com/containers/toolbox/blob/main/src/pkg/nvidia/nvidia.go):
103
101
104
102
```bash
105
103
ls -la /usr/lib64/libcuda.so.1
106
104
```
107
105
108
-
**Explanation:**
106
+
### If *`libcuda.so.1`* is missing:
107
+
108
+
```
109
+
ls: cannot access '/usr/lib64/libcuda.so.1': No such file or directory
110
+
```
109
111
110
-
-`nvidia-driver-libs` and `nvidia-driver-cuda-libs` contains necessary NVIDIA driver libraries required by CUDA,
111
-
on hosts with NVIDIA drivers installed the Fedora Container will supply the host libraries.
112
+
**Explanation:**
113
+
The host dose not supply the CUDA drivers, **install them now:**
112
114
113
-
### Install Nvidia Driver Libraries on Guest (if `libcuda.so.1` was NOT found).
Copy file name to clipboardExpand all lines: docs/build.md
+26-4Lines changed: 26 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,12 +132,14 @@ You may find the official downloads here: [NVIDIA developer site](https://develo
132
132
133
133
134
134
#### Compile and run inside a Fedora Toolbox Container
135
-
We also have a [guide](./cuda-fedora.md) for setting up CUDA toolkit in a Fedora [toolbox container](https://containertoolbx.org/).
135
+
We also have a [guide](./backend/CUDA-FEDORA.md) for setting up CUDA toolkit in a Fedora [toolbox container](https://containertoolbx.org/).
136
136
137
137
**Recommended for:**
138
-
139
-
- ***Particularly*** *convenient* for users of [Atomic Desktops for Fedora](https://fedoraproject.org/atomic-desktops/); such as: [Silverblue](https://fedoraproject.org/atomic-desktops/silverblue/) and [Kinoite](https://fedoraproject.org/atomic-desktops/kinoite/).
140
-
- Toolbox is installed by default: [Fedora Workstation](https://fedoraproject.org/workstation/) or [Fedora KDE Plasma Desktop](https://fedoraproject.org/spins/kde).
138
+
- ***Necessary*** for users of [Atomic Desktops for Fedora](https://fedoraproject.org/atomic-desktops/); such as: [Silverblue](https://fedoraproject.org/atomic-desktops/silverblue/) and [Kinoite](https://fedoraproject.org/atomic-desktops/kinoite/).
139
+
- (there are no supported CUDA packages for these systems)
140
+
- ***Necessary*** for users that have a host that is not a: [Supported Nvidia CUDA Release Platform](https://developer.nvidia.com/cuda-downloads).
141
+
- (for example, you may have [Fedora 42 Beta](https://fedoramagazine.org/announcing-fedora-linux-42-beta/) as your your host operating system)
142
+
- ***Convenient*** For those running [Fedora Workstation](https://fedoraproject.org/workstation/) or [Fedora KDE Plasma Desktop](https://fedoraproject.org/spins/kde), and want to keep their host system clean.
141
143
- *Optionally* toolbox packages are available: [Arch Linux](https://archlinux.org/), [Red Hat Enterprise Linux >= 8.5](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux), or [Ubuntu](https://ubuntu.com/download)
For detailed info, such as model/device supports, CANN install, please refer to [llama.cpp for CANN](./backend/CANN.md).
435
437
438
+
## Arm® KleidiAI™
439
+
KleidiAI is a library of optimized microkernels for AI workloads, specifically designed for Arm CPUs. These microkernels enhance performance and can be enabled for use by the CPU backend.
440
+
441
+
To enable KleidiAI, go to the llama.cpp directory and build using CMake
442
+
```bash
443
+
cmake -B build -DGGML_CPU_KLEIDIAI=ON
444
+
cmake --build build --config Release
445
+
```
446
+
You can verify that KleidiAI is being used by running
447
+
```bash
448
+
./build/bin/llama-cli -m PATH_TO_MODEL -p "What is a car?"
449
+
```
450
+
If KleidiAI is enabled, the ouput will contain a line similar to:
451
+
```
452
+
load_tensors: CPU_KLEIDIAI model buffer size = 3474.00 MiB
453
+
```
454
+
KleidiAI's microkernels implement optimized tensor operations using Arm CPU features such as dotprod, int8mm and SME. llama.cpp selects the most efficient kernel based on runtime CPU feature detection. However, on platforms that support SME, you must manually enable SME microkernels by setting the environment variable `GGML_KLEIDIAI_SME=1`.
455
+
456
+
Depending on your build target, other higher priority backends may be enabled by default. To ensure the CPU backend is used, you must disable the higher priority backends either at compile time, e.g. -DGGML_METAL=OFF, or during run-time using the command line option `--device none`.
457
+
436
458
## Android
437
459
438
460
To read documentation for how to build on Android, [click here](./android.md)
0 commit comments