Commit 19a6cc89 authored by carlushuang's avatar carlushuang
Browse files

let cpu instance compiled into a single .so file

parent f8b551da
add_example_executable(example_cpu_conv2d_fwd cpu_conv2d_fwd.cpp)
target_link_libraries(example_cpu_conv2d_fwd PRIVATE device_conv2d_fwd_cpu_instance)
set_target_properties(example_cpu_conv2d_fwd PROPERTIES LINK_FLAGS "${OMP_LINK_FLAG}")
target_link_libraries(example_cpu_conv2d_fwd PRIVATE "${OMP_LIBRARY}")
target_compile_options(example_cpu_conv2d_fwd PRIVATE "${OMP_CXX_FLAG}")
add_example_executable(example_cpu_conv2d_fwd cpu_conv2d_fwd.cpp)
target_link_libraries(example_cpu_conv2d_fwd PRIVATE ck_cpu_instance)
set_target_properties(example_cpu_conv2d_fwd PROPERTIES LINK_FLAGS "${OMP_LINK_FLAG}")
target_link_libraries(example_cpu_conv2d_fwd PRIVATE "${OMP_LIBRARY}")
target_compile_options(example_cpu_conv2d_fwd PRIVATE "${OMP_CXX_FLAG}")
add_example_executable(example_cpu_conv2d_fwd_bias_relu_add cpu_conv2d_fwd_bias_relu_add.cpp)
target_link_libraries(example_cpu_conv2d_fwd_bias_relu_add PRIVATE device_conv2d_fwd_bias_activation_add_cpu_instance)
set_target_properties(example_cpu_conv2d_fwd_bias_relu_add PROPERTIES LINK_FLAGS "${OMP_LINK_FLAG}")
target_link_libraries(example_cpu_conv2d_fwd_bias_relu_add PRIVATE "${OMP_LIBRARY}")
target_compile_options(example_cpu_conv2d_fwd_bias_relu_add PRIVATE "${OMP_CXX_FLAG}")
add_example_executable(example_cpu_conv2d_fwd_bias_relu_add cpu_conv2d_fwd_bias_relu_add.cpp)
target_link_libraries(example_cpu_conv2d_fwd_bias_relu_add PRIVATE ck_cpu_instance)
set_target_properties(example_cpu_conv2d_fwd_bias_relu_add PROPERTIES LINK_FLAGS "${OMP_LINK_FLAG}")
target_link_libraries(example_cpu_conv2d_fwd_bias_relu_add PRIVATE "${OMP_LIBRARY}")
target_compile_options(example_cpu_conv2d_fwd_bias_relu_add PRIVATE "${OMP_CXX_FLAG}")
......@@ -21,5 +21,14 @@ function(add_instance_library INSTANCE_NAME)
set_target_properties(${INSTANCE_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
endfunction(add_instance_library INSTANCE_NAME)
set(CK_CPU_INSTANCE_SRC)
add_subdirectory(conv2d_fwd)
add_subdirectory(conv2d_fwd_bias_activation_add)
add_library(ck_cpu_instance SHARED ${CK_CPU_INSTANCE_SRC})
target_compile_features(ck_cpu_instance PUBLIC)
set_target_properties(ck_cpu_instance PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_link_libraries(ck_cpu_instance PRIVATE "${OMP_LIBRARY}")
target_compile_options(ck_cpu_instance PRIVATE "${OMP_CXX_FLAG}")
install(TARGETS ck_cpu_instance LIBRARY DESTINATION lib)
# device_conv2d_fwd_cpu_instance
set(DEVICE_CONV2D_FWD_CPU_INSTANCE_SOURCE
device_conv2d_fwd_avx2_nhwc_kyxc_nhwk_instance.cpp
device_conv2d_fwd_avx2_nhwc_kyxck8_nhwk_instance.cpp
device_conv2d_fwd_avx2_nhwc_yxck_nhwk_instance.cpp
file(GLOB tmp *.cpp)
set(CK_CPU_INSTANCE_SRC
${CK_CPU_INSTANCE_SRC}
${tmp}
PARENT_SCOPE
)
add_library(device_conv2d_fwd_cpu_instance SHARED ${DEVICE_CONV2D_FWD_CPU_INSTANCE_SOURCE})
target_compile_features(device_conv2d_fwd_cpu_instance PUBLIC)
set_target_properties(device_conv2d_fwd_cpu_instance PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_link_libraries(device_conv2d_fwd_cpu_instance PRIVATE "${OMP_LIBRARY}")
target_compile_options(device_conv2d_fwd_cpu_instance PRIVATE "${OMP_CXX_FLAG}")
install(TARGETS device_conv2d_fwd_cpu_instance LIBRARY DESTINATION lib)
clang_tidy_check(device_conv2d_fwd_cpu_instance)
# device_conv2d_fwd_bias_activation_add_cpu_instance
set(DEVICE_CONV2D_FWD_CPU_INSTANCE_SOURCE
device_conv2d_bias_activation_add_avx2_nhwc_kyxc_nhwk_instance.cpp
device_conv2d_bias_activation_add_avx2_nhwc_kyxck8_nhwk_instance.cpp
device_conv2d_bias_activation_add_avx2_nhwc_yxck_nhwk_instance.cpp
file(GLOB tmp *.cpp)
set(CK_CPU_INSTANCE_SRC
${CK_CPU_INSTANCE_SRC}
${tmp}
PARENT_SCOPE
)
add_library(device_conv2d_fwd_bias_activation_add_cpu_instance SHARED ${DEVICE_CONV2D_FWD_CPU_INSTANCE_SOURCE})
target_compile_features(device_conv2d_fwd_bias_activation_add_cpu_instance PUBLIC)
set_target_properties(device_conv2d_fwd_bias_activation_add_cpu_instance PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_link_libraries(device_conv2d_fwd_bias_activation_add_cpu_instance PRIVATE "${OMP_LIBRARY}")
target_compile_options(device_conv2d_fwd_bias_activation_add_cpu_instance PRIVATE "${OMP_CXX_FLAG}")
install(TARGETS device_conv2d_fwd_bias_activation_add_cpu_instance LIBRARY DESTINATION lib)
clang_tidy_check(device_conv2d_fwd_bias_activation_add_cpu_instance)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment