From e219c2ee5dd9766a649abdd209bf1f808526e2ea Mon Sep 17 00:00:00 2001 From: papertager <2567587994@qq.com> Date: Thu, 4 Jun 2026 21:41:00 +0800 Subject: [PATCH 1/5] Improve MACA CMake discovery diagnostics --- cmake/utils/FindMACA.cmake | 30 ++++++++++++------- .../cmake/test_find_maca_no_stale_state.cmake | 15 ++++++++++ 2 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 tests/scripts/cmake/test_find_maca_no_stale_state.cmake diff --git a/cmake/utils/FindMACA.cmake b/cmake/utils/FindMACA.cmake index 74b2d1e56fe0..0ce6a02846d5 100644 --- a/cmake/utils/FindMACA.cmake +++ b/cmake/utils/FindMACA.cmake @@ -31,12 +31,18 @@ # - MACA_MACAMCC_LIBRARY macro(find_maca use_maca) - set(__use_maca ${use_maca}) - if(IS_DIRECTORY ${__use_maca}) - set(__maca_sdk ${__use_maca}) + set(MACA_FOUND FALSE) + set(MACA_INCLUDE_DIRS "") + set(MACA_MACAMCC_LIBRARY "") + set(MACA_HCA_LIBRARY "") + set(MACA_FLASHATTN_LIBRARY "") + + set(__use_maca "${use_maca}") + if(IS_DIRECTORY "${__use_maca}") + set(__maca_sdk "${__use_maca}") message(STATUS "Custom MACA SDK PATH=" ${__use_maca}) - elseif(IS_DIRECTORY $ENV{MACA_PATH}) - set(__maca_sdk $ENV{MACA_PATH}) + elseif(DEFINED ENV{MACA_PATH} AND IS_DIRECTORY "$ENV{MACA_PATH}") + set(__maca_sdk "$ENV{MACA_PATH}") elseif(IS_DIRECTORY /opt/maca) set(__maca_sdk /opt/maca) else() @@ -44,13 +50,17 @@ macro(find_maca use_maca) endif() if(__maca_sdk) - set(MACA_INCLUDE_DIRS ${__maca_sdk}/include) - find_library(MACA_MACAMCC_LIBRARY mcruntime ${__maca_sdk}/lib) - find_library(MACA_HCA_LIBRARY mxc-runtime64 ${__maca_sdk}/lib) - find_library(MACA_FLASHATTN_LIBRARY mcFlashAttn ${__maca_sdk}/lib) + set(MACA_INCLUDE_DIRS "${__maca_sdk}/include") + find_library(MACA_MACAMCC_LIBRARY mcruntime PATHS "${__maca_sdk}/lib" NO_DEFAULT_PATH) + find_library(MACA_HCA_LIBRARY mxc-runtime64 PATHS "${__maca_sdk}/lib" NO_DEFAULT_PATH) + find_library(MACA_FLASHATTN_LIBRARY mcFlashAttn PATHS "${__maca_sdk}/lib" NO_DEFAULT_PATH) - if(MACA_MACAMCC_LIBRARY) + if(IS_DIRECTORY "${MACA_INCLUDE_DIRS}" AND MACA_MACAMCC_LIBRARY) set(MACA_FOUND TRUE) + else() + message(STATUS "MACA SDK candidate did not pass validation: " ${__maca_sdk}) + message(STATUS "Expected MACA include directory: " ${MACA_INCLUDE_DIRS}) + message(STATUS "Expected MACA runtime library mcruntime under: " ${__maca_sdk}/lib) endif() endif(__maca_sdk) if(MACA_FOUND) diff --git a/tests/scripts/cmake/test_find_maca_no_stale_state.cmake b/tests/scripts/cmake/test_find_maca_no_stale_state.cmake new file mode 100644 index 000000000000..ff1936670013 --- /dev/null +++ b/tests/scripts/cmake/test_find_maca_no_stale_state.cmake @@ -0,0 +1,15 @@ +include("${TVM_SOURCE_DIR}/cmake/utils/FindMACA.cmake") + +set(MACA_FOUND TRUE) +set(MACA_INCLUDE_DIRS "/stale/include") +set(MACA_MACAMCC_LIBRARY "/stale/libmcruntime.so") + +find_maca("${CMAKE_CURRENT_LIST_DIR}/does-not-exist") + +if(MACA_FOUND) + message(FATAL_ERROR "find_maca must clear stale MACA_FOUND when no SDK is found") +endif() + +if(MACA_INCLUDE_DIRS OR MACA_MACAMCC_LIBRARY) + message(FATAL_ERROR "find_maca must clear stale MACA include and library values") +endif() From 05362eeba93aeb5eb369760a4083d6c1edc36b00 Mon Sep 17 00:00:00 2001 From: papertager <2567587994@qq.com> Date: Sat, 6 Jun 2026 11:50:41 +0800 Subject: [PATCH 2/5] test: make FindMACA stale-state check standalone --- tests/scripts/cmake/test_find_maca_no_stale_state.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/scripts/cmake/test_find_maca_no_stale_state.cmake b/tests/scripts/cmake/test_find_maca_no_stale_state.cmake index ff1936670013..1027d926a4a2 100644 --- a/tests/scripts/cmake/test_find_maca_no_stale_state.cmake +++ b/tests/scripts/cmake/test_find_maca_no_stale_state.cmake @@ -1,3 +1,7 @@ +if(NOT TVM_SOURCE_DIR) + get_filename_component(TVM_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE) +endif() + include("${TVM_SOURCE_DIR}/cmake/utils/FindMACA.cmake") set(MACA_FOUND TRUE) From db238b5e9cdbcadb7217838fadbf0d70e24cd433 Mon Sep 17 00:00:00 2001 From: papertager <2567587994@qq.com> Date: Sat, 6 Jun 2026 11:51:29 +0800 Subject: [PATCH 3/5] cmake: clear invalid MACA candidate paths --- cmake/utils/FindMACA.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/utils/FindMACA.cmake b/cmake/utils/FindMACA.cmake index 0ce6a02846d5..124431217087 100644 --- a/cmake/utils/FindMACA.cmake +++ b/cmake/utils/FindMACA.cmake @@ -61,6 +61,10 @@ macro(find_maca use_maca) message(STATUS "MACA SDK candidate did not pass validation: " ${__maca_sdk}) message(STATUS "Expected MACA include directory: " ${MACA_INCLUDE_DIRS}) message(STATUS "Expected MACA runtime library mcruntime under: " ${__maca_sdk}/lib) + set(MACA_INCLUDE_DIRS "") + set(MACA_MACAMCC_LIBRARY "") + set(MACA_HCA_LIBRARY "") + set(MACA_FLASHATTN_LIBRARY "") endif() endif(__maca_sdk) if(MACA_FOUND) From 2667f579fe65c832e340d1984e5a3c908b42c2e6 Mon Sep 17 00:00:00 2001 From: papertager <2567587994@qq.com> Date: Mon, 22 Jun 2026 13:23:38 +0800 Subject: [PATCH 4/5] fix: refresh FindMACA cache entries --- cmake/utils/FindMACA.cmake | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cmake/utils/FindMACA.cmake b/cmake/utils/FindMACA.cmake index 124431217087..818e1545223f 100644 --- a/cmake/utils/FindMACA.cmake +++ b/cmake/utils/FindMACA.cmake @@ -51,6 +51,9 @@ macro(find_maca use_maca) if(__maca_sdk) set(MACA_INCLUDE_DIRS "${__maca_sdk}/include") + unset(MACA_MACAMCC_LIBRARY CACHE) + unset(MACA_HCA_LIBRARY CACHE) + unset(MACA_FLASHATTN_LIBRARY CACHE) find_library(MACA_MACAMCC_LIBRARY mcruntime PATHS "${__maca_sdk}/lib" NO_DEFAULT_PATH) find_library(MACA_HCA_LIBRARY mxc-runtime64 PATHS "${__maca_sdk}/lib" NO_DEFAULT_PATH) find_library(MACA_FLASHATTN_LIBRARY mcFlashAttn PATHS "${__maca_sdk}/lib" NO_DEFAULT_PATH) @@ -58,9 +61,9 @@ macro(find_maca use_maca) if(IS_DIRECTORY "${MACA_INCLUDE_DIRS}" AND MACA_MACAMCC_LIBRARY) set(MACA_FOUND TRUE) else() - message(STATUS "MACA SDK candidate did not pass validation: " ${__maca_sdk}) - message(STATUS "Expected MACA include directory: " ${MACA_INCLUDE_DIRS}) - message(STATUS "Expected MACA runtime library mcruntime under: " ${__maca_sdk}/lib) + message(STATUS "MACA SDK candidate did not pass validation: ${__maca_sdk}") + message(STATUS "Expected MACA include directory: ${MACA_INCLUDE_DIRS}") + message(STATUS "Expected MACA runtime library mcruntime under: ${__maca_sdk}/lib") set(MACA_INCLUDE_DIRS "") set(MACA_MACAMCC_LIBRARY "") set(MACA_HCA_LIBRARY "") @@ -68,8 +71,8 @@ macro(find_maca use_maca) endif() endif(__maca_sdk) if(MACA_FOUND) - message(STATUS "Found MACA_INCLUDE_DIRS=" ${MACA_INCLUDE_DIRS}) - message(STATUS "Found MACA_MACAMCC_LIBRARY=" ${MACA_MACAMCC_LIBRARY}) - message(STATUS "Found MACA_FLASHATTN_LIBRARY=" ${MACA_FLASHATTN_LIBRARY}) + message(STATUS "Found MACA_INCLUDE_DIRS=${MACA_INCLUDE_DIRS}") + message(STATUS "Found MACA_MACAMCC_LIBRARY=${MACA_MACAMCC_LIBRARY}") + message(STATUS "Found MACA_FLASHATTN_LIBRARY=${MACA_FLASHATTN_LIBRARY}") endif(MACA_FOUND) endmacro(find_maca) From f5870139da30a013a4ab773f1b5cfa11a1ef74d6 Mon Sep 17 00:00:00 2001 From: papertager <2567587994@qq.com> Date: Mon, 22 Jun 2026 13:49:39 +0800 Subject: [PATCH 5/5] Normalize MACA diagnostic messages --- cmake/utils/FindMACA.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/utils/FindMACA.cmake b/cmake/utils/FindMACA.cmake index 818e1545223f..5d5aef0bfcc1 100644 --- a/cmake/utils/FindMACA.cmake +++ b/cmake/utils/FindMACA.cmake @@ -40,7 +40,7 @@ macro(find_maca use_maca) set(__use_maca "${use_maca}") if(IS_DIRECTORY "${__use_maca}") set(__maca_sdk "${__use_maca}") - message(STATUS "Custom MACA SDK PATH=" ${__use_maca}) + message(STATUS "Custom MACA SDK PATH=${__use_maca}") elseif(DEFINED ENV{MACA_PATH} AND IS_DIRECTORY "$ENV{MACA_PATH}") set(__maca_sdk "$ENV{MACA_PATH}") elseif(IS_DIRECTORY /opt/maca)