diff --git a/CHANGELOG.md b/CHANGELOG.md index 89b01f8..3d0b5d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -258,3 +258,9 @@ Bug fixes: Deprecated: - Binaries for CUDA 11.2, 11.6 no longer ship with `pip install bitsandbytes` and need to be compiled from source. + + +### 0.40.1 + +Features: + - Added precompiled CUDA 11.8 binaries to support H100 GPUs without compilation #571 diff --git a/Makefile b/Makefile index 19b5b91..7ccbcb1 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,11 @@ cuda11x_nomatmul: $(BUILD_DIR) env $(NVCC) $(COMPUTE_CAPABILITY) $(CC_CUDA11x) -Xcompiler '-fPIC' -dlink $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o -o $(BUILD_DIR)/link.o $(GPP) -std=c++14 -DBUILD_CUDA -shared -fPIC $(INCLUDE) $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o $(BUILD_DIR)/link.o $(FILES_CPP) -o ./bitsandbytes/libbitsandbytes_cuda$(CUDA_VERSION)_nocublaslt.so $(LIB) +cuda118_nomatmul: $(BUILD_DIR) env + $(NVCC) $(COMPUTE_CAPABILITY) $(CC_CUDA11x) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' --use_fast_math -Xptxas=-v -dc $(FILES_CUDA) $(INCLUDE) $(LIB) --output-directory $(BUILD_DIR) -D NO_CUBLASLT + $(NVCC) $(COMPUTE_CAPABILITY) $(CC_CUDA11x) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' -dlink $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o -o $(BUILD_DIR)/link.o + $(GPP) -std=c++14 -DBUILD_CUDA -shared -fPIC $(INCLUDE) $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o $(BUILD_DIR)/link.o $(FILES_CPP) -o ./bitsandbytes/libbitsandbytes_cuda$(CUDA_VERSION)_nocublaslt.so $(LIB) + cuda12x_nomatmul: $(BUILD_DIR) env $(NVCC) $(COMPUTE_CAPABILITY) $(CC_CUDA11x) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' --use_fast_math -Xptxas=-v -dc $(FILES_CUDA) $(INCLUDE) $(LIB) --output-directory $(BUILD_DIR) -D NO_CUBLASLT $(NVCC) $(COMPUTE_CAPABILITY) $(CC_CUDA11x) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' -dlink $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o -o $(BUILD_DIR)/link.o @@ -95,6 +100,11 @@ cuda11x: $(BUILD_DIR) env $(NVCC) $(CC_cublasLt111) -Xcompiler '-fPIC' -dlink $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o -o $(BUILD_DIR)/link.o $(GPP) -std=c++14 -DBUILD_CUDA -shared -fPIC $(INCLUDE) $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o $(BUILD_DIR)/link.o $(FILES_CPP) -o ./bitsandbytes/libbitsandbytes_cuda$(CUDA_VERSION).so $(LIB) +cuda118: $(BUILD_DIR) env + $(NVCC) $(CC_cublasLt111) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' --use_fast_math -Xptxas=-v -dc $(FILES_CUDA) $(INCLUDE) $(LIB) --output-directory $(BUILD_DIR) + $(NVCC) $(CC_cublasLt111) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' -dlink $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o -o $(BUILD_DIR)/link.o + $(GPP) -std=c++14 -DBUILD_CUDA -shared -fPIC $(INCLUDE) $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o $(BUILD_DIR)/link.o $(FILES_CPP) -o ./bitsandbytes/libbitsandbytes_cuda$(CUDA_VERSION).so $(LIB) + cuda12x: $(BUILD_DIR) env $(NVCC) $(CC_cublasLt111) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' --use_fast_math -Xptxas=-v -dc $(FILES_CUDA) $(INCLUDE) $(LIB) --output-directory $(BUILD_DIR) $(NVCC) $(CC_cublasLt111) $(CC_ADA_HOPPER) -Xcompiler '-fPIC' -dlink $(BUILD_DIR)/ops.o $(BUILD_DIR)/kernels.o -o $(BUILD_DIR)/link.o diff --git a/deploy.sh b/deploy.sh index bb11fd6..693b5a9 100644 --- a/deploy.sh +++ b/deploy.sh @@ -10,77 +10,77 @@ if [[ ! -z "${LD_LIBRARY_PATH}" ]]; then fi -#module unload cuda && echo "no module function available. Probably not on a slurm cluster." -#module unload gcc && echo "no module function available. Probably not on a slurm cluster." -# -#rm -rf dist build -#make cleaneggs -#make cleanlibs -# -#make clean -#export CUDA_HOME= -#export CUDA_VERSION= -#make cpuonly CUDA_VERSION="CPU" -# -#if [ ! -f "./bitsandbytes/libbitsandbytes_cpu.so" ]; then -# # Control will enter here if $DIRECTORY doesn't exist. -# echo "Compilation unsuccessul!" 1>&2 -# exit 64 -#fi -# -#make clean -#export CUDA_HOME=$BASE_PATH/cuda-11.0 -#make cuda110 CUDA_VERSION=110 -# -#if [ ! -f "./bitsandbytes/libbitsandbytes_cuda110.so" ]; then -# # Control will enter here if $DIRECTORY doesn't exist. -# echo "Compilation unsuccessul!" 1>&2 -# exit 64 -#fi -# -#make clean -#export CUDA_HOME=$BASE_PATH/cuda-11.1 -#make cuda11x CUDA_VERSION=111 -# -#if [ ! -f "./bitsandbytes/libbitsandbytes_cuda111.so" ]; then -# # Control will enter here if $DIRECTORY doesn't exist. -# echo "Compilation unsuccessul!" 1>&2 -# exit 64 -#fi -# -#make clean -#export CUDA_HOME=$BASE_PATH/cuda-11.4 -#make cuda11x CUDA_VERSION=114 -# -#if [ ! -f "./bitsandbytes/libbitsandbytes_cuda114.so" ]; then -# # Control will enter here if $DIRECTORY doesn't exist. -# echo "Compilation unsuccessul!" 1>&2 -# exit 64 -#fi -# -#make clean -#export CUDA_HOME=$BASE_PATH/cuda-11.5 -#make cuda11x CUDA_VERSION=115 -# -#if [ ! -f "./bitsandbytes/libbitsandbytes_cuda115.so" ]; then -# # Control will enter here if $DIRECTORY doesn't exist. -# echo "Compilation unsuccessul!" 1>&2 -# exit 64 -#fi -# -#make clean -#export CUDA_HOME=$BASE_PATH/cuda-11.7 -#make cuda11x CUDA_VERSION=117 -# -#if [ ! -f "./bitsandbytes/libbitsandbytes_cuda117.so" ]; then -# # Control will enter here if $DIRECTORY doesn't exist. -# echo "Compilation unsuccessul!" 1>&2 -# exit 64 -#fi +module unload cuda && echo "no module function available. Probably not on a slurm cluster." +module unload gcc && echo "no module function available. Probably not on a slurm cluster." + +rm -rf dist build +make cleaneggs +make cleanlibs + +make clean +export CUDA_HOME= +export CUDA_VERSION= +make cpuonly CUDA_VERSION="CPU" + +if [ ! -f "./bitsandbytes/libbitsandbytes_cpu.so" ]; then + # Control will enter here if $DIRECTORY doesn't exist. + echo "Compilation unsuccessul!" 1>&2 + exit 64 +fi + +make clean +export CUDA_HOME=$BASE_PATH/cuda-11.0 +make cuda110 CUDA_VERSION=110 + +if [ ! -f "./bitsandbytes/libbitsandbytes_cuda110.so" ]; then + # Control will enter here if $DIRECTORY doesn't exist. + echo "Compilation unsuccessul!" 1>&2 + exit 64 +fi + +make clean +export CUDA_HOME=$BASE_PATH/cuda-11.1 +make cuda11x CUDA_VERSION=111 + +if [ ! -f "./bitsandbytes/libbitsandbytes_cuda111.so" ]; then + # Control will enter here if $DIRECTORY doesn't exist. + echo "Compilation unsuccessul!" 1>&2 + exit 64 +fi + +make clean +export CUDA_HOME=$BASE_PATH/cuda-11.4 +make cuda11x CUDA_VERSION=114 + +if [ ! -f "./bitsandbytes/libbitsandbytes_cuda114.so" ]; then + # Control will enter here if $DIRECTORY doesn't exist. + echo "Compilation unsuccessul!" 1>&2 + exit 64 +fi + +make clean +export CUDA_HOME=$BASE_PATH/cuda-11.5 +make cuda11x CUDA_VERSION=115 + +if [ ! -f "./bitsandbytes/libbitsandbytes_cuda115.so" ]; then + # Control will enter here if $DIRECTORY doesn't exist. + echo "Compilation unsuccessul!" 1>&2 + exit 64 +fi + +make clean +export CUDA_HOME=$BASE_PATH/cuda-11.7 +make cuda11x CUDA_VERSION=117 + +if [ ! -f "./bitsandbytes/libbitsandbytes_cuda117.so" ]; then + # Control will enter here if $DIRECTORY doesn't exist. + echo "Compilation unsuccessul!" 1>&2 + exit 64 +fi make clean export CUDA_HOME=$BASE_PATH/cuda-11.8 -make cuda12x CUDA_VERSION=118 +make cuda118 CUDA_VERSION=118 if [ ! -f "./bitsandbytes/libbitsandbytes_cuda118.so" ]; then # Control will enter here if $DIRECTORY doesn't exist. @@ -172,7 +172,7 @@ fi make clean export CUDA_HOME=$BASE_PATH/cuda-11.8 -make cuda12x_nomatmul CUDA_VERSION=118 +make cuda118_nomatmul CUDA_VERSION=118 if [ ! -f "./bitsandbytes/libbitsandbytes_cuda118_nocublaslt.so" ]; then # Control will enter here if $DIRECTORY doesn't exist.