CMakeLists.txt 16.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
set(PYBIND_DEPS
    init
    pybind
    python
    proto_desc
    memory
    executor
    fleet_wrapper
    box_wrapper
    metrics
    prune
    feed_fetch_method
    pass
    generate_pass
    pass_builder
    parallel_executor
    profiler
    layer
    tracer
    engine
    scope_pool
    analysis_predictor
    imperative_profiler
    imperative_flag
    save_load_util
    dlpack_tensor
    device_context
    gloo_wrapper
    infer_io_utils
    heter_wrapper
    generator
    op_version_registry
    ps_gpu_wrapper
    custom_operator
    cost_model
    cuda_graph_with_memory_pool
    fleet_executor
    global_utils
    phi_utils
    tcp_store
    new_profiler)

if(WITH_PSCORE)
S
seemingwang 已提交
44 45
  set(PYBIND_DEPS ${PYBIND_DEPS} ps_service)
  set(PYBIND_DEPS ${PYBIND_DEPS} graph_py_service)
46
  if(WITH_HETERPS)
47 48
    set(PYBIND_DEPS ${PYBIND_DEPS} graph_gpu_wrapper)
  endif()
S
seemingwang 已提交
49
endif()
50
if(WITH_GPU OR WITH_ROCM)
51
  set(PYBIND_DEPS ${PYBIND_DEPS} dynload_cuda)
52
  set(PYBIND_DEPS ${PYBIND_DEPS} cuda_device_guard)
53 54
endif()

55
if(WITH_GPU)
56 57
  set(PYBIND_DEPS ${PYBIND_DEPS} cuda_profiler)
endif()
58
if(WITH_IPU)
J
jianghaicheng 已提交
59 60
  set(PYBIND_DEPS ${PYBIND_DEPS} ipu_info)
endif()
61

62
if(WITH_NCCL OR WITH_RCCL)
63
  set(PYBIND_DEPS ${PYBIND_DEPS} nccl_wrapper)
64
  set(PYBIND_DEPS ${PYBIND_DEPS} reducer)
65 66
endif()

67
if(WITH_XPU_BKCL)
68 69
  set(PYBIND_DEPS ${PYBIND_DEPS} reducer)
  set(PYBIND_DEPS ${PYBIND_DEPS} bkcl_context)
K
kuizhiqing 已提交
70 71 72
  set(PYBIND_DEPS ${PYBIND_DEPS} heter_ccl_context)
endif()

73
if(WITH_ASCEND_CL)
K
kuizhiqing 已提交
74 75 76
  set(PYBIND_DEPS ${PYBIND_DEPS} reducer)
  set(PYBIND_DEPS ${PYBIND_DEPS} hccl_context)
  set(PYBIND_DEPS ${PYBIND_DEPS} heter_ccl_context)
77 78
endif()

79
if(WITH_CNCL)
80
  set(PYBIND_DEPS ${PYBIND_DEPS} reducer)
81 82 83
  set(PYBIND_DEPS ${PYBIND_DEPS} cncl_context)
endif()

84
if(NOT WIN32)
85
  set(PYBIND_DEPS ${PYBIND_DEPS} data_loader)
86
  set(PYBIND_DEPS ${PYBIND_DEPS} mmap_allocator)
87
  if(WITH_GPU)
88 89
    set(PYBIND_DEPS ${PYBIND_DEPS} cuda_ipc_allocator)
  endif()
90
  if(WITH_NCCL OR WITH_RCCL)
91
    set(PYBIND_DEPS ${PYBIND_DEPS} nccl_context)
K
kuizhiqing 已提交
92
    set(PYBIND_DEPS ${PYBIND_DEPS} heter_ccl_context)
93
  endif()
94
endif()
F
flame 已提交
95

S
sneaxiy 已提交
96 97
if(WITH_PYTHON)
  list(APPEND PYBIND_DEPS py_func_op)
98
  list(APPEND PYBIND_DEPS py_layer_op)
S
sneaxiy 已提交
99
endif()
100 101

