Spaces:
Sleeping
Sleeping
import ctypes as ct | |
import os | |
import torch | |
from pathlib import Path | |
from warnings import warn | |
from bitsandbytes.cuda_setup.main import CUDASetup | |
setup = CUDASetup.get_instance() | |
if setup.initialized != True: | |
setup.run_cuda_setup() | |
lib = setup.lib | |
try: | |
if lib is None and torch.cuda.is_available(): | |
CUDASetup.get_instance().generate_instructions() | |
CUDASetup.get_instance().print_log_stack() | |
raise RuntimeError(''' | |
CUDA Setup failed despite GPU being available. Please run the following command to get more information: | |
python -m bitsandbytes | |
Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them | |
to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes | |
and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues''') | |
lib.cadam32bit_grad_fp32 # runs on an error if the library could not be found -> COMPILED_WITH_CUDA=False | |
lib.get_context.restype = ct.c_void_p | |
lib.get_cusparse.restype = ct.c_void_p | |
lib.cget_managed_ptr.restype = ct.c_void_p | |
COMPILED_WITH_CUDA = True | |
except AttributeError as ex: | |
warn("The installed version of bitsandbytes was compiled without GPU support. " | |
"8-bit optimizers, 8-bit multiplication, and GPU quantization are unavailable.") | |
COMPILED_WITH_CUDA = False | |
print(str(ex)) | |
# print the setup details after checking for errors so we do not print twice | |
#if 'BITSANDBYTES_NOWELCOME' not in os.environ or str(os.environ['BITSANDBYTES_NOWELCOME']) == '0': | |
#setup.print_log_stack() | |