@@ -255,7 +255,7 @@ else()
255255 set (__AOTRITON_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR} /aotriton" )
256256 set (__AOTRITON_SUFFIX "_TEprivate" )
257257 if (NOT DEFINED AOTRITON_PATH)
258- # # Install aotriton fused attn
258+ # Install aotriton fused attn
259259 if (USE_FUSED_ATTN_AOTRITON_BUILD_GPU_KERNELS)
260260 set (AOTRITON_NOIMAGE_MODE OFF )
261261 else ()
@@ -271,51 +271,60 @@ else()
271271 foreach (X IN LISTS CMAKE_HIP_ARCHITECTURES)
272272 set (key ${X} )
273273 string (APPEND key "_key" )
274- string (APPEND aotriton_target_gpus ${${key} })
275- string (APPEND aotriton_target_gpus "|" )
274+ set (gpu ${${key} })
275+ if (gpu)
276+ string (APPEND aotriton_target_gpus "${gpu} |" )
277+ else ()
278+ message (WARNING "AOTriton building is not supported for ${X} " )
279+ endif ()
276280 endforeach ()
277281 endmacro ()
278282 translate_arch_to_gpu_names(aotriton_target_gpus)
279- include (ExternalProject)
280- ExternalProject_Add(aotriton_external
281- SOURCE_DIR ../../3rdparty/aotriton
282- LIST_SEPARATOR |
283- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH =${__AOTRITON_INSTALL_DIR}
284- -DTARGET_GPUS=${aotriton_target_gpus}
285- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
286- -DAOTRITON_NO_PYTHON=ON
287- -DAOTRITON_NAME_SUFFIX=${__AOTRITON_SUFFIX}
288- -DAOTRITON_NOIMAGE_MODE=${AOTRITON_NOIMAGE_MODE}
289- BUILD_BYPRODUCTS "${__AOTRITON_INSTALL_DIR} /lib/libaotriton${__AOTRITON_SUFFIX} _v2.so"
290- )
291- add_library (aotriton INTERFACE )
292- add_dependencies (aotriton aotriton_external)
293- target_link_libraries (aotriton INTERFACE ${__AOTRITON_INSTALL_DIR} /lib/libaotriton${__AOTRITON_SUFFIX} _v2.so)
294- target_include_directories (aotriton INTERFACE ${__AOTRITON_INSTALL_DIR} /include )
295- if (NOT USE_FUSED_ATTN_AOTRITON_BUILD_GPU_KERNELS)
296- set (__AOTRITON_VER "0.8.2b" )
297- set (__AOTRITON_SHA256 "66445e6b0209b9f4080743b839cc9d424054dc5c8d07363f9f27f109231c324a" )
298- string (CONCAT __AOTRITON_URL "https://github.com/ROCm/aotriton/releases/download/"
299- "${__AOTRITON_VER} /aotriton-"
300- "${__AOTRITON_VER} -manylinux_2_28"
301- "_x86_64-rocm6.2"
302- "-shared.tar.gz" )
303- ExternalProject_Add(aotriton_images
304- URL "${__AOTRITON_URL} "
305- URL_HASH SHA256=${__AOTRITON_SHA256}
306- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR} /aotriton_tarball
307- CONFIGURE_COMMAND ""
308- BUILD_COMMAND ""
309- INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
310- "${CMAKE_CURRENT_BINARY_DIR} /aotriton_tarball/lib/aotriton.images"
311- "${__AOTRITON_INSTALL_DIR} /lib/aotriton.images" )
312- add_dependencies (aotriton aotriton_images)
283+ if (NOT aotriton_target_gpus)
284+ set (USE_FUSED_ATTN_AOTRITON FALSE )
285+ message (WARNING "Disable AOTriton building because no supported GPU targets found" )
286+ else ()
287+ include (ExternalProject)
288+ ExternalProject_Add(aotriton_external
289+ SOURCE_DIR ../../3rdparty/aotriton
290+ LIST_SEPARATOR |
291+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH =${__AOTRITON_INSTALL_DIR}
292+ -DTARGET_GPUS=${aotriton_target_gpus}
293+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
294+ -DAOTRITON_NO_PYTHON=ON
295+ -DAOTRITON_NAME_SUFFIX=${__AOTRITON_SUFFIX}
296+ -DAOTRITON_NOIMAGE_MODE=${AOTRITON_NOIMAGE_MODE}
297+ BUILD_BYPRODUCTS "${__AOTRITON_INSTALL_DIR} /lib/libaotriton${__AOTRITON_SUFFIX} _v2.so"
298+ )
299+ add_library (aotriton INTERFACE )
300+ add_dependencies (aotriton aotriton_external)
301+ target_link_libraries (aotriton INTERFACE ${__AOTRITON_INSTALL_DIR} /lib/libaotriton${__AOTRITON_SUFFIX} _v2.so)
302+ target_include_directories (aotriton INTERFACE ${__AOTRITON_INSTALL_DIR} /include )
303+ if (NOT USE_FUSED_ATTN_AOTRITON_BUILD_GPU_KERNELS)
304+ set (__AOTRITON_VER "0.8.2b" )
305+ set (__AOTRITON_SHA256 "66445e6b0209b9f4080743b839cc9d424054dc5c8d07363f9f27f109231c324a" )
306+ string (CONCAT __AOTRITON_URL "https://github.com/ROCm/aotriton/releases/download/"
307+ "${__AOTRITON_VER} /aotriton-"
308+ "${__AOTRITON_VER} -manylinux_2_28"
309+ "_x86_64-rocm6.2"
310+ "-shared.tar.gz" )
311+ ExternalProject_Add(aotriton_images
312+ URL "${__AOTRITON_URL} "
313+ URL_HASH SHA256=${__AOTRITON_SHA256}
314+ SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR} /aotriton_tarball
315+ CONFIGURE_COMMAND ""
316+ BUILD_COMMAND ""
317+ INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
318+ "${CMAKE_CURRENT_BINARY_DIR} /aotriton_tarball/lib/aotriton.images"
319+ "${__AOTRITON_INSTALL_DIR} /lib/aotriton.images" )
320+ add_dependencies (aotriton aotriton_images)
321+ endif ()
322+ install (DIRECTORY
323+ ${__AOTRITON_INSTALL_DIR} /lib
324+ DESTINATION ${CMAKE_INSTALL_PREFIX} /transformer_engine
325+ PATTERN "cmake" EXCLUDE
326+ PATTERN "libaotriton${__AOTRITON_SUFFIX} _v2.so" EXCLUDE )
313327 endif ()
314- install (DIRECTORY
315- ${__AOTRITON_INSTALL_DIR} /lib
316- DESTINATION ${CMAKE_INSTALL_PREFIX} /transformer_engine
317- PATTERN "cmake" EXCLUDE
318- PATTERN "libaotriton${__AOTRITON_SUFFIX} _v2.so" EXCLUDE )
319328 else ()
320329 # Use aotriton built during initial TE building/installation
321330 # When only need rebuild TE library itself
0 commit comments