set(PYBIND_SRCS
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
    pybind.cc
    exception.cc
    protobuf.cc
    const_value.cc
    global_value_getter_setter.cc
    reader_py.cc
    fleet_wrapper_py.cc
    heter_wrapper_py.cc
    ps_gpu_wrapper_py.cc
    gloo_wrapper_py.cc
    box_helper_py.cc
    metrics_py.cc
    data_set_py.cc
    imperative.cc
    ir.cc
    bind_cost_model.cc
    bind_fleet_executor.cc
    inference_api.cc
    compatible.cc
    io.cc
    generator_py.cc
    communication.cc
    cuda_streams_py.cc)
125

126 127 128 129
if(WITH_CUSTOM_DEVICE)
  set(PYBIND_DEPS ${PYBIND_DEPS} phi_capi)
endif()

130
if(NOT ON_INFER)
131 132 133 134 135
  set(PYBIND_DEPS ${PYBIND_DEPS} processgroup eager_reducer)
  if(WITH_NCCL)
    set(PYBIND_DEPS ${PYBIND_DEPS} processgroup_nccl)
    if(WITH_PSCORE)
      set(PYBIND_DEPS ${PYBIND_DEPS} processgroup_heter)
136
    endif()
137
  endif()
138 139
  if(WITH_GLOO)
    set(PYBIND_DEPS ${PYBIND_DEPS} processgroup_gloo)
140
  endif()
141
  if(WITH_ASCEND_CL)
142 143 144
    set(PYBIND_DEPS ${PYBIND_DEPS} processgroup_hccl)
    if(WITH_PSCORE)
      set(PYBIND_DEPS ${PYBIND_DEPS} processgroup_heter)
145
    endif()
146
  endif()
147 148 149
  set(PYBIND_SRCS ${PYBIND_SRCS} distributed_py.cc)
endif()

150
if(WITH_ASCEND)
151 152
  set(PYBIND_DEPS ${PYBIND_DEPS} ascend_wrapper)
  set(PYBIND_SRCS ${PYBIND_SRCS} ascend_wrapper_py.cc)
153
endif()
154

155 156 157
if(WITH_GLOO)
  set(PYBIND_DEPS ${PYBIND_DEPS} gloo_context)
  set(PYBIND_SRCS ${PYBIND_SRCS} gloo_context_py.cc)
158 159
  set(PYBIND_DEPS ${PYBIND_DEPS} imperative_gloo_context)
  set(PYBIND_DEPS ${PYBIND_DEPS} reducer)
160
endif()
161

162
if(WITH_CRYPTO)
Y
Yanghello 已提交
163 164
  set(PYBIND_DEPS ${PYBIND_DEPS} paddle_crypto)
  set(PYBIND_SRCS ${PYBIND_SRCS} crypto.cc)
165
endif()
166 167 168 169 170 171 172

if(WITH_PSLIB)
  set(DISTRIBUTE_COMPILE_FLAGS
      "-Wno-non-virtual-dtor -Wno-error=non-virtual-dtor -Wno-error=delete-non-virtual-dtor -Wno-error=sign-compare -Wno-error=unused-variable -Wno-error=return-type -Wno-error=unused-but-set-variable -Wno-error=type-limits -Wno-error=unknown-pragmas -Wno-error=parentheses -Wno-error=unused-result"
  )
  if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
    set(DISTRIBUTE_COMPILE_FLAGS "${DISTRIBUTE_COMPILE_FLAGS} -faligned-new")
T
Thunderbrook 已提交
173
  endif()
174 175
  set_source_files_properties(
    heter_wrapper_py.cc PROPERTIES COMPILE_FLAGS ${DISTRIBUTE_COMPILE_FLAGS})
176
endif()
177 178 179 180 181
if(WITH_PSCORE)
  if(WITH_ARM_BRPC)
    set(DISTRIBUTE_COMPILE_FLAGS
        "-faligned-new -Wno-non-virtual-dtor -Wno-error=non-virtual-dtor -Wno-error=delete-non-virtual-dtor -Wno-error=sign-compare -Wno-error=unused-variable -Wno-error=return-type -Wno-error=unused-but-set-variable -Wno-error=unknown-pragmas -Wno-error=parentheses -Wno-error=unused-result"
    )
182
  else()
183 184 185
    set(DISTRIBUTE_COMPILE_FLAGS
        "-Wno-non-virtual-dtor -Wno-error=non-virtual-dtor -Wno-error=delete-non-virtual-dtor -Wno-error=sign-compare -Wno-error=unused-variable -Wno-error=return-type -Wno-error=unused-but-set-variable -Wno-error=unknown-pragmas -Wno-error=parentheses -Wno-error=unused-result"
    )
186
  endif()
187 188
  set_source_files_properties(
    fleet_py.cc PROPERTIES COMPILE_FLAGS ${DISTRIBUTE_COMPILE_FLAGS})
1
123malin 已提交
189
  list(APPEND PYBIND_DEPS fleet communicator index_wrapper index_sampler)
T
tangwei12 已提交
190
  list(APPEND PYBIND_SRCS fleet_py.cc)
191
endif()
192

193
if(WITH_NCCL OR WITH_RCCL)
194 195 196
  list(APPEND PYBIND_SRCS nccl_wrapper_py.cc)
endif()

L
Leo Chen 已提交
197 198
if(WITH_PYTHON)
  # generate op pybind functions automatically for dygraph.
199 200 201 202 203 204 205 206 207 208 209
  if(WITH_ASCEND_CL)
    set(OP_FUNCTION_GENERETOR_DEPS
        pybind
        proto_desc
        executor
        layer
        tracer
        engine
        imperative_profiler
        imperative_flag
        ascend_wrapper)
210
  else()
211 212 213 214 215 216 217 218 219
    set(OP_FUNCTION_GENERETOR_DEPS
        pybind
        proto_desc
        executor
        layer
        tracer
        engine
        imperative_profiler
        imperative_flag)
220
  endif()
L
Leo Chen 已提交
221 222 223
  list(APPEND OP_FUNCTION_GENERETOR_DEPS ${GLOB_OP_LIB})
  list(APPEND OP_FUNCTION_GENERETOR_DEPS ${GLOB_OPERATOR_DEPS})

224
  if(WITH_NCCL OR WITH_RCCL)
L
Leo Chen 已提交
225
    list(APPEND OP_FUNCTION_GENERETOR_DEPS nccl_context)
226
  endif()
L
Leo Chen 已提交
227

228 229
  if(WITH_XPU_BKCL)
    list(APPEND OP_FUNCTION_GENERETOR_DEPS bkcl_context)
230
  endif()
231

232 233
  if(WITH_ASCEND_CL)
    list(APPEND OP_FUNCTION_GENERETOR_DEPS hccl_context)
234
  endif()
235

236 237
  if(WITH_CNCL)
    list(APPEND OP_FUNCTION_GENERETOR_DEPS cncl_context)
238
  endif()
239

L
Leo Chen 已提交
240
  add_executable(op_function_generator op_function_generator.cc)
241
  target_link_libraries(op_function_generator ${OP_FUNCTION_GENERETOR_DEPS})
242
  add_executable(eager_op_function_generator eager_op_function_generator.cc)
243 244
  target_link_libraries(eager_op_function_generator
                        ${OP_FUNCTION_GENERETOR_DEPS})
245 246
  if(NOT WIN32)
    add_executable(kernel_signature_generator kernel_signature_generator.cc)
247 248
    target_link_libraries(kernel_signature_generator
                          ${OP_FUNCTION_GENERETOR_DEPS})
249
  endif()
250

251
  get_property(os_dependency_modules GLOBAL PROPERTY OS_DEPENDENCY_MODULES)
L
Leo Chen 已提交
252
  target_link_libraries(op_function_generator ${os_dependency_modules})
253
  target_link_libraries(eager_op_function_generator ${os_dependency_modules})
254 255
  if(WITH_ROCM)
    target_link_libraries(op_function_generator ${ROCM_HIPRTC_LIB})
256
    target_link_libraries(eager_op_function_generator ${ROCM_HIPRTC_LIB})
257
    target_link_libraries(kernel_signature_generator ${ROCM_HIPRTC_LIB})
258
  endif()
L
Leo Chen 已提交
259

260 261
  set(impl_file ${CMAKE_SOURCE_DIR}/paddle/fluid/pybind/op_function_impl.h)
  set(tmp_impl_file ${impl_file}.tmp)
262 263
  set(eager_impl_file
      ${CMAKE_SOURCE_DIR}/paddle/fluid/pybind/eager_op_function_impl.h)
264
  set(tmp_eager_impl_file ${eager_impl_file}.tmp)
265

266
  set(OP_IMPL_DEPS op_function_generator)
