【问题标题】:How can I build a fatbin file using CMake?如何使用 CMake 构建 fatbin 文件?
【发布时间】:2022-01-28 04:06:00
【问题描述】:

我想使用 CMake 从我的 .cu 源文件构建一个 fatbin 文件。

我试过了:

add_library(dummy_lib OBJECT my_src.cu)
set_property(TARGET dummy_lib PROPERTY CUDA_PTX_COMPILATION ON)
add_custom_command(
  TARGET dummy_lib POST_BUILD
  COMMAND nvcc -fatbin 
     -o "$<TARGET_FILE_BASE_NAME::dummy_lib>.fatbin" 
     "$<TARGET_FILE:dummy_lib>"
  VERBATIM)

不幸的是 - 这不起作用,因为您可以对 OBJECT 类型的库有一个 POST_BUILD 依赖项。但是,如果我删除了OBJECT 属性,那么我就不能在上面使用CUDA_PTX_COMPILATION ON...

然后我会尝试OUTPUT 版本的add_custom_command()

add_library(dummy_lib OBJECT my_src.cu)
set_property(TARGET dummy_lib PROPERTY CUDA_PTX_COMPILATION ON)
add_custom_command(
  OUTPUT my_src.fatbin
  COMMAND ${CMAKE_CUDA_COMPILER} -fatbin -o my_src.fatbin "$<TARGET_FILE:dummy_lib>"
  MAIN_DEPENDENCY dummy_lib
)

这不会触发任何错误...但也不会构建 fatbin 文件。

如何让 CMake 构建我的 fatbin? :-(

【问题讨论】:

    标签: cmake cuda buildconfiguration cmake-custom-command fatbin


    【解决方案1】:

    忘记 PTX 中间文件,而是这样做:

    add_custom_command(
        OUTPUT my_src.fatbin
        COMMAND ${CMAKE_CUDA_COMPILER} -fatbin 
            -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/foo.fatbin 
            "${CMAKE_CURRENT_SOURCE_DIR}/my_src.cu"
        MAIN_DEPENDENCY my_src.cu
    )
    add_custom_target(dummy ALL DEPENDS my_src.fatbin)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      • 2020-11-21
      • 2020-03-14
      • 2016-04-24
      相关资源
      最近更新 更多