CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
391 lines
11 KiB
CMake
391 lines
11 KiB
CMake
# Copyright Advanced Micro Devices, Inc.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
# Most libraries need to depend on the profiler, but is conditionally only used
|
|
# on Posix.
|
|
set(optional_profiler_deps)
|
|
if(THEROCK_FLAG_INCLUDE_PROFILER)
|
|
list(APPEND optional_profiler_deps roctracer rocprofiler-sdk)
|
|
endif()
|
|
|
|
if(THEROCK_ENABLE_MIOPEN)
|
|
# MIOpen's CK use is gated on both the per-arch CK availability
|
|
# (math-libs/CMakeLists.txt) and the user-facing
|
|
# THEROCK_MIOPEN_USE_COMPOSABLE_KERNEL opt-out, which lets
|
|
# someone build CK for other consumers while keeping it out of MIOpen.
|
|
set(_miopen_use_ck OFF)
|
|
if(_ck_enabled AND THEROCK_MIOPEN_USE_COMPOSABLE_KERNEL)
|
|
set(_miopen_use_ck ON)
|
|
endif()
|
|
|
|
set(optional_miopen_build_deps)
|
|
if(_miopen_use_ck)
|
|
list(APPEND optional_miopen_build_deps composable_kernel)
|
|
endif()
|
|
|
|
if(MSVC)
|
|
set(_THEROCK_MIOPEN_ENABLE_TESTING ON)
|
|
else()
|
|
set(_THEROCK_MIOPEN_ENABLE_TESTING ${THEROCK_BUILD_TESTING})
|
|
endif()
|
|
|
|
therock_cmake_subproject_declare(MIOpen
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/projects/miopen"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/MIOpen"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
"-DBUILD_TESTING=${_THEROCK_MIOPEN_ENABLE_TESTING}"
|
|
"-DMIOPEN_USE_COMPOSABLEKERNEL=${_miopen_use_ck}"
|
|
-DMIOPEN_USE_MLIR=OFF # TODO: enable
|
|
-DMIOPEN_TEST_DISCRETE=OFF
|
|
"-DMIOPEN_INSTALL_GPU_DATABASES=\"${THEROCK_AMDGPU_TARGETS}\""
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
rocm-cmake
|
|
therock-eigen
|
|
therock-frugally-deep
|
|
therock-googletest
|
|
therock-nlohmann-json
|
|
therock-FunctionalPlus
|
|
${optional_miopen_build_deps}
|
|
RUNTIME_DEPS
|
|
hipBLAS-common
|
|
hip-clr
|
|
hipBLAS
|
|
hipBLASLt
|
|
rocm-half
|
|
rocBLAS
|
|
rocRAND
|
|
${THEROCK_BUNDLED_BZIP2}
|
|
${THEROCK_BUNDLED_SQLITE3}
|
|
${optional_profiler_deps}
|
|
TEST_SUBPROJECTS
|
|
miopenprovider
|
|
)
|
|
therock_cmake_subproject_provide_package(MIOpen miopen lib/cmake/miopen)
|
|
therock_cmake_subproject_activate(MIOpen)
|
|
|
|
therock_provide_artifact(miopen
|
|
DESCRIPTOR artifact-miopen.toml
|
|
COMPONENTS
|
|
dbg
|
|
dev
|
|
doc
|
|
lib
|
|
run
|
|
test
|
|
SUBPROJECT_DEPS
|
|
MIOpen
|
|
)
|
|
endif(THEROCK_ENABLE_MIOPEN)
|
|
|
|
if(THEROCK_ENABLE_HIPDNN)
|
|
##############################################################################
|
|
# hipDNN
|
|
##############################################################################
|
|
|
|
therock_cmake_subproject_declare(hipDNN
|
|
USE_DIST_AMDGPU_TARGETS
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/projects/hipdnn"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/hipDNN"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
"-DHIP_DNN_SKIP_TESTS=$<NOT:$<BOOL:${THEROCK_BUILD_TESTING}>>"
|
|
-DHIP_DNN_BUILD_PLUGINS=OFF
|
|
-DHIP_DNN_GENERATE_SDK_HEADERS=OFF
|
|
-DENABLE_CLANG_TIDY=OFF
|
|
-DENABLE_CLANG_FORMAT=OFF
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
therock-googletest
|
|
therock-fmt
|
|
therock-spdlog
|
|
therock-flatbuffers
|
|
therock-nlohmann-json
|
|
RUNTIME_DEPS
|
|
hip-clr
|
|
TEST_SUBPROJECTS
|
|
miopenprovider
|
|
hipblasltprovider
|
|
hipkernelprovider
|
|
hipdnn_integration_tests
|
|
)
|
|
therock_cmake_subproject_glob_c_sources(hipDNN
|
|
SUBDIRS
|
|
.
|
|
)
|
|
|
|
therock_cmake_subproject_provide_package(hipDNN hipdnn_data_sdk lib/cmake/hipdnn_data_sdk)
|
|
therock_cmake_subproject_provide_package(hipDNN hipdnn_flatbuffers_sdk lib/cmake/hipdnn_flatbuffers_sdk)
|
|
therock_cmake_subproject_provide_package(hipDNN hipdnn_plugin_sdk lib/cmake/hipdnn_plugin_sdk)
|
|
therock_cmake_subproject_provide_package(hipDNN hipdnn_test_sdk lib/cmake/hipdnn_test_sdk)
|
|
therock_cmake_subproject_provide_package(hipDNN hipdnn_frontend lib/cmake/hipdnn_frontend)
|
|
therock_cmake_subproject_provide_package(hipDNN hipdnn_backend lib/cmake/hipdnn_backend)
|
|
therock_cmake_subproject_activate(hipDNN)
|
|
|
|
therock_provide_artifact(hipdnn
|
|
TARGET_NEUTRAL
|
|
DESCRIPTOR artifact-hipdnn.toml
|
|
COMPONENTS
|
|
dbg
|
|
dev
|
|
doc
|
|
lib
|
|
run
|
|
test
|
|
SUBPROJECT_DEPS
|
|
hipDNN
|
|
)
|
|
endif(THEROCK_ENABLE_HIPDNN)
|
|
|
|
if(THEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS)
|
|
##############################################################################
|
|
# hipDNN integration tests
|
|
##############################################################################
|
|
|
|
therock_cmake_subproject_declare(hipdnn_integration_tests
|
|
USE_DIST_AMDGPU_TARGETS
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/dnn-providers/integration-tests"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/hipdnn_integration_tests"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
-DENABLE_CLANG_TIDY=OFF
|
|
-DENABLE_CLANG_FORMAT=OFF
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
therock-googletest
|
|
therock-flatbuffers
|
|
therock-nlohmann-json
|
|
RUNTIME_DEPS
|
|
hip-clr
|
|
hipDNN
|
|
TEST_SUBPROJECTS
|
|
miopenprovider
|
|
)
|
|
therock_cmake_subproject_glob_c_sources(hipdnn_integration_tests
|
|
SUBDIRS
|
|
.
|
|
)
|
|
|
|
therock_cmake_subproject_provide_package(hipdnn_integration_tests hipdnn_integration_tests lib/cmake/hipdnn_integration_tests)
|
|
|
|
therock_cmake_subproject_activate(hipdnn_integration_tests)
|
|
|
|
therock_provide_artifact(hipdnn-integration-tests
|
|
TARGET_NEUTRAL
|
|
DESCRIPTOR artifact-hipdnn-integration-tests.toml
|
|
COMPONENTS
|
|
dbg
|
|
run
|
|
test
|
|
SUBPROJECT_DEPS
|
|
hipdnn_integration_tests
|
|
)
|
|
|
|
endif(THEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS)
|
|
|
|
if(THEROCK_ENABLE_MIOPENPROVIDER)
|
|
##############################################################################
|
|
# hipDNN MIOpen provider
|
|
##############################################################################
|
|
|
|
therock_cmake_subproject_declare(miopenprovider
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/dnn-providers/miopen-provider"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/miopenprovider"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
"-DHIP_DNN_SKIP_TESTS=$<NOT:$<BOOL:${THEROCK_BUILD_TESTING}>>"
|
|
-DENABLE_CLANG_TIDY=OFF
|
|
-DENABLE_CLANG_FORMAT=OFF
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
hipDNN
|
|
therock-googletest
|
|
therock-flatbuffers
|
|
therock-nlohmann-json
|
|
RUNTIME_DEPS
|
|
hipdnn_integration_tests
|
|
MIOpen
|
|
TEST_SUBPROJECTS
|
|
)
|
|
therock_cmake_subproject_glob_c_sources(miopenprovider
|
|
SUBDIRS
|
|
.
|
|
)
|
|
therock_cmake_subproject_activate(miopenprovider)
|
|
|
|
therock_provide_artifact(miopenprovider
|
|
TARGET_NEUTRAL
|
|
DESCRIPTOR artifact-miopenprovider.toml
|
|
COMPONENTS
|
|
dbg
|
|
lib
|
|
test
|
|
SUBPROJECT_DEPS
|
|
miopenprovider
|
|
)
|
|
endif(THEROCK_ENABLE_MIOPENPROVIDER)
|
|
|
|
if(THEROCK_ENABLE_HIPBLASLTPROVIDER)
|
|
##############################################################################
|
|
# hipDNN hipBLASLt provider
|
|
##############################################################################
|
|
|
|
therock_cmake_subproject_declare(hipblasltprovider
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/dnn-providers/hipblaslt-provider"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/hipblasltprovider"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
"-DHIP_DNN_SKIP_TESTS=$<NOT:$<BOOL:${THEROCK_BUILD_TESTING}>>"
|
|
-DENABLE_CLANG_TIDY=OFF
|
|
-DENABLE_CLANG_FORMAT=OFF
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
hipDNN
|
|
therock-googletest
|
|
therock-flatbuffers
|
|
therock-nlohmann-json
|
|
RUNTIME_DEPS
|
|
hipBLAS-common
|
|
hipBLASLt
|
|
hipdnn_integration_tests
|
|
TEST_SUBPROJECTS
|
|
)
|
|
therock_cmake_subproject_glob_c_sources(hipblasltprovider
|
|
SUBDIRS
|
|
.
|
|
)
|
|
therock_cmake_subproject_activate(hipblasltprovider)
|
|
|
|
therock_provide_artifact(hipblasltprovider
|
|
TARGET_NEUTRAL
|
|
DESCRIPTOR artifact-hipblasltprovider.toml
|
|
COMPONENTS
|
|
dbg
|
|
lib
|
|
test
|
|
SUBPROJECT_DEPS
|
|
hipblasltprovider
|
|
)
|
|
endif(THEROCK_ENABLE_HIPBLASLTPROVIDER)
|
|
|
|
if(THEROCK_ENABLE_HIPKERNELPROVIDER)
|
|
##############################################################################
|
|
# hipDNN hip kernel provider
|
|
##############################################################################
|
|
therock_cmake_subproject_declare(hipkernelprovider
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/dnn-providers/hip-kernel-provider"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/hipkernelprovider"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
-DHIPKERNELPROVIDER_ENABLE_TESTS=${THEROCK_BUILD_TESTING}
|
|
-DENABLE_CLANG_TIDY=OFF
|
|
-DENABLE_CLANG_FORMAT=OFF
|
|
-DROCKE_KPACK_PYTHON_DIR=${THEROCK_ROCM_SYSTEMS_SOURCE_DIR}/shared/kpack/python
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
hipDNN
|
|
therock-googletest
|
|
therock-flatbuffers
|
|
therock-nlohmann-json
|
|
amd-comgr
|
|
RUNTIME_DEPS
|
|
hip-clr
|
|
hipdnn_integration_tests
|
|
rocm-kpack
|
|
TEST_SUBPROJECTS
|
|
)
|
|
therock_cmake_subproject_glob_c_sources(hipkernelprovider
|
|
SUBDIRS
|
|
.
|
|
)
|
|
therock_cmake_subproject_activate(hipkernelprovider)
|
|
|
|
therock_provide_artifact(hipkernelprovider
|
|
DESCRIPTOR artifact-hipkernelprovider.toml
|
|
COMPONENTS
|
|
dbg
|
|
lib
|
|
test
|
|
SUBPROJECT_DEPS
|
|
hipkernelprovider
|
|
)
|
|
endif(THEROCK_ENABLE_HIPKERNELPROVIDER)
|
|
|
|
if(THEROCK_ENABLE_HIPDNN_SAMPLES)
|
|
##############################################################################
|
|
# hipDNN samples
|
|
##############################################################################
|
|
|
|
therock_cmake_subproject_declare(hipDNN_samples
|
|
EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_LIBRARIES_SOURCE_DIR}/projects/hipdnn/samples"
|
|
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/hipdnn_samples"
|
|
BACKGROUND_BUILD
|
|
CMAKE_ARGS
|
|
-DHIP_PLATFORM=amd
|
|
-DROCM_PATH=
|
|
-DROCM_DIR=
|
|
"-DHIP_DNN_SKIP_TESTS=$<NOT:$<BOOL:${THEROCK_BUILD_TESTING}>>"
|
|
CMAKE_INCLUDES
|
|
therock_explicit_finders.cmake
|
|
COMPILER_TOOLCHAIN
|
|
amd-hip
|
|
BUILD_DEPS
|
|
hipDNN
|
|
therock-flatbuffers
|
|
therock-nlohmann-json
|
|
RUNTIME_DEPS
|
|
miopenprovider
|
|
TEST_SUBPROJECTS
|
|
)
|
|
therock_cmake_subproject_glob_c_sources(hipDNN_samples
|
|
SUBDIRS
|
|
.
|
|
)
|
|
therock_cmake_subproject_activate(hipDNN_samples)
|
|
|
|
therock_provide_artifact(hipdnn-samples
|
|
DESCRIPTOR artifact-hipdnn-samples.toml
|
|
COMPONENTS
|
|
test
|
|
SUBPROJECT_DEPS
|
|
hipDNN_samples
|
|
)
|
|
endif(THEROCK_ENABLE_HIPDNN_SAMPLES)
|