267 268
  set(EAGER_OP_IMPL_DEPS eager_op_function_generator
                         eager_final_state_python_c_codegen)
269

270
  if(WIN32)
271
    if("${CMAKE_GENERATOR}" STREQUAL "Ninja")
272
      set(op_impl_path "${CMAKE_CURRENT_BINARY_DIR}")
273
    else()
274
      set(op_impl_path "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
275
    endif()
276

277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313
    file(
      WRITE
      ${CMAKE_BINARY_DIR}/paddle/fluid/pybind/op_function_generator_retry.bat
      ""
      "set build_times=1\n"
      ":retry\n"
      "ECHO op_function_generator run %build_times% time\n"
      "taskkill /f /im op_function_generator.exe 2>NUL\n"
      "${op_impl_path}/op_function_generator.exe ${tmp_impl_file}\n"
      "if %ERRORLEVEL% NEQ 0 (\n"
      "    set /a build_times=%build_times%+1\n"
      "    if %build_times% GEQ 10 (\n"
      "        exit /b 1\n"
      "    ) else (\n"
      "        goto :retry\n"
      "    )\n"
      ")\n"
      "exit /b 0")

    file(
      WRITE
      ${CMAKE_BINARY_DIR}/paddle/fluid/pybind/eager_op_function_generator_retry.bat
      ""
      "set build_times=1\n"
      ":retry\n"
      "ECHO eager_op_function_generator run %build_times% time\n"
      "taskkill /f /im eager_op_function_generator.exe 2>NUL\n"
      "${op_impl_path}/eager_op_function_generator.exe ${tmp_eager_impl_file}\n"
      "if %ERRORLEVEL% NEQ 0 (\n"
      "    set /a build_times=%build_times%+1\n"
      "    if %build_times% GEQ 10 (\n"
      "        exit /b 1\n"
      "    ) else (\n"
      "        goto :retry\n"
      "    )\n"
      ")\n"
      "exit /b 0")
314

315
    if(${CBLAS_PROVIDER} STREQUAL MKLML)
316 317 318 319
      add_custom_command(
        OUTPUT ${op_impl_path}/libiomp5md.dll
        COMMAND ${CMAKE_COMMAND} -E copy ${MKLML_SHARED_IOMP_LIB}
                ${op_impl_path}
320 321
        DEPENDS mklml)
      list(APPEND OP_IMPL_DEPS ${op_impl_path}/libiomp5md.dll)
322
      list(APPEND EAGER_OP_IMPL_DEPS ${op_impl_path}/libiomp5md.dll)
323
    else()
324 325
      add_custom_command(
        OUTPUT ${op_impl_path}/openblas.dll
326 327 328
        COMMAND ${CMAKE_COMMAND} -E copy ${OPENBLAS_SHARED_LIB} ${op_impl_path}
        DEPENDS extern_openblas)
      list(APPEND OP_IMPL_DEPS ${op_impl_path}/openblas.dll)
329
      list(APPEND EAGER_OP_IMPL_DEPS ${op_impl_path}/openblas.dll)
330
    endif()
L
Leo Chen 已提交
331
    if(WITH_MKLDNN)
332 333
      add_custom_command(
        OUTPUT ${op_impl_path}/mkldnn.dll
334 335
        COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_SHARED_LIB} ${op_impl_path}
        DEPENDS mkldnn)
336 337
      list(APPEND OP_IMPL_DEPS ${op_impl_path}/mkldnn.dll)
      list(APPEND EAGER_OP_IMPL_DEPS ${op_impl_path}/mkldnn.dll)
338
    endif()
339
    if(WITH_ONNXRUNTIME)
340 341
      add_custom_command(
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/paddle2onnx.dll
342
        COMMAND ${CMAKE_COMMAND} -E copy ${PADDLE2ONNX_LIB}
343
                ${CMAKE_CURRENT_BINARY_DIR}
344 345
        DEPENDS paddle2onnx)
      list(APPEND OP_IMPL_DEPS ${CMAKE_CURRENT_BINARY_DIR}/paddle2onnx.dll)
346 347
      list(APPEND EAGER_OP_IMPL_DEPS
           ${CMAKE_CURRENT_BINARY_DIR}/paddle2onnx.dll)
348

