# 测试用
# cmake_minimum_required(VERSION 3.16)
# project(ck)
# include_directories(/code/llama_ft/)
# include_directories(/code/llama_ft/src/fastertransformer/ck_extensions/include)
# include_directories(/code/llama_ft/3rdparty/composable_kernel/include/)
# include_directories(/code/llama_ft/3rdparty/composable_kernel/library/include/)
# set(CMAKE_SYSTEM_NAME Linux)
# set(TOOLCHAIN_PATH ${ROCM_PATH}/hip/cmake)
# set(CMAKE_C_COMPILER ${ROCM_PATH}/bin/hipcc)
# list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")


enable_language(CXX)
find_package(HIP REQUIRED)

add_definitions("-D__HIP_PLATFORM_AMD__")
set(CMAKE_PREFIX_PATH "/opt/dtk-23.04" CACHE PATH "Path to which RoCm has been installed")
set(CMAKE_CXX_COMPILER ${CMAKE_PREFIX_PATH}/bin/hipcc)
set(CMAKE_CXX_FLAGS "-O3")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_BUILD_TYPE Release)
set(GPU_TARGETS "gfx906;gfx926")


# add_library(cutlass_preprocessors STATIC cutlass_preprocessors.cc)
# set_property(TARGET cutlass_preprocessors PROPERTY POSITION_INDEPENDENT_CODE ON)

set(moe_gemm_files "")
file(GLOB moe_gemm_files ${moe_gemm_files} ./moe_gemm/*.cpp)
add_library(moe_gemm_kernels STATIC ${moe_gemm_files})
set_property(TARGET moe_gemm_kernels PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET moe_gemm_kernels PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON)


set(fpA_intB_files "")
file(GLOB fpA_intB_files ${fpA_intB_files} ./fpA_intB_gemm/*.cpp)
add_library(fpA_intB_gemm STATIC ${fpA_intB_files})
set_property(TARGET fpA_intB_gemm PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET fpA_intB_gemm PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON)


set(int8_files "")
file(GLOB int8_files ${int8_files} ./int8_gemm/*.cpp)
add_library(int8_gemm STATIC ${int8_files} )
set_property(TARGET int8_gemm PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET int8_gemm PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON)