@@ -42,18 +42,34 @@ option (SHOW_PTXAS_INFO "Show ptxas info" OFF)
4242if (SHOW_PTXAS_INFO)
4343 set (EXTRA_CUDA_FLAGS "${EXTRA_CUDA_FLAGS} -Xptxas -v" )
4444endif ()
45+
46+ set (SIMPLE_CUDA_ARCH "121" CACHE STRING "CUDA architecture (e.g. 121, 100a)" )
47+ set (SIMPLE_CUDA_SKIP_EXAMPLES "" CACHE STRING "Semicolon-separated example target names to skip" )
48+ set (SIMPLE_CUDA_AUTO_SKIP_UNSUPPORTED_EXAMPLES ON CACHE BOOL "Auto-skip examples unsupported on selected architecture" )
49+
50+ set (EFFECTIVE_SKIP_EXAMPLES ${SIMPLE_CUDA_SKIP_EXAMPLES} )
51+ if (SIMPLE_CUDA_AUTO_SKIP_UNSUPPORTED_EXAMPLES AND SIMPLE_CUDA_ARCH MATCHES "(^|;)121($|;)" )
52+ list (APPEND EFFECTIVE_SKIP_EXAMPLES stochastic test_nvfp4_rounding)
53+ endif ()
54+ list (REMOVE_DUPLICATES EFFECTIVE_SKIP_EXAMPLES)
4555# Set the output directory for the binaries
4656set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR } /bin)
4757
4858# Build the examples
4959file (GLOB_RECURSE EXAMPLE_SOURCES examples/*.cu )
5060foreach (EXAMPLE_SOURCE ${EXAMPLE_SOURCES} )
5161 get_filename_component (EXAMPLE_NAME ${EXAMPLE_SOURCE} NAME_WE )
62+ list (FIND EFFECTIVE_SKIP_EXAMPLES ${EXAMPLE_NAME} SKIP_EXAMPLE_INDEX)
63+ if (NOT SKIP_EXAMPLE_INDEX EQUAL -1)
64+ message (STATUS "Skipping example ${EXAMPLE_NAME} " )
65+ continue ()
66+ endif ()
67+
5268 add_executable (${EXAMPLE_NAME} ${EXAMPLE_SOURCE} )
5369
5470 # CUDA properties provided by CMAKE
5571 set_target_properties (${EXAMPLE_NAME} PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
56- set_target_properties (${EXAMPLE_NAME} PROPERTIES CUDA_ARCHITECTURES 100a )
72+ set_target_properties (${EXAMPLE_NAME} PROPERTIES CUDA_ARCHITECTURES ${SIMPLE_CUDA_ARCH} )
5773
5874 # Convert the flags string into a list of flags
5975 separate_arguments (EXTRA_CUDA_FLAGS_LIST UNIX_COMMAND "${EXTRA_CUDA_FLAGS} " )
0 commit comments