349 350 351 352
      add_custom_command(
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime.dll
        COMMAND ${CMAKE_COMMAND} -E copy ${ONNXRUNTIME_SHARED_LIB}
                ${CMAKE_CURRENT_BINARY_DIR}
353 354
        DEPENDS onnxruntime)
      list(APPEND OP_IMPL_DEPS ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime.dll)
355 356
      list(APPEND EAGER_OP_IMPL_DEPS
           ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime.dll)
357
    endif()
358

359 360 361 362 363 364
    add_custom_command(
      OUTPUT ${impl_file}
      COMMAND
        ${CMAKE_BINARY_DIR}/paddle/fluid/pybind/op_function_generator_retry.bat
      COMMAND ${CMAKE_COMMAND} -E copy_if_different ${tmp_impl_file}
              ${impl_file}
365 366
      COMMENT "copy_if_different ${tmp_impl_file} to ${impl_file}"
      DEPENDS ${OP_IMPL_DEPS})
367
    if(NOT ((NOT WITH_PYTHON) AND ON_INFER))
368 369 370 371 372 373
      add_custom_command(
        OUTPUT ${eager_impl_file}
        COMMAND
          ${CMAKE_BINARY_DIR}/paddle/fluid/pybind/eager_op_function_generator_retry.bat
        COMMAND ${CMAKE_COMMAND} -E copy_if_different ${tmp_eager_impl_file}
                ${eager_impl_file}
374 375 376
        COMMENT "copy_if_different ${tmp_eager_impl_file} to ${eager_impl_file}"
        DEPENDS ${EAGER_OP_IMPL_DEPS})
    endif()
377
  else()
378
    # If there are no *.so in /usr/lib or LD_LIBRARY_PATH,
L
Leo Chen 已提交
379
    # copy these *.so to current directory and append current directory to
380
    # LD_LIBRARY_PATH. This is different with Windows platformm, which search
L
Leo Chen 已提交
381
    # *.dll in current directory automatically.
382
    if(WITH_ONNXRUNTIME)
383 384 385 386 387
      if(APPLE)
        set(PADDLE2ONNX_PYBIND_OUT
            ${CMAKE_CURRENT_BINARY_DIR}/libpaddle2onnx.dylib)
        set(ONNXRUNTIME_PYBIND_OUT
            ${CMAKE_CURRENT_BINARY_DIR}/libonnxruntime.dylib)
388
      else()
389 390 391 392
        set(PADDLE2ONNX_PYBIND_OUT
            ${CMAKE_CURRENT_BINARY_DIR}/libpaddle2onnx.so)
        set(ONNXRUNTIME_PYBIND_OUT
            ${CMAKE_CURRENT_BINARY_DIR}/libonnxruntime.so)
393 394
      endif()

395 396 397 398
      add_custom_command(
        OUTPUT ${PADDLE2ONNX_PYBIND_OUT}
        COMMAND ${CMAKE_COMMAND} -E copy ${PADDLE2ONNX_LIB}
                ${CMAKE_CURRENT_BINARY_DIR}
399 400 401 402
        DEPENDS paddle2onnx)
      list(APPEND OP_IMPL_DEPS ${PADDLE2ONNX_PYBIND_OUT})
      list(APPEND EAGER_OP_IMPL_DEPS ${PADDLE2ONNX_PYBIND_OUT})

403 404 405 406
      add_custom_command(
        OUTPUT ${ONNXRUNTIME_PYBIND_OUT}
        COMMAND ${CMAKE_COMMAND} -E copy ${ONNXRUNTIME_LIB}
                ${CMAKE_CURRENT_BINARY_DIR}
407 408 409 410 411
        DEPENDS onnxruntime)
      list(APPEND OP_IMPL_DEPS ${ONNXRUNTIME_PYBIND_OUT})
      list(APPEND EAGER_OP_IMPL_DEPS ${ONNXRUNTIME_PYBIND_OUT})
    endif()

412
    if(WITH_MKLML)
413 414 415 416
      add_custom_command(
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libiomp5.so
        COMMAND ${CMAKE_COMMAND} -E copy ${MKLML_SHARED_IOMP_LIB}
                ${CMAKE_CURRENT_BINARY_DIR}
417 418
        DEPENDS mklml)
      list(APPEND OP_IMPL_DEPS ${CMAKE_CURRENT_BINARY_DIR}/libiomp5.so)
419
      list(APPEND EAGER_OP_IMPL_DEPS ${CMAKE_CURRENT_BINARY_DIR}/libiomp5.so)
420 421
    endif()
    if(WITH_MKLDNN)
422 423 424 425
      add_custom_command(
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libdnnl.so.0
        COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_SHARED_LIB}
                ${CMAKE_CURRENT_BINARY_DIR}
426 427
        DEPENDS mkldnn)
      list(APPEND OP_IMPL_DEPS ${CMAKE_CURRENT_BINARY_DIR}/libdnnl.so.0)
428
      list(APPEND EAGER_OP_IMPL_DEPS ${CMAKE_CURRENT_BINARY_DIR}/libdnnl.so.0)
429
    endif()
430 431 432 433 434 435 436 437 438 439
    add_custom_command(
      OUTPUT ${impl_file}
      COMMAND
        ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:."
        "${CMAKE_CURRENT_BINARY_DIR}/op_function_generator" "${tmp_impl_file}"
      COMMAND ${CMAKE_COMMAND} -E copy_if_different ${tmp_impl_file}
              ${impl_file}
      COMMENT "copy_if_different ${tmp_impl_file} to ${impl_file}"
      DEPENDS ${OP_IMPL_DEPS}
      VERBATIM)
440
    if(NOT ((NOT WITH_PYTHON) AND ON_INFER))
441 442 443 444 445 446 447 448 449 450 451 452
      add_custom_command(
        OUTPUT ${eager_impl_file}
        COMMAND
          ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:."
          "${CMAKE_CURRENT_BINARY_DIR}/eager_op_function_generator"
          "${tmp_eager_impl_file}"
        COMMAND ${CMAKE_COMMAND} -E copy_if_different ${tmp_eager_impl_file}
                ${eager_impl_file}
        COMMENT "copy_if_different ${tmp_eager_impl_file} to ${eager_impl_file}"
        DEPENDS ${EAGER_OP_IMPL_DEPS}
        VERBATIM)
    endif()
453
  endif()
454
  add_custom_target(op_function_generator_cmd ALL DEPENDS ${impl_file})
455
  if(NOT ((NOT WITH_PYTHON) AND ON_INFER))
456 457
    add_custom_target(eager_op_function_generator_cmd ALL
                      DEPENDS ${eager_impl_file})
458
  endif()
L
Leo Chen 已提交
459

460 461 462 463 464 465
  list(APPEND PYBIND_DEPS interpretercore standalone_executor
       staticgraph_executor_statistics)
  cc_library(
    op_function_common
    SRCS op_function_common.cc
    DEPS ${PYBIND_DEPS})
466
  list(APPEND PYBIND_DEPS op_function_common)
467

468
  if(NOT ((NOT WITH_PYTHON) AND ON_INFER))
469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489
    cc_library(
      paddle_eager
      SRCS eager.cc eager_functions.cc eager_method.cc eager_properties.cc
           eager_utils.cc eager_py_layer.cc
      DEPS eager_api
           autograd_meta
           backward
           grad_node_info
           phi
           op_function_common
           final_dygraph_function
           final_dygraph_node
           dygraph_function
           dygraph_node
           accumulation_node
           py_layer_node
           global_utils
           utils
           python
           custom_operator
           custom_operator_node)
490 491 492 493
    add_dependencies(paddle_eager eager_codegen)
    add_dependencies(paddle_eager eager_op_function_generator_cmd)
    list(APPEND PYBIND_DEPS paddle_eager)
  endif()
494

495 496
  cc_library(
    paddle_pybind SHARED
497
    SRCS ${PYBIND_SRCS}
498
    DEPS ${PYBIND_DEPS} ${GLOB_OP_LIB} ${GLOB_OPERATOR_DEPS})
499

500 501
  if(NOT APPLE AND NOT WIN32)
    target_link_libraries(paddle_pybind rt)
502
  endif()
503 504 505 506

  if(WITH_ROCM)
    target_link_libraries(paddle_pybind ${ROCM_HIPRTC_LIB})
  endif()
507

508
  get_property(os_dependency_modules GLOBAL PROPERTY OS_DEPENDENCY_MODULES)
P
peizhilin 已提交
509
  target_link_libraries(paddle_pybind ${os_dependency_modules})
510
  add_dependencies(paddle_pybind op_function_generator_cmd)
511
endif()