summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile16
-rw-r--r--deploy_from_slurm.sh358
-rw-r--r--setup.py22
3 files changed, 190 insertions, 206 deletions
diff --git a/Makefile b/Makefile
index 04a6fa7..b109f96 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,16 @@
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
ROOT_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
-ifndef CUDA_VERSION
-$(error ERROR: CUDA_VERSION not set. Call make with CUDA string, for example: make cuda11x CUDA_VERSION=115 or make cpuonly CUDA_VERSION=CPU)
-endif
-
GPP:= /usr/bin/g++
ifeq ($(CUDA_HOME),)
CUDA_HOME:= $(shell which nvcc | rev | cut -d'/' -f3- | rev)
endif
+ifndef CUDA_VERSION
+$(warning WARNING: CUDA_VERSION not set. Call make with CUDA string, for example: make cuda11x CUDA_VERSION=115 or make cpuonly CUDA_VERSION=CPU)
+CUDA_VERSION:=
+endif
+
NVCC := $(CUDA_HOME)/bin/nvcc
@@ -92,7 +93,7 @@ cuda11x: $(BUILD_DIR) env
$(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)
cpuonly: $(BUILD_DIR) env
- $(GPP) -std=c++14 -shared -fPIC -I $(ROOT_DIR)/csrc -I $(ROOT_DIR)/include $(FILES_CPP) -o ./bitsandbytes/libbitsandbytes_$(CUDA_VERSION).so
+ $(GPP) -std=c++14 -shared -fPIC -I $(ROOT_DIR)/csrc -I $(ROOT_DIR)/include $(FILES_CPP) -o ./bitsandbytes/libbitsandbytes_cpu.so
env:
@echo "ENVIRONMENT"
@@ -116,7 +117,10 @@ $(ROOT_DIR)/dependencies/cub:
cd dependencies/cub; git checkout 1.11.0
clean:
- rm build/* ./bitsandbytes/libbitsandbytes.so
+ rm build/*
cleaneggs:
rm -rf *.egg*
+
+cleanlibs:
+ rm ./bitsandbytes/libbitsandbytes*.so
diff --git a/deploy_from_slurm.sh b/deploy_from_slurm.sh
index 4aab04f..c6ee84d 100644
--- a/deploy_from_slurm.sh
+++ b/deploy_from_slurm.sh
@@ -15,12 +15,14 @@ module unload gcc
rm -rf dist build
make cleaneggs
+make cleanlibs
make clean
export CUDA_HOME=
-make cpuonly CUDA_VERSION=CPU
+export CUDA_VERSION=
+make cpuonly CUDA_VERSION="CPU"
-if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
+if [ ! -f "./bitsandbytes/libbitsandbytes_cpu.so" ]; then
# Control will enter here if $DIRECTORY doesn't exist.
echo "Compilation unsuccessul!" 1>&2
exit 64
@@ -30,188 +32,174 @@ make clean
export CUDA_HOME=$BASE_PATH/cuda-11.0
make cuda110 CUDA_VERSION=110
-if [ ! -f "./bitsandbytes/libbitsandbytes.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.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.2
-#make cuda11x CUDA_VERSION=112
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=112 python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.3
-#make cuda11x CUDA_VERSION=113
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=113 python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.4
-#make cuda11x CUDA_VERSION=114
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=114 python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.5
-#make cuda11x CUDA_VERSION=115
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=115 python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.6
-#
-#make cuda11x CUDA_VERSION=116
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=116 python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.7
-#make cuda11x CUDA_VERSION=117
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=117 python -m build
-#
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-10.2
-#make cuda10x_nomatmul CUDA_VERSION=102
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=102-nomatmul python -m build
-#
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.0
-#make cuda110_nomatmul CUDA_VERSION=110
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=110-nomatmul python -m build
-#
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.1
-#make cuda11x_nomatmul CUDA_VERSION=111
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=111-nomatmul python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.2
-#make cuda11x_nomatmul CUDA_VERSION=112
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=112-nomatmul python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.3
-#make cuda11x_nomatmul CUDA_VERSION=113
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=113-nomatmul python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.4
-#make cuda11x_nomatmul CUDA_VERSION=114
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=114-nomatmul python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.5
-#make cuda11x_nomatmul CUDA_VERSION=115
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=115-nomatmul python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.6
-#
-#make cuda11x_nomatmul CUDA_VERSION=116
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=116-nomatmul python -m build
-#
-#make clean
-#export CUDA_HOME=$BASE_PATH/cuda-11.7
-#make cuda11x_nomatmul CUDA_VERSION=117
-#
-#if [ ! -f "./bitsandbytes/libbitsandbytes.so" ]; then
-# # Control will enter here if $DIRECTORY doesn't exist.
-# echo "Compilation unsuccessul!" 1>&2
-# exit 64
-#fi
-#CUDA_VERSION=117-nomatmul python -m build
+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.2
+make cuda11x CUDA_VERSION=112
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda112.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.3
+make cuda11x CUDA_VERSION=113
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda113.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.6
+
+make cuda11x CUDA_VERSION=116
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda116.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-10.2
+make cuda10x_nomatmul CUDA_VERSION=102
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda102_nocublaslt.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_nomatmul CUDA_VERSION=110
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda110_nocublaslt.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_nomatmul CUDA_VERSION=111
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda111_nocublaslt.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.2
+make cuda11x_nomatmul CUDA_VERSION=112
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda112_nocublaslt.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.3
+make cuda11x_nomatmul CUDA_VERSION=113
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda113_nocublaslt.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_nomatmul CUDA_VERSION=114
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda114_nocublaslt.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_nomatmul CUDA_VERSION=115
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda115_nocublaslt.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.6
+
+make cuda11x_nomatmul CUDA_VERSION=116
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda116_nocublaslt.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_nomatmul CUDA_VERSION=117
+
+if [ ! -f "./bitsandbytes/libbitsandbytes_cuda117_nocublaslt.so" ]; then
+ # Control will enter here if $DIRECTORY doesn't exist.
+ echo "Compilation unsuccessul!" 1>&2
+ exit 64
+fi
+python -m build
python -m twine upload dist/* --verbose --repository testpypi
diff --git a/setup.py b/setup.py
index eefc6df..965817d 100644
--- a/setup.py
+++ b/setup.py
@@ -3,28 +3,20 @@
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
import os
+import glob
from setuptools import setup, find_packages
-import os
-
-def all_libs(directory):
- paths = []
- for (path, directories, filenames) in os.walk(directory):
- for filename in filenames:
- paths.append(os.path.join('..', path, filename))
- return paths
+libs = list(glob.glob('./bitsandbytes/libbitsandbytes*.so'))
+libs = [os.path.basename(p) for p in libs]
+print('libs:', libs)
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
-
-version = os.getenv("CUDA_VERSION", "cpu")
-prefix = '' if version == 'cpu' else 'cuda'
-
setup(
- name=f"bitsandbytes-{prefix}{version}",
- version=f"0.30.2",
+ name=f"bitsandbytes",
+ version=f"0.31.0",
author="Tim Dettmers",
author_email="dettmers@cs.washington.edu",
description="8-bit optimizers and matrix multiplication routines.",
@@ -35,7 +27,7 @@ setup(
entry_points={
"console_scripts": ["debug_cuda = bitsandbytes.debug_cli:cli"],
},
- package_data={'': ['libbitsandbytes*.so']},
+ package_data={'': libs},
long_description=read('README.md'),
long_description_content_type='text/markdown',
classifiers=[