# Adapt from: https://github.com/neuralmagic/vllm-flash-attention/blob/main/cmake/utils.cmake # # Clear all `-gencode` flags from `CMAKE_CUDA_FLAGS` and store them in # `CUDA_ARCH_FLAGS`. # # Example: # CMAKE_CUDA_FLAGS="-Wall -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75" # clear_cuda_arches(CUDA_ARCH_FLAGS) # CUDA_ARCH_FLAGS="-gencode arch=compute_70,code=sm_70;-gencode arch=compute_75,code=sm_75" # CMAKE_CUDA_FLAGS="-Wall" # macro(clear_cuda_arches CUDA_ARCH_FLAGS) # Extract all `-gencode` flags from `CMAKE_CUDA_FLAGS` string(REGEX MATCHALL "-gencode arch=[^ ]+" CUDA_ARCH_FLAGS ${CMAKE_CUDA_FLAGS}) # Remove all `-gencode` flags from `CMAKE_CUDA_FLAGS` since they will be modified # and passed back via the `CUDA_ARCHITECTURES` property. string(REGEX REPLACE "-gencode arch=[^ ]+ *" "" CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS}) endmacro()