@@ -17,6 +17,7 @@ option(USE_CUDA_MPI "Enable CUDA-aware MPI" OFF)
1717option (USE_CUDA_ON_DCU "Enable CUDA on DCU" OFF )
1818option (USE_ROCM "Enable ROCm" OFF )
1919option (USE_DSP "Enable DSP" OFF )
20+ option (USE_KML "Enable Kunpeng Math Library" OFF )
2021option (USE_SW "Enable SW Architecture" OFF )
2122
2223option (USE_ABACUS_LIBM "Build libmath from source to speed up" OFF )
@@ -337,6 +338,50 @@ if (USE_DSP)
337338 target_link_libraries (${ABACUS_BIN_NAME} ${MT_HOST_DIR} /hthreads/lib/libhthread_device.a )
338339 target_link_libraries (${ABACUS_BIN_NAME} ${MT_HOST_DIR} /hthreads/lib/libhthread_host.a )
339340endif ()
341+
342+
343+ if (USE_KML)
344+ add_compile_definitions (__KML )
345+ message (STATUS "Huawei KML support enabled. Defining __KML." )
346+ # TODO: Create FindKML.cmake
347+ # if(NOT DEFINED KML_ROOT)
348+ # if(DEFINED ENV{KML_ROOT})
349+ # set(KML_ROOT $ENV{KML_ROOT})
350+ # else()
351+ # message(WARNING "KML_ROOT is not set. Trying default system paths for KML.")
352+ # endif()
353+ # endif()
354+ #
355+ # find_library(KML_BLAS_LIB NAMES kblas PATHS ${KML_ROOT}/lib ${KML_ROOT}/lib64 NO_DEFAULT_PATH)
356+ # find_library(KML_LAPACK_LIB NAMES klapack_full PATHS ${KML_ROOT}/lib ${KML_ROOT}/lib64 NO_DEFAULT_PATH)
357+ # find_library(KML_SCALAPACK_LIB NAMES kscalapack_full PATHS ${KML_ROOT}/lib ${KML_ROOT}/lib64 NO_DEFAULT_PATH)
358+ # find_library(KML_FFTW_LIB NAMES fftw3 PATHS ${KML_ROOT}/lib ${KML_ROOT}/lib64 NO_DEFAULT_PATH)
359+ #
360+ # set(KML_LIBS_FOUND TRUE)
361+ # foreach(LIB_VAR KML_BLAS_LIB KML_LAPACK_LIB KML_SCALAPACK_LIB KML_FFTW_LIB)
362+ # if(NOT ${LIB_VAR})
363+ # message(WARNING "${LIB_VAR} not found in KML_ROOT! Please check your KML installation.")
364+ # set(KML_LIBS_FOUND FALSE)
365+ # endif()
366+ # endforeach()
367+ #
368+ # if(KML_LIBS_FOUND)
369+ # target_link_libraries(abacus PUBLIC
370+ # ${KML_BLAS_LIB}
371+ # ${KML_LAPACK_LIB}
372+ # ${KML_SCALAPACK_LIB}
373+ # ${KML_FFTW_LIB}
374+ # )
375+ # message(STATUS "Huawei KML libraries found and linked successfully.")
376+ # else()
377+ # message(FATAL_ERROR "Failed to find all required KML libraries. Aborting.")
378+ # endif()
379+ #
380+ # set(BLAS_libraries ${KML_BLAS_LIB})
381+ # set(LAPACK_libraries ${KML_LAPACK_LIB})
382+ endif (USE_KML )
383+
384+
340385if (USE_SW)
341386 add_compile_definitions (__SW )
342387 set (SW ON )
0 commit comments