mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	docs: update: improve the Fedoa CUDA guide (#12536)
* docs: update fedora-cuda guide - Rename and place into Backend Folder. - Update Host-Supplied Packages. - Expand Recommended Users Section. * docs: improve the flow of CUDA-FEDORA.md
This commit is contained in:
		| @@ -14,9 +14,7 @@ In this guide we setup [Nvidia CUDA](https://docs.nvidia.com/cuda/) in a toolbox | |||||||
| - [Creating a Fedora Toolbox Environment](#creating-a-fedora-toolbox-environment) | - [Creating a Fedora Toolbox Environment](#creating-a-fedora-toolbox-environment) | ||||||
| - [Installing Essential Development Tools](#installing-essential-development-tools) | - [Installing Essential Development Tools](#installing-essential-development-tools) | ||||||
| - [Adding the CUDA Repository](#adding-the-cuda-repository) | - [Adding the CUDA Repository](#adding-the-cuda-repository) | ||||||
| - [Installing `nvidia-driver-libs`](#installing-nvidia-driver-libs) | - [Installing Nvidia Driver Libraries](#installing-nvidia-driver-libraries) | ||||||
| - [Manually Resolving Package Conflicts](#manually-resolving-package-conflicts) |  | ||||||
| - [Finalizing the Installation of `nvidia-driver-libs`](#finalizing-the-installation-of-nvidia-driver-libs) |  | ||||||
| - [Installing the CUDA Meta-Package](#installing-the-cuda-meta-package) | - [Installing the CUDA Meta-Package](#installing-the-cuda-meta-package) | ||||||
| - [Configuring the Environment](#configuring-the-environment) | - [Configuring the Environment](#configuring-the-environment) | ||||||
| - [Verifying the Installation](#verifying-the-installation) | - [Verifying the Installation](#verifying-the-installation) | ||||||
| @@ -67,7 +65,7 @@ This guide focuses on Fedora hosts, but with small adjustments, it can work for | |||||||
|    sudo dnf distro-sync |    sudo dnf distro-sync | ||||||
|    ``` |    ``` | ||||||
| 
 | 
 | ||||||
| 2. **Install the Default Text Editor (Optional):** | 2. **Install **Vim** the default text editor (Optional):** | ||||||
| 
 | 
 | ||||||
|    ```bash |    ```bash | ||||||
|    sudo dnf install vim-default-editor --allowerasing |    sudo dnf install vim-default-editor --allowerasing | ||||||
| @@ -97,36 +95,48 @@ After adding the repository, synchronize the package manager again: | |||||||
| sudo dnf distro-sync | sudo dnf distro-sync | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Installing `nvidia-driver-libs` and `nvidia-driver-cuda-libs` | ## Installing Nvidia Driver Libraries | ||||||
| 
 | 
 | ||||||
| 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). | 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): | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| ls -la /usr/lib64/libcuda.so.1 | ls -la /usr/lib64/libcuda.so.1 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | ### If *`libcuda.so.1`* is missing: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | ls: cannot access '/usr/lib64/libcuda.so.1': No such file or directory | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| **Explanation:** | **Explanation:** | ||||||
|  | The host dose not supply the CUDA drivers, **install them now:** | ||||||
| 
 | 
 | ||||||
| - `nvidia-driver-libs` and `nvidia-driver-cuda-libs` contains necessary NVIDIA driver libraries required by CUDA, | #### Install the Nvidia Driver Libraries on Guest: | ||||||
|   on hosts with NVIDIA drivers installed the Fedora Container will supply the host libraries. |  | ||||||
| 
 |  | ||||||
| ### Install Nvidia Driver Libraries on Guest (if `libcuda.so.1` was NOT found). |  | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| sudo dnf install nvidia-driver-libs nvidia-driver-cuda-libs | sudo dnf install nvidia-driver-cuda nvidia-driver-libs nvidia-driver-cuda-libs nvidia-persistenced | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Manually Updating the RPM database for host-supplied NVIDIA drivers (if `libcuda.so.1` was found). | ### If *`libcuda.so.1`* exists: | ||||||
|  | ``` | ||||||
|  | lrwxrwxrwx. 1 root root 21 Mar 24 11:26 /usr/lib64/libcuda.so.1 -> libcuda.so.570.133.07 | ||||||
|  | ``` | ||||||
| 
 | 
 | ||||||
| If the installation fails due to conflicts, we'll manually download and install the required packages, excluding conflicting files. | **Explanation:** | ||||||
|  | The host is supply the CUDA drivers, **we need to update the guest RPM Database accordingly:** | ||||||
| 
 | 
 | ||||||
| #### 1. Download `nvidia-driver-libs` and `nvidia-driver-cuda-libs` RPM's (with dependencies) | #### Update the Toolbox RPM Database to include the Host-Supplied Libraries: | ||||||
|  | 
 | ||||||
|  | Note: we do not actually install the libraries, we just update the DB so that the guest system knows they are supplied by the host. | ||||||
|  | 
 | ||||||
|  | ##### 1. Download `nvidia-` parts that are supplied by the host RPM's (with dependencies) | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| sudo dnf download --destdir=/tmp/nvidia-driver-libs --resolve --arch x86_64 nvidia-driver-libs nvidia-driver-cuda-libs | sudo dnf download --destdir=/tmp/nvidia-driver-libs --resolve --arch x86_64 nvidia-driver-cuda nvidia-driver-libs nvidia-driver-cuda-libs nvidia-persistenced | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| #### 2. Update the RPM database to assume the installation of these packages. | ##### 2. Update the RPM database to assume the installation of these packages. | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| sudo rpm --install --verbose --hash --justdb /tmp/nvidia-driver-libs/* | sudo rpm --install --verbose --hash --justdb /tmp/nvidia-driver-libs/* | ||||||
| @@ -134,23 +144,26 @@ sudo rpm --install --verbose --hash --justdb /tmp/nvidia-driver-libs/* | |||||||
| 
 | 
 | ||||||
| **Note:** | **Note:** | ||||||
| 
 | 
 | ||||||
| - The `--justdb` option only updates the RPM database, without touching the filesystem. | - The `--justdb` option only updates the RPM database, without touching the filesystem elsewhere. | ||||||
| 
 | 
 | ||||||
| #### Finalizing the Installation of `nvidia-driver-libs` and `nvidia-driver-cuda-libs` | ##### Check that the RPM Database has been correctly updated: | ||||||
|  | 
 | ||||||
|  | **Note:** This is the same command as in the *"Install the Nvidia Driver Libraries on Guest"* for if *`libcuda.so.1`* was missing. | ||||||
| 
 | 
 | ||||||
| After manually installing the dependencies, run: |  | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| sudo dnf install nvidia-driver-libs nvidia-driver-cuda-libs | sudo dnf install nvidia-driver-cuda nvidia-driver-libs nvidia-driver-cuda-libs nvidia-persistenced | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| You should receive a message indicating the package is already installed: | *(this time it will not install anything, as the database things that these packages are already installed)* | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| Updating and loading repositories: | Updating and loading repositories: | ||||||
| Repositories loaded. | Repositories loaded. | ||||||
| Package "nvidia-driver-libs-3:570.86.10-1.fc41.x86_64" is already installed. | Package "nvidia-driver-cuda-3:570.124.06-1.fc41.x86_64" is already installed. | ||||||
| Package "nvidia-driver-cuda-libs-3:570.86.10-1.fc41.x86_64" is already installed. | Package "nvidia-driver-libs-3:570.124.06-1.fc41.x86_64" is already installed. | ||||||
|  | Package "nvidia-driver-cuda-libs-3:570.124.06-1.fc41.x86_64" is already installed. | ||||||
|  | Package "nvidia-persistenced-3:570.124.06-1.fc41.x86_64" is already installed. | ||||||
| 
 | 
 | ||||||
| Nothing to do. | Nothing to do. | ||||||
| ``` | ``` | ||||||
| @@ -207,9 +220,9 @@ You should see output similar to: | |||||||
| ``` | ``` | ||||||
| nvcc: NVIDIA (R) Cuda compiler driver | nvcc: NVIDIA (R) Cuda compiler driver | ||||||
| Copyright (c) 2005-2025 NVIDIA Corporation | Copyright (c) 2005-2025 NVIDIA Corporation | ||||||
| Built on Wed_Jan_15_19:20:09_PST_2025 | Built on Fri_Feb_21_20:23:50_PST_2025 | ||||||
| Cuda compilation tools, release 12.8, V12.8.61 | Cuda compilation tools, release 12.8, V12.8.93 | ||||||
| Build cuda_12.8.r12.8/compiler.35404655_0 | Build cuda_12.8.r12.8/compiler.35583870_0 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| This output confirms that the CUDA compiler is accessible and indicates the installed version. | This output confirms that the CUDA compiler is accessible and indicates the installed version. | ||||||
| @@ -132,12 +132,14 @@ You may find the official downloads here: [NVIDIA developer site](https://develo | |||||||
|  |  | ||||||
|  |  | ||||||
| #### Compile and run inside a Fedora Toolbox Container | #### Compile and run inside a Fedora Toolbox Container | ||||||
| We also have a [guide](./cuda-fedora.md) for setting up CUDA toolkit in a Fedora [toolbox container](https://containertoolbx.org/). | We also have a [guide](./backend/CUDA-FEDORA.md) for setting up CUDA toolkit in a Fedora [toolbox container](https://containertoolbx.org/). | ||||||
|  |  | ||||||
| **Recommended for:** | **Recommended for:** | ||||||
|  | - ***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/). | ||||||
| - ***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/). |   - (there are no supported CUDA packages for these systems) | ||||||
| - Toolbox is installed by default: [Fedora Workstation](https://fedoraproject.org/workstation/) or [Fedora KDE Plasma Desktop](https://fedoraproject.org/spins/kde). | - ***Necessary*** for users that have a host that is not a: [Supported Nvidia CUDA Release Platform](https://developer.nvidia.com/cuda-downloads). | ||||||
|  |   - (for example, you may have [Fedora 42 Beta](https://fedoramagazine.org/announcing-fedora-linux-42-beta/) as your your host operating system) | ||||||
|  | - ***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. | ||||||
| - *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) | - *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) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Tei Home
					Tei Home