mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
sci-libs/miopen: add 6.3.0
Signed-off-by: Sv. Lockal <lockalsash@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
DIST MIOpen-5.1.3.tar.gz 88118329 BLAKE2B d24722ffc5f5dab6d6a1de2ce34193ad2f25c9a2562e38c52e010a29870f01d9ea1c56970ba0601a088c8286e97958ee95d0da27fc8082126dd2ebe5ccb36b70 SHA512 a14e28cfcb12e5061e0e7b999ef3e67fa0a0e897e31bc50e7288b8a23eb1791312e33d3b697021c2b654ccc065ae1b046c1cfd77ba8e04b0f3e87e9cc0626dcd
|
||||
DIST MIOpen-5.7.1.tar.gz 100751593 BLAKE2B c5f847fe4374ab22737c281a65401125012328412d584fc09244b431ea6265d6d5028429115ee15fa8b04cbe0edd020e4e7ac8deb22561183ed76cb8c3d4d9d4 SHA512 3354b3b154f29a6337403abc5a71ec47c0b2558320c5a1b0cbfbbdb370c4fada2db12d4a19a312b5e30ca2e2302ee50ece3390603e84d132b2212a168e9523fa
|
||||
DIST MIOpen-6.1.1.tar.gz 101935496 BLAKE2B 5aadaa5eefa1b22dedfe87deb36f8acdbe57962cac8b7b6b20bc76f136ef29f0441e48112010280c2e674a1ae9fd202ca3e07be47cf4a4bc797234d6dc618be5 SHA512 b8860583919bf2f3e0da7ace30fdb0595ab45b85a367be3737e0b15a22a5565b8d6660c652ee070f21c36ac7d17ef3ba8e2eda7ed89bd6a0c65a4df799626d1a
|
||||
DIST MIOpen-6.3.0.tar.gz 104152308 BLAKE2B 46c238314393599a1bd4d3c49b0c95386b36cbee1831bf442ab127082b4c740116e81cf643c773627125b59c3974a2344753939b4287aa4adbbc51e4c4833988 SHA512 14ca2967ed6545ad68c362128be93b8e6a9d4aa69e16e989b187463d15351eca2fc437d07e88c41f693138131a7449add607333c698e24efaf0207077e15ae55
|
||||
DIST gtest-1.11.0_p20210611.tar.gz 887296 BLAKE2B 8f29b7028a6dd8190a113cd93398705b23b61d88bee38beaf9dcc0dfc8a463aed7fcd3719f6f1b131d4363aa57231629aaeffa108f6558efb58416cfface6d6e SHA512 cf9e7f3fd3e31ce6677eac355fb8bfe19c5b56a8ec3af8b9417d0904cdf5da92f99f7411a08131cc9fa4fc7d38e6a71fcfac993648e47b269a74a27de7607f7a
|
||||
|
||||
246
sci-libs/miopen/files/miopen-6.1.1-fix-libcxx.patch
Normal file
246
sci-libs/miopen/files/miopen-6.1.1-fix-libcxx.patch
Normal file
@@ -0,0 +1,246 @@
|
||||
--- a/cmake/EnableCompilerWarnings.cmake
|
||||
+++ b/cmake/EnableCompilerWarnings.cmake
|
||||
@@ -70,6 +70,7 @@ set(__clang_cxx_compile_options
|
||||
-Wno-unused-command-line-argument
|
||||
-Wno-weak-vtables
|
||||
-Wno-covered-switch-default
|
||||
+ -Wno-switch-default
|
||||
-Wno-unused-result
|
||||
-Wno-unsafe-buffer-usage
|
||||
-Wno-deprecated-declarations
|
||||
--- a/src/include/miopen/bfloat16.hpp
|
||||
+++ b/src/include/miopen/bfloat16.hpp
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <boost/operators.hpp>
|
||||
#include <iostream>
|
||||
#include <miopen/config.h>
|
||||
+#include <miopen/libcxx_compat.hpp>
|
||||
|
||||
class bfloat16 : boost::totally_ordered<bfloat16, boost::arithmetic<bfloat16>>
|
||||
{
|
||||
@@ -152,7 +153,7 @@ private:
|
||||
std::uint16_t data_;
|
||||
};
|
||||
|
||||
-namespace std {
|
||||
+NAMESPACE_STD_BEGIN
|
||||
template <>
|
||||
class numeric_limits<bfloat16>
|
||||
{
|
||||
@@ -173,5 +174,5 @@ public:
|
||||
return bfloat16::generate(0x0001); // 0x0.02p-126
|
||||
}
|
||||
};
|
||||
-} // namespace std
|
||||
+NAMESPACE_STD_END
|
||||
#endif
|
||||
--- /dev/null
|
||||
+++ b/src/include/miopen/libcxx_compat.hpp
|
||||
@@ -0,0 +1,44 @@
|
||||
+/*******************************************************************************
|
||||
+ *
|
||||
+ * MIT License
|
||||
+ *
|
||||
+ * Copyright (c) 2024 Advanced Micro Devices, Inc.
|
||||
+ *
|
||||
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
+ * of this software and associated documentation files (the "Software"), to deal
|
||||
+ * in the Software without restriction, including without limitation the rights
|
||||
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
+ * copies of the Software, and to permit persons to whom the Software is
|
||||
+ * furnished to do so, subject to the following conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be included in all
|
||||
+ * copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
+ * SOFTWARE.
|
||||
+ *
|
||||
+ *******************************************************************************/
|
||||
+#ifndef LIBCXX_COMPAT_HPP_
|
||||
+#define LIBCXX_COMPAT_HPP_
|
||||
+
|
||||
+// Definitions for libc++ compatibility
|
||||
+#ifdef __has_include
|
||||
+#if __has_include (<__config>)
|
||||
+#include <__config>
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
+#ifdef _LIBCPP_VERSION
|
||||
+#define NAMESPACE_STD_BEGIN _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
+#define NAMESPACE_STD_END _LIBCPP_END_NAMESPACE_STD
|
||||
+#else
|
||||
+#define NAMESPACE_STD_BEGIN namespace std {
|
||||
+#define NAMESPACE_STD_END }
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
--- a/src/kernels/hip_float8.hpp
|
||||
+++ b/src/kernels/hip_float8.hpp
|
||||
@@ -26,6 +26,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "miopen_cstdint.hpp"
|
||||
+#include "libcxx_compat.hpp"
|
||||
|
||||
#ifndef MIOPEN_ENABLE_F8_DEVICE_CODE
|
||||
#define MIOPEN_ENABLE_F8_DEVICE_CODE 0
|
||||
@@ -590,7 +591,7 @@ public:
|
||||
// from the precompiled header.
|
||||
#else
|
||||
// NOLINTBEGIN(cert-dcl58-cpp)
|
||||
-namespace std {
|
||||
+NAMESPACE_STD_BEGIN
|
||||
inline bool isfinite(miopen_f8::hip_f8<miopen_f8::hip_f8_type::fp8> x) // NOLINT
|
||||
{
|
||||
return !(x.is_inf() || x.is_nan());
|
||||
@@ -611,12 +612,12 @@ inline bool isnan(miopen_f8::hip_f8<miopen_f8::hip_f8_type::bf8> x) // NOLINT
|
||||
return x.is_nan();
|
||||
}
|
||||
|
||||
-} // namespace std
|
||||
+NAMESPACE_STD_END
|
||||
// NOLINTEND(cert-dcl58-cpp)
|
||||
#endif
|
||||
|
||||
// NOLINTBEGIN(cert-dcl58-cpp)
|
||||
-namespace std {
|
||||
+NAMESPACE_STD_BEGIN
|
||||
|
||||
template <typename T>
|
||||
class numeric_limits;
|
||||
@@ -633,7 +634,7 @@ class numeric_limits<miopen_f8::hip_f8<miopen_f8::hip_f8_type::bf8>>
|
||||
{
|
||||
};
|
||||
|
||||
-} // namespace std
|
||||
+NAMESPACE_STD_END
|
||||
// NOLINTEND(cert-dcl58-cpp)
|
||||
|
||||
template <miopen_f8::hip_f8_type T>
|
||||
--- /dev/null
|
||||
+++ b/src/kernels/libcxx_compat.hpp
|
||||
@@ -0,0 +1,41 @@
|
||||
+/*******************************************************************************
|
||||
+ *
|
||||
+ * MIT License
|
||||
+ *
|
||||
+ * Copyright (c) 2024 Advanced Micro Devices, Inc.
|
||||
+ *
|
||||
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
+ * of this software and associated documentation files (the "Software"), to deal
|
||||
+ * in the Software without restriction, including without limitation the rights
|
||||
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
+ * copies of the Software, and to permit persons to whom the Software is
|
||||
+ * furnished to do so, subject to the following conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be included in all
|
||||
+ * copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
+ * SOFTWARE.
|
||||
+ *
|
||||
+ *******************************************************************************/
|
||||
+#pragma once
|
||||
+
|
||||
+// Definitions for libc++ compatibility
|
||||
+#ifdef __has_include
|
||||
+#if __has_include (<__config>)
|
||||
+#include <__config>
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
+#ifdef _LIBCPP_VERSION
|
||||
+#define NAMESPACE_STD_BEGIN _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
+#define NAMESPACE_STD_END _LIBCPP_END_NAMESPACE_STD
|
||||
+#else
|
||||
+#define NAMESPACE_STD_BEGIN namespace std {
|
||||
+#define NAMESPACE_STD_END }
|
||||
+#endif
|
||||
--- a/src/kernels/miopen_limits.hpp
|
||||
+++ b/src/kernels/miopen_limits.hpp
|
||||
@@ -33,8 +33,9 @@
|
||||
|
||||
#define MIOPEN_ENABLE_F8_DEVICE_CODE 1
|
||||
#include "hip_float8.hpp"
|
||||
+#include "libcxx_compat.hpp"
|
||||
|
||||
-namespace std {
|
||||
+NAMESPACE_STD_BEGIN
|
||||
|
||||
template <typename T>
|
||||
class numeric_limits;
|
||||
@@ -91,7 +92,7 @@ public:
|
||||
};
|
||||
#endif
|
||||
|
||||
-} // namespace std
|
||||
+NAMESPACE_STD_END
|
||||
|
||||
#else
|
||||
|
||||
--- a/src/kernels/miopen_type_traits.hpp
|
||||
+++ b/src/kernels/miopen_type_traits.hpp
|
||||
@@ -26,8 +26,9 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef MIOPEN_DONT_USE_HIP_RUNTIME_HEADERS
|
||||
+#include "libcxx_compat.hpp"
|
||||
|
||||
-namespace std {
|
||||
+NAMESPACE_STD_BEGIN
|
||||
|
||||
template <class T>
|
||||
struct remove_reference
|
||||
@@ -140,7 +141,7 @@ struct conditional<false, X, Y>
|
||||
template <bool predicate, typename X, typename Y>
|
||||
using conditional_t = typename conditional<predicate, X, Y>::type;
|
||||
|
||||
-} // namespace std
|
||||
+NAMESPACE_STD_END
|
||||
#else
|
||||
|
||||
#include <type_traits> // std::remove_reference, std::remove_cv, is_pointer
|
||||
--- a/src/kernels/miopen_utility.hpp
|
||||
+++ b/src/kernels/miopen_utility.hpp
|
||||
@@ -28,8 +28,9 @@
|
||||
#ifdef MIOPEN_DONT_USE_HIP_RUNTIME_HEADERS
|
||||
|
||||
#include "miopen_type_traits.hpp" // std::remove_reference
|
||||
+#include "libcxx_compat.hpp"
|
||||
|
||||
-namespace std {
|
||||
+NAMESPACE_STD_BEGIN
|
||||
|
||||
template <typename T>
|
||||
constexpr T&& forward(typename remove_reference<T>::type& t_) noexcept
|
||||
@@ -43,7 +44,7 @@ constexpr T&& forward(typename remove_reference<T>::type&& t_) noexcept
|
||||
return static_cast<T&&>(t_);
|
||||
}
|
||||
|
||||
-} // namespace std
|
||||
+NAMESPACE_STD_END
|
||||
|
||||
#else
|
||||
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -481,6 +481,7 @@ if( MIOPEN_BACKEND MATCHES "OpenCL" OR MIOPEN_BACKEND STREQUAL "HIPOC" OR MIOPEN
|
||||
kernels/gpr_alloc.inc
|
||||
kernels/hip_atomic.hpp
|
||||
kernels/hip_f8_impl.hpp
|
||||
+ kernels/libcxx_compat.hpp
|
||||
kernels/hip_float8.hpp
|
||||
kernels/inst_wrappers.inc
|
||||
kernels/miopen_cstdint.hpp
|
||||
@@ -0,0 +1,46 @@
|
||||
composable_kernel does not build some functions/targets depending on GPU.
|
||||
Upstream bug: https://github.com/ROCm/composable_kernel/issues/1646
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -847,10 +847,6 @@ target_include_directories(MIOpen PUBLIC
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src/include>
|
||||
)
|
||||
|
||||
-if(MIOPEN_USE_COMPOSABLEKERNEL)
|
||||
-set(MIOPEN_CK_LINK_FLAGS composable_kernel::device_other_operations composable_kernel::device_gemm_operations composable_kernel::device_conv_operations composable_kernel::device_reduction_operations composable_kernel::device_mha_operations hip::host)
|
||||
-endif()
|
||||
-
|
||||
if(WIN32)
|
||||
# Refer to https://en.cppreference.com/w/cpp/language/types for details.
|
||||
target_compile_options(MIOpen PRIVATE $<BUILD_INTERFACE:$<$<CXX_COMPILER_ID:Clang>:-U__LP64__>>)
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -327,7 +327,27 @@ add_compile_definitions($<$<COMPILE_LANGUAGE:CXX>:HIP_COMPILER_FLAGS=${HIP_COMPI
|
||||
# HIP
|
||||
if( MIOPEN_BACKEND STREQUAL "HIP" OR MIOPEN_BACKEND STREQUAL "HIPOC" OR MIOPEN_BACKEND STREQUAL "HIPNOGPU")
|
||||
if(MIOPEN_USE_COMPOSABLEKERNEL)
|
||||
- find_package(composable_kernel 1.0.0 COMPONENTS device_other_operations device_gemm_operations device_conv_operations device_reduction_operations device_mha_operations)
|
||||
+ set(MIOPEN_CK_LINK_FLAGS hip::host)
|
||||
+ set(COMPONENTS_LIST device_other_operations device_gemm_operations device_conv_operations device_reduction_operations device_mha_operations)
|
||||
+ foreach(component IN LISTS COMPONENTS_LIST)
|
||||
+ find_package(composable_kernel 1.0.0 COMPONENTS ${component} QUIET)
|
||||
+ if(TARGET composable_kernel::${component})
|
||||
+ list(APPEND MIOPEN_CK_LINK_FLAGS "composable_kernel::${component}")
|
||||
+ else()
|
||||
+ message(WARNING "CK component '${component}' not found.")
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
+ if(AMDGPU_TARGETS MATCHES "gfx94" OR AMDGPU_TARGETS MATCHES "gfx90a")
|
||||
+ add_definitions(-DMIOPEN_USE_CK_MHA_OPS=1)
|
||||
+ else()
|
||||
+ add_definitions(-DMIOPEN_USE_CK_MHA_OPS=0)
|
||||
+ endif()
|
||||
+ if(AMDGPU_TARGETS MATCHES "gfx9")
|
||||
+ add_definitions(-DMIOPEN_USE_CK_XDL_OPS=1)
|
||||
+ else()
|
||||
+ add_definitions(-DMIOPEN_USE_CK_XDL_OPS=0)
|
||||
+ endif()
|
||||
+
|
||||
endif()
|
||||
if( MIOPEN_BACKEND STREQUAL "HIPNOGPU")
|
||||
set(MIOPEN_MODE_NOGPU 1)
|
||||
19
sci-libs/miopen/files/miopen-6.3.0-isnan-include.patch
Normal file
19
sci-libs/miopen/files/miopen-6.3.0-isnan-include.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
--- a/driver/reducecalculation_driver.hpp
|
||||
+++ b/driver/reducecalculation_driver.hpp
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <algorithm>
|
||||
#include <cfloat>
|
||||
#include <cstdlib>
|
||||
+#include <cmath>
|
||||
#include <memory>
|
||||
#include <miopen/miopen.h>
|
||||
#include <miopen/tensor.hpp>
|
||||
@@ -77,7 +78,7 @@ int32_t mloReduceCalculationForwardRunHost(miopenTensorDescriptor_t inputDesc,
|
||||
for(size_t i = 0; i < reduce_size; ++i)
|
||||
{
|
||||
Tcheck val = static_cast<Tcheck>(input[input_idx]);
|
||||
- if(nanPropagation && isnan(val))
|
||||
+ if(nanPropagation && std::isnan(val))
|
||||
{
|
||||
val = 0.0f;
|
||||
}
|
||||
@@ -19,4 +19,10 @@
|
||||
<upstream>
|
||||
<remote-id type="github">ROCm/MIOpen</remote-id>
|
||||
</upstream>
|
||||
<use>
|
||||
<flag name="composable-kernel">Use composable-kernel for GEMM-like and reduction-like operators.</flag>
|
||||
<flag name="hipblaslt">Use hipBLASLt for some non-batched and strided batched problems.</flag>
|
||||
<flag name="rocblas">Build with rocBLAS support</flag>
|
||||
<flag name="roctracer">Build with roctracer support</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
@@ -21,7 +21,7 @@ IUSE="debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-util/hip
|
||||
dev-util/hip:${SLOT}
|
||||
>=dev-db/sqlite-3.17
|
||||
sci-libs/rocBLAS:${SLOT}[${ROCM_USEDEP}]
|
||||
sci-libs/composable-kernel:${SLOT}[${ROCM_USEDEP}]
|
||||
|
||||
134
sci-libs/miopen/miopen-6.3.0.ebuild
Normal file
134
sci-libs/miopen/miopen-6.3.0.ebuild
Normal file
@@ -0,0 +1,134 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
ROCM_VERSION=${PV}
|
||||
LLVM_COMPAT=( 19 )
|
||||
|
||||
inherit cmake flag-o-matic llvm-r1 rocm
|
||||
|
||||
DESCRIPTION="AMD's Machine Intelligence Library"
|
||||
HOMEPAGE="https://github.com/ROCm/MIOpen"
|
||||
SRC_URI="https://github.com/ROCm/MIOpen/archive/rocm-${PV}.tar.gz -> MIOpen-${PV}.tar.gz"
|
||||
S="${WORKDIR}/MIOpen-rocm-${PV}"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE="composable-kernel debug hipblaslt rocblas roctracer test"
|
||||
|
||||
# tests can freeze machine depending on gpu/kernel
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
dev-util/hip:${SLOT}
|
||||
>=dev-db/sqlite-3.17
|
||||
sci-libs/rocRAND:${SLOT}[${ROCM_USEDEP}]
|
||||
>=dev-libs/boost-1.72
|
||||
dev-cpp/nlohmann_json
|
||||
dev-cpp/frugally-deep
|
||||
|
||||
composable-kernel? ( sci-libs/composable-kernel:${SLOT}[${ROCM_USEDEP}] )
|
||||
hipblaslt? (
|
||||
sci-libs/hipBLAS:${SLOT}[${ROCM_USEDEP}]
|
||||
sci-libs/hipBLASLt:${SLOT}
|
||||
)
|
||||
rocblas? ( sci-libs/rocBLAS:${SLOT}[${ROCM_USEDEP}] )
|
||||
roctracer? ( dev-util/roctracer:${SLOT}[${ROCM_USEDEP}] )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
BDEPEND="
|
||||
>=dev-libs/half-1.12.0-r1
|
||||
dev-build/rocm-cmake
|
||||
test? ( dev-cpp/gtest )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-6.1.1-build-all-tests.patch
|
||||
"${FILESDIR}"/${PN}-6.1.1-fix-libcxx.patch
|
||||
"${FILESDIR}"/${PN}-6.3.0-conditional-ck-components.patch
|
||||
"${FILESDIR}"/${PN}-6.3.0-isnan-include.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
# complementary replacements for conditional-ck-components patch
|
||||
find src -name '*mha*.cpp' -type f | while IFS= read -r file; do
|
||||
sed -i "s/MIOPEN_USE_COMPOSABLEKERNEL/MIOPEN_USE_CK_MHA_OPS/g" "$file" || die
|
||||
done
|
||||
|
||||
sed -i "s/MIOPEN_USE_COMPOSABLEKERNEL/MIOPEN_USE_CK_XDL_OPS/g" \
|
||||
src/mlo_dir_conv.cpp \
|
||||
src/solver/conv_ck_igemm_fwd_bias_res_add_activ_fused.cpp \
|
||||
src/solver/conv_ck_igemm_fwd_bias_activ_fused.cpp || die
|
||||
find src -name '*xdl*.cpp' -type f | while IFS= read -r file; do
|
||||
sed -i "s/MIOPEN_USE_COMPOSABLEKERNEL/MIOPEN_USE_CK_XDL_OPS/g" "$file" || die
|
||||
done
|
||||
|
||||
sed -e '/MIOPEN_TIDY_ERRORS ALL/d' \
|
||||
-e 's/FLAGS_RELEASE} -s/FLAGS_RELEASE}/g' \
|
||||
-i CMakeLists.txt || die
|
||||
|
||||
sed -e "/add_test/s:--build \${CMAKE_CURRENT_BINARY_DIR}:--build ${BUILD_DIR}:" \
|
||||
-i test/CMakeLists.txt || die
|
||||
|
||||
sed -e "s:\${PROJECT_BINARY_DIR}/miopen/include:\${PROJECT_BINARY_DIR}/include:" \
|
||||
-i src/CMakeLists.txt || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
rocm_use_hipcc
|
||||
|
||||
if ! use debug; then
|
||||
append-cflags "-DNDEBUG"
|
||||
append-cxxflags "-DNDEBUG"
|
||||
CMAKE_BUILD_TYPE="Release"
|
||||
else
|
||||
CMAKE_BUILD_TYPE="Debug"
|
||||
fi
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_SKIP_RPATH=ON
|
||||
-DAMDGPU_TARGETS="$(get_amdgpu_flags)"
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
|
||||
-DMIOPEN_BACKEND=HIP
|
||||
-DBoost_USE_STATIC_LIBS=OFF
|
||||
-DMIOPEN_USE_MLIR=OFF
|
||||
-DMIOPEN_USE_ROCTRACER=$(usex roctracer ON OFF)
|
||||
-DMIOPEN_USE_ROCBLAS=$(usex rocblas ON OFF)
|
||||
-DMIOPEN_USE_HIPBLASLT=$(usex hipblaslt ON OFF)
|
||||
-DMIOPEN_USE_COMPOSABLEKERNEL=$(usex composable-kernel ON OFF)
|
||||
-DBUILD_TESTING=$(usex test ON OFF)
|
||||
-DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF
|
||||
-DROCM_SYMLINK_LIBS=OFF
|
||||
-DMIOPEN_HIP_COMPILER="${ESYSROOT}/usr/bin/hipcc"
|
||||
-DMIOPEN_AMDGCN_ASSEMBLER="$(get_llvm_prefix)/bin/clang"
|
||||
-DHIP_OC_COMPILER="$(get_llvm_prefix)/bin/clang"
|
||||
)
|
||||
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DMIOPEN_TEST_ALL=ON
|
||||
-DMIOPEN_TEST_GDB=OFF
|
||||
)
|
||||
# needed by rocminfo
|
||||
addpredict /dev/random
|
||||
check_amdgpu
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
check_amdgpu
|
||||
LD_LIBRARY_PATH="${BUILD_DIR}"/lib MIOPEN_SYSTEM_DB_PATH="${BUILD_DIR}"/share/miopen/db/ cmake_src_test -j1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
}
|
||||
Reference in New Issue
Block a user