-
Notifications
You must be signed in to change notification settings - Fork 668
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added more detailed cuda setup debug and debugging instructions.
- Loading branch information
1 parent
4cd63de
commit 89e3b82
Showing
6 changed files
with
140 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,35 @@ | ||
# Compiling from source | ||
|
||
Basic steps. | ||
1. `make [target]` where `[target]` is among `cuda92, cuda10x, cuda110, cuda11x, cuda12x, cpuonly` | ||
2. `CUDA_VERSION=XXX python setup.py install` | ||
1. `CUDA_VERSION=XXX make [target]` where `[target]` is among `cuda92, cuda10x, cuda110, cuda11x, cuda12x, cpuonly` | ||
2. `python setup.py install` | ||
|
||
To run these steps you will need to have the nvcc compiler installed that comes with a CUDA installation. If you use anaconda (recommended) then you can figure out which version of CUDA you are using with PyTorch via the command `conda list | grep cudatoolkit`. Then you can install the nvcc compiler by downloading and installing the same CUDA version from the [CUDA toolkit archive](https://developer.nvidia.com/cuda-toolkit-archive). | ||
|
||
For your convenience, there is an installation script in the root directory that installs CUDA 11.1 locally and configures it automatically. After installing you should add the `bin` sub-directory to the `$PATH` variable to make the compiler visible to your system. To do this you can add this to your `.bashrc` by executing these commands: | ||
You can install CUDA locally without sudo by following the following steps: | ||
|
||
```bash | ||
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/" >> ~/.bashrc | ||
echo "export PATH=$PATH:/usr/local/cuda/bin/" >> ~/.bashrc | ||
source ~/.bashrc | ||
wget https://raw.githubusercontent.com/TimDettmers/bitsandbytes/main/cuda_install.sh | ||
# Syntax cuda_install CUDA_VERSION INSTALL_PREFIX EXPORT_TO_BASH | ||
# CUDA_VERSION in {110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121} | ||
# EXPORT_TO_BASH in {0, 1} with 0=False and 1=True | ||
|
||
# For example, the following installs CUDA 11.7 to ~/local/cuda-11.7 and exports the path to your .bashrc | ||
bash cuda install 117 ~/local 1 | ||
``` | ||
|
||
By default, the Makefile will look at your `CUDA_HOME` environmental variable to find your CUDA version for compiling the library. If this path is not set it is inferred from the path of your `nvcc` compiler. | ||
|
||
Either `nvcc` needs to be in path for the `CUDA_HOME` variable needs to be set to the CUDA directory root (e.g. `/usr/local/cuda`) in order for compilation to succeed | ||
|
||
If you type `nvcc` and it cannot be found, you might need to add to your path or set the CUDA_HOME variable. You can run `python -m bitsandbytes` to find the path to CUDA. For example if `python -m bitsandbytes` shows you the following: | ||
``` | ||
++++++++++++++++++ /usr/local CUDA PATHS +++++++++++++++++++ | ||
/usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudart.so | ||
``` | ||
You can set `CUDA_HOME` to `/usr/local/cuda-11.7`. For example, you might be able to compile like this. | ||
|
||
``CUDA_HOME=~/local/cuda-11.7 CUDA_VERSION=117 make cuda11x`` | ||
|
||
|
||
If you have problems compiling the library with these instructions from source, please open an issue. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters