33# For GCC: `cmake -B build . && cmake --build build`
44# For MSVC: `cmake -B build . && cmake --build build --config Release`
55# You can also use the following options and variables
6- # - COMPUTE_BACKEND: Set to `cpu`, `cuda`, or `mps ` to select the backend
6+ # - COMPUTE_BACKEND: Set to `cpu`, `cuda`, `hip`, or `xpu ` to select the backend
77# - CUDA_VERSION: The expected CUDA version, for sanity checking. The actual version
88# is whatever CMake finds on your path.
99# - COMPUTE_CAPABILITY: Which GPU Arch/Compute codes to provide to NVCC.
@@ -62,14 +62,12 @@ set(CMAKE_CXX_EXTENSIONS OFF)
6262# Define included source files
6363set (CPP_FILES csrc/cpu_ops.cpp csrc/pythonInterface.cpp)
6464set (GPU_FILES csrc/ops.cu csrc/kernels.cu)
65- set (MPS_FILES csrc/mps_ops.mm)
66- set (METAL_FILES csrc/mps_kernels.metal)
6765set (XPU_FILES csrc/xpu_ops.cpp csrc/xpu_kernels.cpp)
6866# C++ sources are always included
6967list (APPEND SRC_FILES ${CPP_FILES} )
7068
71- set (COMPUTE_BACKEND "cpu" CACHE STRING "The compute backend to use (cpu, cuda, hip, mps, xpu)" )
72- set_property (CACHE COMPUTE_BACKEND PROPERTY STRINGS cpu cuda hip mps xpu)
69+ set (COMPUTE_BACKEND "cpu" CACHE STRING "The compute backend to use (cpu, cuda, hip, xpu)" )
70+ set_property (CACHE COMPUTE_BACKEND PROPERTY STRINGS cpu cuda hip xpu)
7371option (PTXAS_VERBOSE "Pass through -v flag to PTX Assembler" OFF )
7472
7573if (APPLE )
@@ -86,33 +84,22 @@ if(${COMPUTE_BACKEND} STREQUAL "cuda")
8684 endif ()
8785 set (BUILD_CUDA ON )
8886 set (BUILD_HIP OFF )
89- set (BUILD_MPS OFF )
9087elseif (${COMPUTE_BACKEND} STREQUAL "hip" )
9188 if (APPLE )
9289 message (FATAL_ERROR "HIP is not supported on macOS" )
9390 endif ()
9491 set (BUILD_CUDA OFF )
9592 set (BUILD_HIP ON )
96- set (BUILD_MPS OFF )
97- elseif (${COMPUTE_BACKEND} STREQUAL "mps" )
98- if (NOT APPLE )
99- message (FATAL_ERROR "MPS is only supported on macOS" )
100- endif ()
101- set (BUILD_CUDA OFF )
102- set (BUILD_HIP OFF )
103- set (BUILD_MPS ON )
10493elseif (${COMPUTE_BACKEND} STREQUAL "xpu" )
10594 if (APPLE )
10695 message (FATAL_ERROR "XPU is not supported on macOS" )
10796 endif ()
10897 set (BUILD_CUDA OFF )
10998 set (BUILD_HIP OFF )
110- set (BUILD_MPS OFF )
11199 set (BUILD_XPU ON )
112100else ()
113101 set (BUILD_CUDA OFF )
114102 set (BUILD_HIP OFF )
115- set (BUILD_MPS OFF )
116103 set (BUILD_XPU OFF )
117104 set (BUILD_CPU ON )
118105endif ()
@@ -312,25 +299,6 @@ elseif(BUILD_HIP)
312299 add_compile_definitions (__HIP_PLATFORM_AMD__ )
313300 add_compile_definitions (__HIP_PLATFORM_HCC__ )
314301 add_compile_definitions (BUILD_HIP )
315- elseif (BUILD_MPS)
316- if (NOT APPLE )
317- message (FATAL_ERROR "MPS is only supported on macOS" )
318- endif ()
319-
320- enable_language (OBJCXX )
321-
322- list (APPEND SRC_FILES ${MPS_FILES} )
323-
324- string (APPEND BNB_OUTPUT_NAME "_mps" )
325- add_compile_definitions (BUILD_MPS )
326- file (MAKE_DIRECTORY "build" )
327- add_custom_command (OUTPUT "bitsandbytes/bitsandbytes.metallib"
328- COMMAND xcrun metal -c -o "build/bitsandbytes.air" ${METAL_FILES}
329- COMMAND xcrun metallib "build/bitsandbytes.air" -o "bitsandbytes/bitsandbytes.metallib"
330- DEPENDS "${METAL_FILES} "
331- COMMENT "Compiling Metal kernels"
332- VERBATIM )
333- add_custom_target (metallib DEPENDS "bitsandbytes/bitsandbytes.metallib" )
334302elseif (BUILD_XPU)
335303 list (APPEND SRC_FILES ${XPU_FILES} )
336304 string (APPEND BNB_OUTPUT_NAME "_xpu" )
@@ -469,10 +437,6 @@ if(BUILD_HIP)
469437 target_link_libraries (bitsandbytes PUBLIC roc::hipblaslt )
470438 endif ()
471439endif ()
472- if (BUILD_MPS)
473- add_dependencies (bitsandbytes metallib )
474- target_link_libraries (bitsandbytes objc "-framework Foundation" "-framework Metal" "-framework MetalPerformanceShaders" "-framework MetalPerformanceShadersGraph" )
475- endif ()
476440if (BUILD_XPU)
477441 set (SYCL_LINK_FLAGS "-fsycl;--offload-compress;-fsycl-targets=spir64_gen,spir64;-Xs;-device pvc,xe-lpg,ats-m150 -options ' -cl-intel-enable-auto-large-GRF-mode -cl-poison-unsupported-fp64-kernels -cl-intel-greater-than-4GB-buffer-required'" )
478442 set (SYCL_COMPILE_FLAGS "-fsycl;-fhonor-nans;-fhonor-infinities;-fno-associative-math;-fno-approx-func;-fno-sycl-instrument-device-code;--offload-compress;-fsycl-targets=spir64_gen,spir64;" )
0 commit comments